簡単なものを簡単に作るということ

俺がDXRubyを使うと、例えば簡易マップエディタ程度なら、絵を作る部分を除けば15分ぐらいでできる。
これはもちろん、DXRubyを作ったのが俺で、どのように動くのかをすべて把握しているからだ。
そういうのはとても大事なことで、簡単なものを簡単に作れるようになるためには、まず簡単なことをできるぐらいにはライブラリのことを知らなければならない。
高機能なライブラリを隅々まで知っていれば、難しいことも簡単にできるのだろうが、それは大変なことだ。
逆にシンプルなライブラリを使っていると、難しいことは簡単にはできない。
言うまでもなく、DXRubyのようなシンプルなライブラリはそこが欠点だ。
利点は、ライブラリを理解するのが早いこと。


俺が簡単なものを簡単に手早く作れるのは、それ以外には、Rubyは非常に便利で、楽にプログラムを作れる言語であるわけだが、その程度にはRubyを使えるということが一つ。
それから、簡単なものならアルゴリズムをその場で考えて実装できるぐらいの経験がある、ということが一つ。
これがサンプルの量産を可能にする。
サンプルで作ってるミニゲーム程度ならほとんど書き捨てスクリプト感覚だ。
この特性を利用すると、実際に動作する簡単なサンプルを示して、テキトーに解説するような記事なら、いくらでも書けてしまう。


俺にとってDXRubyとRubyの組み合わせは、そのレベルのものであれば意識することなく作れる、扱いやすい道具なわけだ。
少し規模が大きいものになると、それでは作れなくて、ある程度の設計工程を経る必要がでてくるが、それでもそこさえできれば後は同じだ。
そういうことがやりたくてDXRubyを作ったのだし、最大限に活用できている現状に、俺は非常に満足している。
ただ、そういうライブラリを初心者用として紹介するのが、ほんとに初心者のためになるのかどうか、というのはまた別の話だ。
自分で自分のやってることを否定しているわけじゃなくて、初心者のために一番いいのはどういうものなのか、それなりの回答は持っているつもりだが、そこに確信が持てない、っていうこと。


少なくとも、俺がDXRubyを活用しているような使い方は、初心者には無理だ。
何かしようと思っても、どういうアルゴリズムを組んだらそれができるかわからない。
Rubyでどう書けばいいのかわからない。
例えばマップデータを作って表示してスクロールさせたいけど、どうしたらいいのかわからない。
自分で考えなさい、調べなさい、って言うのは簡単だが、それができるならそもそも悩まない。
悩むようなレベルの初心者に対して、どのような解決法を提示することができるだろう。
ひとつには、ライブラリの機能としてマップデータを突っ込んだら表示してスクロールしてくれるようなものを作りこむ。
それを使ったらできますよ、という。
しかしそれではキリが無い。と思う。
ライブラリに備わってないものは自分で作らないといけないのだから、いつかは何かを作る必要があって、それを作り出す知識と技術を身につけてもらう必要がある。
で、俺のいまのところの回答は、シンプルで簡単なサンプルを提供して、こんなふうにやったらこんなことができます。という。
それを見て、理解するよう努力して、そしたら、それを応用して何かを作り出すことができるのではないだろうか。


そんなことを考えつつ。
プロジェクトWikiに新しいコーナーを作ってみた。
題して「ゲームのアルゴリズムを考える」。
DXRubyを初心者向けのライブラリとして提供するのに必要なものが、シンプルで簡単なサンプルだとすれば、それは俺が作れる。
現時点で、できること、やるべきこと、いろいろ考えてみたら、これしかない。
「こんなんどーやったらできるの?」って聞いてくれたら「こんなふうにやるんだよ」って提示できると思うんだけど、リクエストコーナーでも追加しようかしらん。
2chで「安価でサンプル作る」とか・・・w