語るというとたいていいつも過去のことなのだけど、そればっかりだと、こう身も心もまさにオッサンそのものであるので、今日は未来のことを話すんよ。
2011-01-06 02:53:39こないだ @irgaly さんと遊んできたんですよ。ついったーで知り合って遊ぶという初めての体験だったわけですけど、おもろかった。音ゲーなど共通の趣味があったというのもあるけど、プログラムのことについて「直接あって話す」ということができたというのが特に面白かった。
2011-01-06 03:03:03自分でも特に話すわけではなかったけれども、これからゲームを作るときなどにプログラム的にどういうことがおもしろいトピック(関心事)になりそうか、というようなことを自然と語ってしまった。たぶん、なんとなく考えていたけれど、言語化されていなかったものが噴出したというか……。
2011-01-06 03:04:29ただ、自分の中で「こんなことを問題視しているのは自分だけで杞憂だろう」と思っていたことに、irgalyさんが自然な問としてもっていたことに、多少勇気づけられて、そのときアドリブ的予言的に「これからはこうなる!」的なことを話してきたのよ。
2011-01-06 03:06:27一番大きな話が「ゲームにおけるプラガブルMVC実現の鍵」についてで、これを中心に「プログラム言語は無限に細分化する」「ゲーム画面のレイアウトにマークアップ言語/スタイルが使われる」「タグづけによってゲームオブジェクトはメソッドの連鎖から解放される」とくっつく。
2011-01-06 03:17:09プラガブルMVCの話の前にまずMVCの話をしなきゃいけないので、MVCのことから。MVCというのは、Model-View-Controllerの頭文字を取った言葉。ソフトウェアをこの三つの構成要素に分けて設計しましょう、ということです。
2011-01-06 14:57:40ゲームでModelは何に当たるかというと、ゲームによるのだけど、RPGならプレイヤーキャラだとかモンスターだとかアイテムだとかマップだとかイベントだとかとにかく全部これに当たる(であってるかな)。
2011-01-06 15:07:48これらのデータを実際に画面に出力するのがViewで、方向キー入力したらキャラクターが上下左右に動くみたいのはControllerの仕事。より正確には、方向キー入力したらキャラクターが上下左右に動きますよ、ということをModelやViewに通知するのがControllerの仕事。
2011-01-06 15:08:42ここでやっとプラガブルMVCの話。MVCのうち、ユーザと直接接点があるのはView(出力)とController(入力)。VCはMから独立したペアになっていて、MをVCにくっつけることでMVCとして機能するように作りましょう、というのがプラガブルMVC。
2011-01-06 15:16:33MVCはCがMの面倒まで見るような作りもありますが、これはCの負担がすごく大きいので、もはやCはMの面倒を見なくてもいいんだよ、というのが、プラガブルMVC(……であってるかな、違ってたらごめんなさい)。
2011-01-06 15:17:57つまりプラガブルMVCっていうのは、ModelをView-Controllerにplugして使えるMVCですよ、という意味で、pluggableなのです。
2011-01-06 15:20:01今に始まったことではないけれどもC++やJavaが重い。重いというのは政治的に重い。2011になってしまったけどC++0x 、クロージャ見送りもまだ正式にリリースされないJRE7.0、誰もが使える中核的な言語であるからこそ慎重になりすぎてプログラマの進化についていけてない。
2011-01-06 03:23:56じゃあ、RubyやScalaやなんやら(あなたのお気に入りの言語が出てこなくてもケンカしないでね)そういったものが、C++やJavaを置き換えることになるかというとそうは思わない。ただひたすらに求められるそのときどきで便利な言語がこれから次々と出て、そこを「波乗り」していくような
2011-01-06 03:27:35つまり複数言語を使いわけることがこれまで以上にもっと当たり前になっていくようになると思う。具体的には、履歴書には〇〇言語が使えるということの意味が薄れて、◯◯パラダイムに慣れているということが重視され、新しく言語を覚えるノビシロが当たり前のようにプログラマに要求されるようになると
2011-01-06 03:30:24この過程で、いままでプログラマだった人に「既存とは質の違う新しい」仕事が求められるようになると思っていて、それが「限定的な言語をつくること」と「書いたプログラムが動くことが自明であることの証明」
2011-01-06 03:34:14「限定的な言語を作ること」というのは、目的別に細分化していくプログラムの細分化の一端を、各プログラマが業務の一環として携わることになるだろうということ。荷が重い話に聞こえるかもしれないけど、まずはXMLを独自拡張したりすることやインタプリタをつくる程度のことから始まるから、
2011-01-06 03:37:33最初はそういう意識なしに始まるかもしれない。そのうち、言語の雛形みたいなのがかなりゆるいライセンスで出て、言語仕様同士を混ぜたりして目的のものをつくるようになる。このようなことが起きる理由はこれをできるかできないかで生産性の違いが顕著で隠しきれなくなるから。
2011-01-06 03:41:29しかし、そうなると、世界で1つしかない言語の保守を、君が死んだら誰がやるんですかというような話になっていくので、これとセットで「自己証明的」な書き方がより求められていくだろうということ、これはいまで言うところの「テストケース」のようなもの。
2011-01-06 03:44:18ここまでで3分の1(なげー) やっとゲームできれいなMVCを書くときにどうしますかというような話題。まず一般的なMVCが、フォームとかあるGUIの実装みたいなところから始まっているから、なかなかゲームでやろうとしたときにうまく翻訳できないで大変ねという。
2011-01-06 03:47:48