C++の話(本当にあった怖い話)に反応してみる

http://d.hatena.ne.jp/Isoparametric/20100712/1278898618
id:Isoparametricさんが面白いスライドを投稿されていたので、思ったことをつらつらと書いてみたいと思います。
思った事を書いているだけなので、C++のdisを反論しているわけではありません。
私が書くのはゲーム業界のプログラマーという狭い世界で生きている人間が思った事なので、一般的なC++と思わないでください。

ディレクトリ構成が機能単位でなくプログラマの名前幽霊

これ実際に見たことあります。
アセンブラを使っていて、プロジェクトの規模が小さかった時代の名残らしいです。
その頃は、この辺りを気をつけなくてもプロジェクトのソース全体が見通せるので、あまり問題にならなかったみたいですね。
私が見たのは15年くらい昔のプロジェクトのソースなんで、さすがに今はこんな事してるプロジェクトは見たことありません。

バージョン管理システムを使わない幽霊

昔はプロジェクトの規模が小さかったので使ってなかったですけど、うちでは10年前位から導入してますね。
ネットワークドライブはあるのですが、ネットワークはNetWare Lite使っているので、CSVとか使えないとかありましたが(笑)。
そろそろ分散バージョン管理も試してみたいのですが、昔と違ってプロジェクトの規模が大きくなっているので、動きが鈍くなってしまったので、難しいですね。

コミットは朝しろ 帰る前にするなと言う幽霊

コミットの谷間でたまたま通らないコードをコミットしたらしょうがないけど、どう見ても通らないソースをコミットして帰られたら、ムカつかないっすか?
いや、いるんですよ、マジで。
それは極端な例ですけどね。
あと、ビルド通らないなら分かりやすいのですが、不定アドレス塗りつぶしとか判りづらいバグ仕込まれたときに、本人居ないのはキツイっすよ

手動でビルドテストしなければならない幽霊

ゲームもマルチプラットフォーム化すると、自動ビルドテストは必須です。
ちなみにCEDEC2010の「タダで始めるゲーム開発自動化のススメ」というセッションで、Hudsonが紹介されます。
これからのゲーム開発には欠かせなくなりそうです。
まさに、やらなきゃHudson(定番ネタ)

オレオレコンテナしか信じない幽霊

これは難しいですね。
うちのプロジェクトはコンテナライブラリ自作してますし、EAもEA-STLというSTLに似たインターフェイスをライブラリ自作してますね。
boostやSTLってゲームには使い辛いんですよね。
例えるなら、メダカを解剖する為に自作の小型ナイフを使っている人に、中華包丁を勧める感じです。
中華包丁が便利なのはわかるけど、ゲームで使う分にはtoo muchなんですよね。
これはゲーム本体に対する話で、STLやboostを否定しているわけではなく、ツールの方ではboostもSTLもバリバリ使ってます。

C++で「よくわからんから」多重継承は禁止すべしという幽霊

禁止はやりすぎたけど、積極的には使ってほしくないですね
C++ 設計と進化」に書かれていある「多重継承は脱出用のパラシュートである。普段はいらないが必要なときには不可欠だ」というGrady Boochの意見に賛成です。
それと、ゲーム屋しか関係なくて申し訳ないですが、__m128のようなアライン必須のメンバ変数を持つクラスが多重継承すると管理が面倒なんですよね。
設計方法によると思いますが、クラスの構造見直してテンプレートとか使うと多重継承使うの回避できることが多いので、私はあまり使った事が無いです。
なので、的はずれな事を書いていたらすいません。

C++は遅いしか言わない幽霊

確かにC++は遅くないのですが、前のエントリーにも書きましたが、遅くなる罠が埋まりやすいのが難しいんですよね。
実際にDSのタイトルでC++使ってないチームも居ました。
DSはメモリは少ないしCPUは遅いからキツイんだよねー。
と言っても、いまさらC言語だけでゲーム作れって言われても耐えられないかも。

Luaとか既存のものより優れたスクリプトを作れるとか言い出す幽霊

コルーチン最高ですよね!
あれ無しでAI組むとか、もう無理です。
ちなみに、GDC2010のLua tutorialのライオンヘッドスタジオのJonathan Shawのスライドで、FABLE1では自前のマクロで組んでいたAIを2からはLuaに変えた話があります。
あとは、スクエニでほぼSquirrelでゲーム作ったタイトルもありますし、これからのゲーム制作にLua等のスクリプト言語は必須かも。
GOALみたいな例もあるので、自作スクリプトを全否定するわけではないですが、上手く行くのはノーティドックみたいな天才のいる会社だけだと思います。

最初にも書きましたが、スライドの内容を否定しているわけではありません。
思った事を書いただけです。
スライドの56Pの盲目的に従うのはダメよ「なぜ」大事という言葉は金言だと思っていますし。