2005年5月の日記

HDDを漁ってたらこんなのが出てきた。

2005年5月23日
■なぜRubyでゲームプログラムなのか
あんまり大した理由はないんだけど、ようするに俺自身がいま一番扱いやすい言語だから。
そりゃあ、例えばHSPみたいなゲーム用に開発された言語/環境を使うと簡単かもしれん。
C言語みたいなコンパイル言語を使えば高速かもしれん。

でも、何かに特化したものってのは、それ以外の何かには向いていない訳だ。
世の中、なんにでも常にトレードオフって奴が付きまとう。
HSPにはRubyほどの汎用性は無いだろう。
C言語にはRubyほどの手軽さは無いだろう。

汎用性があるってことは、ゲーム用としては無駄が多いということかもしれない。
スクリプト言語という手軽さがあるなら、代償はズバリ、実行速度だ。
ただ、そういう欠点に関して言えば、いろいろ試してみてわかった。
今の状況ではまるで欠点にはなっていない。
ゲームに使わない機能があっても、それはゲームに使えない言語という訳ではない。
実行速度は、Pentium2とかがターゲットに入るならしょうがないけど、Pentium3以降の世代なら問題ない。
(もちろん原則的に計算量が膨大なものは却下する。)
つまり、用途に応じたライブラリさえあれば、結構いい言語/環境なのではないだろうか。

俺としては、自分が使っている言語だから、これでゲームが作れたらいいなー、と思った訳だが。
これから始めようとしている人に対して、Rubyをお勧めします、というほど理想的であるとは思っていない。
弱点が無いとは思うが、ゲーム作成用途としてRubyはここが優れている、という所もないから。
簡単ではあるけど。
だから、ゲーム作りを始めるなら是非ここを見てRubyで作れ、とは言わない。
もしRubyで始めようとする人がいるなら、応援するし、役に立ちそうな記事を書こう。
多分、その選択は間違ってはいないと思うから、たくさんあるであろう正解の一つだと思うからだ。

2005年5月24日
■DXRubyを作ろうと思った理由?
ずっと前から、初心者の人が言語を勉強する方法について考えていた。
例えばC言語とか、文法だけ勉強したって面白くもなんとも無い(それが面白いと思う人は除外する)。
なぜなら、勉強したことを活用して何かができる、って訳じゃないから。
hello worldしてみても、だからなに?って感じ。
明確な目標が無ければ、どうしてもすぐ飽きてしまう。

じゃあ明確な目標を、例えばゲームプログラミングに定めてみよう。
絵を動かしたいなあ。
どうやって描画するのん?
あれ、WindowsってC言語を勉強するだけじゃダメなの?
APIDirectX?うーん、さっぱりわからん。

一言でいうなら、敷居が高いってことか。
やりたいと思ったことを、予備知識無しの状態から始められたらいいんだけど、現実には始める前にまず覚えなければいけないことがたくさんある。
特にC/C++とWin32APIとDirectXなんて言ったらもう無理すぎ。

そこで、だ。
使うのがとても簡単なライブラリがあって、Rubyのほんの一部の簡単な機能だけを使って絵を動かしたりできるのなら、予備知識もほとんど無しで動くものが作れるんじゃないか、と。
そうしたら、Rubyをちょっとだけ勉強して、ライブラリの基本的な書き方を覚えたら、もうゲーム作りができる。
Rubyをもう少し理解できたら、理解できた分だけ、ライブラリも新しい使い方を覚えたら、覚えた分だけ、ゲームをもうちょっとすごい物に進化させられる。
俺がプログラムを始めた時の、BASICを使って何かを作っていた頃って、そんなぐらい敷居が低かったんじゃないかなー。

そんなことを考えながら作ってみたのがDXRubyってわけ。
ぜんぜんたいした話じゃない。

まあ、なんだ。
いろんな意味で。
変わってないね。