ひさびさに C++ でゲームプログラミングをやって思ったこと

 この年末年始に C++ でゲームプログラミングを少しやってみました。C++ 言語自体は、青春をかけて(笑)AT&T Release 時代から追いかけているのでほとんど問題なく使えるのですが、本格的にゲームプログラミングに使ったのは MS-DOS 時代以来。Windows でゲームプログラミングをするときはほとんど Delphi を使っていました(DirectXを叩いて遊んでたことはありますが、プレイできるぐらいのゲームにまで至っていない)。そして最近もっとも多く使っているプログラミング言語Java です。

 そんな私が C++ でゲームプログラミングをやってみて思ったことです。

DXライブラリ便利ですね

 DXライブラリを試してみたのですが、いや、これ、便利ですねぇ。なんか青春時代「Master lib」使ってゲーム作っていたのを思い出しましたよ。別にDXライブラリとMaster libが似ているというわけじゃなくて、いいライブラリがモチベーションを牽引してくれてるってところに共通点を感じました。

コーディング規約どうすんの?

 私がJavaを好む理由のひとつが、標準クラスライブラリをはじめとしてまっとうなサードパーティのほとんどすべてがひとつのコーディング規約(クラスやメソッドの命名規則)に則って作成されているということです。ところが Visual C++ ではそうはいきません。Microsoft提供のものは、だいたいなんでも大文字で始まっているようですが、C/C++ 標準の関数は小文字から始まっています。とても気持ち悪いです。

ドキュメンテーションコメントは?

 これが私のモチベーションをもりもりと削ぐ原因となったものです。JavaだったらJavadocがあります。では、C++は? というか、Visual C++ では何を使えばいいのでしょうか? IDEVisual Studio)とすんなりなじむようなものは私にはよくわかりませんでした。ちなみに私が UNIX/LinuxC++ をやるときは迷わず Doxygen を使います。Windows でも Doxygen を使えるようですが、DXライブラリの関係で日本語をシフトJISにしなければならず、そうすると日本語がDoxygenで化けてしまうのです。C#のようにXMLドキュメントも試してみましたが、うまくいきませんでした(型が.Netのものとして出力された)。

リソースの扱いがめんどくせー

 Windowsアプリケーションを作るとなったらリソースうんうんというのは避けては通れない道だとは思うのですが、まず、私は Visual C++ 2008 Express Edition を使っているので標準ではツールが入っていないわけです。その変をどうしようかとか悩ましいし、そもそもメッセージリソースひとつ扱うのがJavaに比べて面倒くさすぎる!

「タダ」でできる幅が狭い

 Microsoftがタダで開発環境を提供してくれているのは在りし日からみれば画期的なことですが、それにしてもEclipseNetBeansJavaにできる「開発環境」としての機能に比べるとずいぶんと簡素だなと感じざるを得ません。