ゲームプログラミングの敷居

ゲームプログラミングが、というか、プログラミング全般だ。
プログラムに興味を持つ人は、いまどきならゲームからって人が多いんじゃないかな。
しかし、ゲームプログラミングは敷居が高い。
言語は何にすればいいのか、ライブラリはどれにすればいいのか、とりあえず動かすために環境を作る必要がある、など。
Windowsプログラミングの基礎から、などと言い出すと、とんでもないことになる。
コマンドラインで「Hello,World!」とか表示したところで、そこからどーやってゲームを作ればいいのかわからない。
どうしようもない。


8bitのパソコンでBASICをいじってた時代なら、電源を入れて、何かしらコードを書けば、とりあえず動いた。
恐ろしくシンプルで、わかりやすかった。
LOCATEでカーソルの場所を変更してPRINTすれば好きな場所に表示できたし、座標の変数を変えながらGOTOでぐるぐる回せば文字が動いたりした。
それだけしかわからなくても、コードの厳密な意味がわかってなくても、それだけで、その時点で、これで何か作れるかも!って思えたのだ。
興味をふくらませるにはこれ以上ない環境だった。
その頃を知ってる人なら、いまの状況が恐ろしくややこしいことは理解できるだろう。
パソコンの操作そのものも難しくなっている。
そのへんはこれからの時代は学校で教えてくれるのかもしれないが。
でも興味がふくれる前に、前提となる知識が色々と必要なのだ。
とりあえず何かをしてみる前に、しなければいけないことがいっぱいある。


そういう状況を、少しでも改善できたらなあ・・・と思う。
いつも思っている。
行動が伴っていないが。
DXRubyも、何かを作るからには、そういうことに役立つものにしたい、と思っている。
幸いRubyは簡単な言語で、きっちり勉強しなくても何となく使える。
Windows環境用ならインストーラも作ってくれてる人がいるから、インストールも簡単にできる。
DirectXはゲームに興味ある人なら入ってるでしょ普通。みたいな。
説明無しで環境を作れと言っても無理かもしれないが、どこかにきちんと書いておけば、そんなに敷居は高くはならないだろう。
一番の問題はそういう人が見に来るか、だ。
まあ、そのへんはしょっぱなから考えててもしょうがないから、とりあえず何かをはじめてみようか。

敷居が高いのは人類の損失である

無茶なタイトルをつけた。
敷居が高いというのは、俺的な認識では、前提知識が必要である、ということだ。
なんとなく興味を持ったときに、興味のおもむくままにそれをする前に、まず何かしらの勉強をしないといけない。
そういう場合、なんだか興味がしぼんでしまって、やめてしまう。
とてももったいない。


たとえば俺みたいなのが、「物理シミュレーションって面白そうだなあ」って思ったとしよう。
でも、物理シミュレーションをするには、基本的な物理とか数学とかの知識が必要だ。
勉強がカラッキシだめだった俺は、そういう本を読んでもさっぱりわからない。
んで、しょぼしょぼーっとなって、やめてしまう。
せっかく興味を持ったのに、それに触れることすらできず、興味がしぼんでしまうのは、ひょっとしたらその分野で大きな功績を残すかもしれない人を門前払いすることであり、人類にとって大きな損失なのかもしれない。
別に自分が物理シミュレーションをやったら大きな功績を残すと豪語しているわけではない。一般的な話としてだ。
「ほんとにやりたいことなら頑張って勉強するだろう」っていうのは簡単だ。
でもそれは第三者の意見であり、はっきり言ってしまえば、自分にとってどーでもいいからそう言える。
興味をしぼませるのではなく、興味をふくらませてあげられるとっかかりがあれば、人はもっといろんなことにチャレンジできる。
ある分野の未来を考えるならば、少しでも門戸を広げられるように、何かをしろとは言わないが、考えるぐらいはしよう。
まあ、物理シミュレーションの場合はどーしようもないのかもしれないが。


何年か前、イギリスに行ったときのこと。
朝っぱらからフットパスをひとりで散歩していたのだが、向こうから家族づれで散歩してる人たちがきてすれ違った。
自慢じゃないが俺は英語は全くだめで、中学程度の単語も知らない。
すれ違いざま、おじさんが「good morning」って言ってくれちゃったから、しょうがなくせいいっぱいそれっぽく「ぐっもーにん」って言ってみた。
そしたら、おじさんがニコッって笑ってくれて、おばさんや子供達も「good morning!」って言ってくれた。
英語がよくわかんなくても、なんとなく通じてるよ!って思って、とても嬉しくなった。
ちょっと英語を勉強してみようかな、とか思ったものだ。
してないけど。
たとえば、小さい子供が英語に興味を持ったとき、「まずは文法から勉強しなさい」って言うんじゃなくて、上記のような経験をさせてあげることができれば、それが現実的かどうかはさておき、とてもよいのだろうと思う。
そしたら、もっと言葉が、気持ちが、通じるようになるためには、どうすればいいのかとか考えて、自分から文法や単語を勉強したりもするんじゃないかな。
興味というのはそうやってふくらませてあげないといけない。

長くなったので次回に続く。

DXRubyプロジェクト

SourceForge.JPにプロジェクトの登録申請をしてみた。
よく考えたらはじめからそうすればよかった。
申請が通るかどうかはわからないが。


ゲーム開発用ライブラリは調べてみたら結構いろいろあるみたいだけど、ほとんどはSDLを使ったもののようだ。
SDLって結構サイズが大きいし、なんだかいろいろ敷居が高い。
敷居、のあたりはまた別の機会にいろいろと書こうとは思う。
DXRubyはファイルサイズはコンパクトで、それこそゲームのスクリプトに一緒に混ぜて配布してもいいぐらい。
狙いを明確にすれば、需要もあるのかもしれない気がする。

髪型と頭装備

MMOのRPGでは、だいたい自分のキャラを作るときに見た目を選ぶことができる。
髪型とか、顔のパーツとか、ものによっては体格とか肌の色とか。
んでもって、最近のゲームでは装備で見た目が変わるものがほとんどだ。
今回は、そのあたりについて、特に髪型と頭装備について考える。


普通はキャラ生成時に選んだ髪形があって、ゲーム内のシステムで髪型を変更することもできたりする。
決まった数種類の中から選ぶのがほとんどで、自由に髪型を作ることはできない。
例外的にセカンドライフみたいなのもあるにはある。
で、頭装備はいろんなものがあって、ヘルメット系にものや、帽子、ヘアピン、リボン、ミミなど、まあいろいろだ。
それらによって見た目は変わる。


ゲームをやってると、なんとなく疑問に思うことがある。
髪型によって、装備できないものもあるんじゃないのか。
たとえば、高さ1mほどのモヒカンだったら、かぶりもの系の装備はできないはずだ。
それはちょっと極端だったとしても、ストレートの髪型に、アレンジ無しでリボンをつけることはできないだろう。
つまり普通に考えたら髪型によって装備は制限されるべきなのだ。
もちろんそんなことをしたらユーザーからの不満がすごいことになるだろうが。
いまのゲームは、装備との兼ね合いを考えて、何を装備しても(上から重ねて描画しても)問題のないような髪形にしなければならない、という制限に縛られている。
つまり、頭装備の自由度のために、髪型の自由度が制限されている。


髪型と言っても、切ったり伸ばしたりはそんなに簡単にはできないだろうけど、アレンジするのは自由にできてしかるべきだ。
キャラ生成時に選んだ髪形をベースに、好きなときに好きなアレンジに変更できるぐらいはあってもいい。
んで、装備はアレンジによって装備できる/できないがあるぐらいでよい。
高さ1mのモヒカンだって、寝かせてしまえばヘルメットを装備することはできるのだ。


将来的に、3Dのゲームだったら髪の毛1本1本をシミュレーションするゲームなんかも出てくるだろう。
そうしたら、本職のヘアデザイナーが髪型を作ったりすることもできるようになってくる。
その時には髪型と頭装備の関係も、ごく自然にあたりまえのようにできあがっていることだろう。