C#2.0時代のゲームプログラミング(24)

とまあ、multi displayでフルスクリーン化するぐらいのことが、こんなにも難しいという話であった。恥ずかしながら、私はこの一連の事実に気づくのに丸一日近く要した。


C#2.0の時代になって、C++のときにはなかった(?)機構がいくつも投入されている。delegateにせよ、yieldにせよ、(Formの)Controlという考えかたにせよ、である。ビデオチップの向上により描画は2Dの描画であっても3Dのtextureを用いるのが一般的になろうとしているし、HDDの高速化により、file systemは暗号化されたarchiveからfileをseamlessに読み込む形に推移していくだろう。そして、標準的な開発環境もmulti displayに移行しようとしている。いくつもの大きな波が押し寄せてきているのが私には感じられる。


そんなとき、「ゲームなんて開発環境は異なれどやることは同じですよ」なんて意見が古参のプログラマから聞こえてくる。確かに骨格の部分ではそうなのだが、たかだかフルスクリーン化するプログラムを書くのに丸一日要するというのに、いままでと一体何が同じで、培ってきたノウハウの一体何が通用しているというのか?


この手のライブラリまわりに費やさなければならない時間は尋常ではない。私はYanesdkの2ndを開発していたとき、Yanesdkのソースは1MB越えで、その開発に3ヶ月程度要し、ゲーム本体(確かそのとき開発していたゲームは、Waffleから発売になっている「蒼き大地」だったと思う)は1週間程度で仕上げた。ゲーム本体のソースは100KBほどしかなかった。小さな規模のゲームでは、ライブラリがゲーム本体の何倍もあるのが通例である。そのライブラリ部分の開発が肝なのだ。仮に、ゲーム本体の100KBのソース部分については「開発環境は異なれどやることは同じ」だとしても、1MBあるライブラリが環境ごとに全く異なるのでは従来の経験はあまり生きないのである。(つづく)