やねうらお講演会 in 東京農工大のご報告


開催までのいきさつについては、こちらをどうぞ。

やねうらおの「10人ぐらいしか来ないだろう」という目論見は、見事に外れ、百人を超え会場は満杯、大盛況でした。

ちゅーかねぇ(笑)、こんな大人数の前で一人で1時間も話をつなぐのって、めっちゃ大変なんですけど(笑) ホームページで書こうと温めていたネタを20回分ぐらい一気に放出しちゃったし^^; しばらくホームページに書くことも無いので、おとなしく仕事に打ち込めそうですが(笑)

さてさて、内容の報告なんですが、前半40分は内輪ネタ120%のためほとんどここには書けません…一応、こんな↓感じでライブ感覚でやりました。


やねうらお「このインターハートの『本田勝彦の場合』ってメールソフト、もとは、これ、『悪(わる)』とか『悪戯』の主人公なんですけど、このゲームの企画者がうちの社長なんで、この本田勝彦って、実在の人物なんですよねー。しかも偶然にも今日、うちの会社に遊びに来られていて、ご本人は、自分がまさかメールソフトになっているとは夢にも思っていない(笑) メールソフトですよ、メールソフト!デジコとか、ポストペットのモモちゃんと同じレベルですよ!それも一個人が(笑) ユーザーにしてみれば、本田勝彦?誰やねん、お前!の世界ですよ。ご本人にしてみても、うひょー、オレ、メールソフトになってるよー!という状態なんでしょうけど(笑)」

WAFFLEの12月15日発売予定の『HAPPY ほたる荘』(上の絵)のポスターの色校を持ち込んで、「そういや、この左の二人が真奈と美恵で、これまた、私の苗字が勝手に使われてるんですよねー」とかそういう話をしていたとき、一般参加者から「そちらは真奈ではありません。逆です」と鋭い突っ込みが(笑) えっ!?そうなんですか?しゅ、しゅんません〜。実は、HAPPY ほたる荘の製作って、私、直接的には関わってないんです^^; もっと自社ソフト、勉強して出直してきます(笑) ちゅーか、あなた一体、誰!?(笑)


しかし、後半の質疑応答では、かなり高度な話題も飛び交っていたので、難しいところもありました。というか、あまり難しい質問が出ないように、「バナナとミカン、どっちがバナナかな〜」ぐらい簡単な質問(なめとんのか!って言われそう…)にしてくれと、パンフレットに書いておくように言っておいたのに(笑) くそー。配ってやがんねぇな…(笑) 《'00/11/14追加:配ってあったそうです^^; 失礼しました>スタッフの方々 ということは、マニアックな質問をしてきた参加者が悪いんかー(笑)》

その結果、実際に出てきた質問は、

1.オブジェクト指向言語であるyaneGameScriptは、メタ的に記述する抽象度の高い言語になるんでしょうか?
2.プログラムの正当性をどうやって検証しますか?

とかだったのです(笑) おいおい、君達、なんちゅー質問してくれるんや(笑) 会場には、プログラミングもちーともわからんド素人さんも来てはるねんで(笑) ちゅーか、1.と2.の質問された方は、是非、ゆっくりメールでプログラムのことをお話したいので、ご一報ください^^;

1.に対するやねうらおの返答は一応、こんな感じでした。(実際、会場で説明したのとは違うかも知れません^^;) 「記号的抽象度をどんどん上げていけば、プログラムはどんどん短くなるという一種の思い込みが学者のなかではある。たとえば、型汎用性(テンプレート)により再生産性は向上するかも知れないし、強烈なマクロ置換を行なうプリプロセッサ(これはメタ言語的に機能しますね)、あるいは、そのプリプロセッサに対するプリプロセッサ(これはメタメタ言語として機能しますね。あるいは、このようにして、メタの無限のリフレクティブタワーを構築することが出来ます)があれば、プログラミングステップは幾分縮まるかも知れない。だから、記号抽象度を上げれば、プログラムが短くなったり、再利用性が高まったりするというのは、ある部分では、それは事実かも知れない。でも、それはどうかな?と私は思うことがあるんです。プログラムとは、記号による意味作用だと思うのですが、ある一定の処理を行なうためには、当然、一定の記号的エントロピーが必要になってくる。もっと有り体に言えば、ある一連の処理を行なうためには逃れることは出来ないプログラミング上の壁のようなものが立ちはだかっていて、どうあがいても一定のステップ数を踏まなければ、ゴールには到達できない、その処理は完了しないということを、ある程度のプログラマならば誰もが経験的に感じている。だから、逆に一定のステップを踏まなければならないことに対して、プログラマならば、ある種の諦めと覚悟はしてると思うんです。 (中略) そんなわけで、オブジェクト指向版yaneGameScriptはC++とJavaを足して―――こなごなに粉砕したような感じになると思います(笑)」

アドリブにしては上出来だ(笑) いや、実際のしゃべりはもっと拙かったような気もする^^;

2.に対するやねうらおの返答は、こんな感じでした。「たとえば、エラー時の処理を正確にフォローアップするのは難しいですね。なぜなら、エラーってものは、実際に発生してみないことにはわからないから。だから、エラーが起きたときの処理を再現して、いかにシミュレートしたところで、実際には、どこかにバグがあって、実際に災害が起きて初めて気づくというのも少なくないでしょう。実際、エラー診断の手法というのは難しいのです。たとえば、エラーチェックを行なうif節をtrueにして、実際のエラー処理コードを実行してみるのは、一つの手ですが、エラーチェックを行なっている箇所が、たとえば32箇所あるとすれば、どこでどうエラーが発生するかというのは、組み合わせになり、2^32 = 4,294,967,296(いま気づいたのだが、黒板には嘘の数字書いてた^^;)通りもあるのです!これは、現実的にはテスト不可能です。このような組み合わせ爆発の問題は、Knuthを始めとして昔からさかんに研究されていますが、結局のところ、heuristicな知識(≒経験則)を導入して、この組み合わせ爆発を抑えるしかないのです(以下略)」

これも、かなりマニアックな話題で、何人の人がついてこれたのか疑問だ。何度も言うように、「バナナとミカン、どっちがバナナかな〜(ヒント:黄色い方かな〜)ぐらい簡単な質問のほうがよかったような気がしなくもない(笑)

おまけに、最後には、某ゲームの開発者として有名な(?)S氏から、トドメとも言うべき質問があがる。

S氏「あのー、WAFFLEのゲームって…バグが多いですよね。そのへん、どうお考えですか?」
やね「なんちゅー質問してくれるんや!(笑) そもそも、Sさん、うちのゲーム買ってくれたん?」
S氏「ええ、買いましたよ、めっさげ(笑)」
やね「ああ、友達が欲しいとか言うてたから、オレのん半額で売ったげたわな。あれ、自分のお金やったの?」
S氏「いや〜、友達がお金出さないって言いまして(笑) それで、結局は自腹に(笑)」
やね「そかそか(笑)」

やね「正直言って、めっさげも、年末に発売になるHAPPYほたる荘も、私はyaneGameSDKを提供しているだけで、ゲームには直接関わっていないから、うちのプログラマがどのような手法で開発して、どのようにデバッグしているのか知りません(笑) いま現在のところ、私はそこまで監修できる立場にも居ないのです。もちろん、CG鑑賞ボタンをぽちっと押して、それが出てこなければ、それは明らかなバグではあるけども、プログラムの正当性の検証は本当は、経験の無い者にとって、難しい部分もあると思うんです。

それとは別に―――たとえば、

n+1 = Pn + k Pn ( 1- Pn) , 0 < P0 < 1 , k > 1

という漸化式があったとします。Sさん。この漸化式は収束しますか?発散しますか?」

S氏「えーっと…」

(5秒ほどの間をおいて)

やね「会場におられる方のなかには、ご存知ない方もおられるかも知れませんが―――Sさんは、いま、東京農工大の院生ですよね?」
S氏「はい」
やね「今日来てくださっている方が、この光景を見て、『まー、東京農工大の院生もたいしたことねぇな〜』」(ここで会場、爆笑)

やね「と思われるか、『あの東京農工大の院生が解けないぐらいだから、やっぱ難しい問題なんだろう?』と思われるかは、わかりませんが」

(S氏、しばらく悩む)

やね「種明かしをしますと、この漸化式は、人口の増加を表現するロジスティック方程式(Pは人口密度)として有名なもので、kのわずかな差により発散状況がまったく異なるという、カオスを描きます。kを少しずつ増やしていけばn→∞でアトラクタ(この描く軌跡)は、広がりを見せるので、この軌跡はstrange attractorと呼ばれます。まあ、この漸化式を数学的に解けるかどうかというよりも、プログラマならば、トピックとしてこれくらいのことは知っておいて欲しいところですね」('00/11/14追加:S氏、および、東京農工大の名誉のために書いておきますがこれを数学的に解くのは相当難解。まして、こんな短時間では誰であっても解けません。また、S氏は、ホビーゲームプログラマであって、情報工学を専攻しているわけではないので、トピックとして知っていることを求めるのも本当は酷な話です。また、この式について掲示板でも書きましたが、n年後の人口密度Pnとして、そこから1年後の人口密度の増加δP = Pn+1 - Pnは、現人口密度Pnに比例すると同時に、最適人口密度Poptとの差にも比例すると仮定しています。Popt=1となるように比例定数kとおくと、先の式が得られます。 )

やね「さて、プログラムの正当性の検証には、プログラムがきちんと停止するか、すなわちプログラムの停止性も当然含まれてくるわけですが、このようなロジステック方程式がある条件で収束したら停止する、というプログラムを書いた場合、この停止証明はどうやれば得れるのでしょうか?まあ、ある条件下では高度な数学を持ち出して証明することは出来るのかも知れませんが、少なくとも私には、“実際に実行してみないとわからない問題”に分類されると思います。究極的には、こういうファクターが絡んでくる限り、プログラムの停止証明は得れないし、正当性証明も得れない。ある意味、妥協して、あきらめなくてはならない部分がシコリとして必ず残るんです。だからと言って、CG鑑賞モードでボタンを押してもCGが見れなくていいと言うわけではありません(笑) それ、どのソフトのことやねん!という突っ込みは勘弁してください(笑) ただ、そのプログラマがプログラムの正当性証明に対して、どんな結論を持っているかによって―――つまり、そのプログラマの持つプログラミング哲学によって、そこから生まれてくるプログラムのコーディングスタイルとか、デバッグ手法とかは自ずと違ったものになってくると思うんです。もちろん、CG鑑賞モードでボタンを押してもCGが見れなくていいと言うわけではありませんが(笑)」

とりあえず、最大の難敵、S氏の質問にうまく切り返したところで、WAFFLE販促グッズのオークションが開催される。会社に帰ってから気づいたのですが、あれって、その手のショップに横流ししたら、いずれも儲かる落札価格だったのですが、めでたく入札された方は、くれぐれも売りに行かないでくださいね(笑)

それから、何人かの方から、メールで感想をいただいたので、少しでも、会場の雰囲気が伝わればと思い、いくつかをここに転載させていただくことにします。

はじめまして。かずまといいます。

今日のやねうらおさんの講演会を視聴させていただきました。
本当にお疲れ様です。

掲示板にお疲れ様でしたと書きたかったのですが、
初カキコで「おつかれさまでした」っていうのも変かなと思いまして
とりあえずメールで(^−^;)

プログラムをされてる方なので実は難しい理論の話とか
ずっとするのかと思っていて気力が持つか心配だったんですが、
終わってみれば5分に1回ぐらいは笑っていたような気がします(笑
でも、内容的にはプログラムに興味のある私にはとても参考になる
話が聞けて参加して良かったと思っています。

社会人になった今でも私は数学に興味がありまして、
最後の辺りで話してた数式の話を聞いて、また勉強したいなって
思い直したりもしました。

yaneSDK2ndを使用させて頂いてるので、また連絡させていただく事も

あると思いますのでそのときはまたよろしくお願いします。

とりあえず、今日はお疲れ様でした。

ありがとさんです。yaneSDK2nd関連のページをされている方ですね。yaneSDK2ndのほうから、リンク紹介しておきますね。

こんばんは、こいしです。

今日はお疲れ様でした。
とても面白いトークを聞けて、良かったです!(^-^

やねさんって、話が上手いですね。
時間が経つのがあっという間に感じられて、正直もっと聞きたかった。
来年もあるようなないような話でしたが、ぜひやって頂きたいです(笑)

ygs2kで、キーボードマニア風のゲームを作られている、こいしさんですね。今後ともよろしくお願いします。

件名:講演会行きました〜

初めまして。の/CHSです。
ええと、タイトルの通りです(^^;
やねさんから見て、左半分の一番通路側、前から3番目で眠たそうに見てました、って
言っても見てないでしょうけど(^^;
眠たそうにってのはただ眠かっただけで、やねさんの話しは面白かったです。ありがと
うございました。
役に立ったかは定かではありませんけど(笑) 内輪ネタ多かったですしね。
でも、考え方とかは参考になりました。それだけでも十分来た価値があります。一応バ
イト遅れてまで行ったので(笑)。
本当は質問もしたかったんですが、上記の理由(あの後すぐバイトが入っていた)ので、
あまり時間延ばしたくなかったのでやめておきました。っていうか質問内容考えてなかっ
たんですけど(^^; まあ何かそのうちメールで質問するかもしれませんので(^^;
ま、内容が面白かったので満足してます。やねさんって感じの話題でしたし。(謎)

ありがとうございます。最後のは、一応、褒め言葉として受け取っておきます(笑) 質問等も、お待ちしております。というか、私のページで間違いとかあったら、優しく教えてください^^;

はじめまして!Eliotと申します。

講演会、お疲れさまでした。お話、とても面白かったです。

私も某社でゲームプログラマをやっているのですが、やねさんとの
技術レベルの格差もさることながら、プログラミングに対する考えかた
の違いについて改めて自分の甘さを実感しました。

アドリブで、あれだけ高度な受け答えをして、しかも観る人を笑わせる
技術というのは、とても得がたい才能のような気がして、非常に羨ましく
思いました。

この業界は狭いので、いずれ仕事で会うこともあると思いますが、
そのときは、よろしくお願いします。

いえいえ(笑) こちらこそ、よろしくお願いします^^

ども綾影です
昨日は講演会行かせていただきました。
結構裏話も聞けて満足です。
話はおもしろかったですよ、お笑い芸人いけるんちゃいますか?(ぉ

やっぱりゲーム業界ってのは大変なんですねぇ
危険そうなのでプログラマになるのはやめておきます(笑
やねさんもお体壊さないようがんばってください

おお〜。綾影さんも来られていましたかー。まあ、個人的には体を壊すのは、どうってことないんですが、精神崩壊は恐いかな〜とか思います(笑)

矢野%「」、です。

こんにちは、やねうらお様。

昨日は講演会お疲れ様でした。
結構後ろのほうで聞いてたのですけど、100名も居たんですね。(^^;
実名+金額つきの内輪ネタ炸裂でとても面白かったです。(メモってませんからね(^^;)
あんまり面白いので、吉本の人かと・・・(^^;
「やねうらお様っておいくつですか?」って質問しようかと思ったんですけど、
やめました。(^^;

ゲーム業界って意外と儲からないのかなぁ〜? とか思ってしまいました。
ネットゲームは儲かるのか? の質問の所で、需要と供給がバランスする3〜5年
が勝負だって言ってましたよね。
そう言う意味じゃ、今のゲーム業界は需要と供給がバランスして、さらに飽和してる
のかなぁ〜? とか。
儲かってる所もあるんでしょうけど。(^^;
でも、10:00〜04:00 までだなんて、ゲームプログラマーが、そんなに大変だとは
思いませんでした。(^^;

あと、面白かったのは、プログラミング言語はメタレベルに向かって言ってるのか?
って質問もありましたよね。
抽象化していってもあるレベル以降はエントロピーが小さくならない?(^^;
ってお話。
プログラムって、アプリケーションの仕様を定義する部分(制御部分)と、
汎用的なライブラリレベルを定義する部分(データ部分)とが有ると思ってるのですけど
そのエントロピーが小さくならない部分っていうのは、制御部分に相当するのかなぁ?
とか漠然と思ったのですけど・・・
属性とか、クラス属性みたいな概念を言語でサポートすれば、
データ部分はコードが少なくなるはずだし。
一概には言えないかもしれませんがそういうことなのでしょうか?
(全然違います?(^^;)


もっと勉強して、やねうらお様に「さようなら〜」って言われないような
プログラマーにならないと。(^^; 10年後ぐらいに。(^^;


それでは、失礼します〜

そうですねぇ…記号的エントロピーの話ですが、私が感じているのは、ただ漠然と、「意味作用を促すための記号的エントロピー」というような量が、自分の手の届かないところでどしんと構えていて、「君はどうあがいても、これ以上には小さくはならないし、どうあがいてもこの製品の納品までに1ヶ月はかかるんだよ」と耳元で囁いているという脅迫観念みたいなものだと言えばわかっていただけるでしょうか(笑)

はじめまして。佐生智一と申します。

日曜日の講演会、楽しく聞かせていただきました。m(_ _)m

個人的には「今後の美少女ゲームの方向性」や「ロリ萌えな話」とか、
延々とお話してくれることを期待していたんですが。(笑)

それはまた、ぜひ次回の講演会でお願いしたいと思います。(^-^;;

私は大学で「バナナとミカン、どっちがバナナかな〜」を答えるような
基礎的な(エセ(^^;)シミュレーションプログラムを作成しているのですが、
「正当性の検証について」のお話はとても参考になりました。

ここで疑問なのですが、お話にあった「heuristicな知識(≒経験則)」
とは、具体的に何を指しているのでしょうか?

heuristicな知識ってのは、人工知能プログラミングの探索問題とかで、組み合わせ爆発を防ぐために導入する知識です。「人工知能」と「探索」をキーワードにして検索をしてみると良いと思います。

件名:やねさんライブ楽しかったです

 はじめまして。いっし〜と申します。
昨日、農工大での講演に参加させて頂きました。

 難しい話だったら、ついていかれへんやろうなぁと内心思っていたのですが
楽しい話満載で、あっという間に終わってしまった感じです。
コンビニ vs やねさんのコピーの話が、とても印象に残っています。

 現在、私は工業用コンパイラの開発部門へ叩き込まれておりまして
検証の方法と質について悩んでいる真っ最中だったんです。
なので、やねさんが後半話されていた検証のお話は、とても参考になりました。
私も、ヒューリスティックな検証をサクサクつくれるように精進したいと思います。

 オークションでは、感想カードにサイン入り◎◎◎◎◎◎◎◎(やね注:すんません、
伏せさせてください)
も頂けたし満足な一日でした。
#無理にサインをせがんでしまってゴメンナサイ
また、このような機会があればぜひ参加したいと思います。

それでは、失礼致します。

あの検証の話も、アドリブで答えるには、辛すぎる話でした(笑) それでも、何かのお役に立てたようで、ほっとしています。メールで質問をいただければ、もう少し詳しいことについてもお話できるかも知れません。


あと、東京農工大のMCC部員の方、およびスタッフの方、お世話様でした。非常にやりやすかったです。ただ、予想外の人数で、めっちゃ緊張しましたけど(笑) 貴重な体験をさせていただいたことに、感謝しております。また、来場された皆様、ありがとうございました。アンケートを見ていたら、石川県から来られた方までおられるようで、まったくもって恐縮の限りです。本当にありがとうございました。


戻る