Community Choice Awards、Irrlichtは受賞逃す

The SourceForge.net 2007 Community Choice Awards (SourceForge.net)

Gamer部門、Multimedia部門共にIrrlichtは受賞を逃してしまいました。Ogreでさえも受賞していないということは、ここに名前が連なっているプロジェクトは相当数の票を獲得したものと思われます。

さて、我らがIrrlichtを退けたプロジェクトはどんなものなのでしょう。

まず、Gamer部門のScummVM。これはLucasArts社のPCゲームに使われたエンジン"Secumm"のスクリプトを動作させるための仮想マシン。日本風に言うと互換ゲームエミュレータです。ツクールシリーズやNScripter等を連想してもらえば間違いないでしょう。Secummエンジンは海外にファンが多いMonkey Islandにも採用されてます。私が知らないだけで、もしかしたらこのプロジェクトは莫大な支持を得ているのかもしれません。

次にMultimedia部門、Audacity。マルチトラック編集可能なオーディオエディタです。日本語ページが存在するので、ご存知の方も多いのではないでしょうか。マルチプラットフォームに対応し、使いやすいGUIと豊富な機能が特徴。受賞したのは正直驚きましたが、多くのサウンドデザイナーに親しまれている証ですね。

マルチコア時代のゲームプログラミング

西川善司の3Dゲームファンのための「ロスト プラネット」グラフィックス講座 - Xbox 360グラフィックスここに極まる! 日本発の次世代技術の秘密とは? (Game Watch)

特集:カプコン×インテル。「ロスト プラネット」のマルチスレッド最適化対談 (4Gamer.net)

石田智史氏:
 「マルチスレッドはゲーム向きじゃない」という常識みたいなものがあったんですが,今後の流れとしてはマルチコアは避けられません。だからマルチスレッド化に取り組もうと。
4Gamer:
 ゲームのマルチスレッド化が難しいのはなぜですか?
石田智史氏:
 簡単に言うと依存関係(※詳細は後述)が複雑なんですよ。マルチスレッドでパフォーマンスを上げるためには個々のスレッドの独立性が高くなければなりませんが,ゲームはそうじゃないんです。

Core 2 Duoを皮切りにマルチコア時代に突入したPC市場。シングルコアの性能を極限まで追究したPentium4までとはアプローチが全く異なります。Core 2 DuoやCore 2 Quadは、個々のコア性能は若干落ちても、それぞれのコアで並列作業させて速度を補おうという考え。マルチスレッド化されていないゲームではシングルコアしか使われないので、下手をすればPentium4よりもスコアが落ちます。そのため、ゲームにおいてもパフォーマンス向上にはマルチスレッド化を視野に入れなければならなくなりました。

しかし、ゲームでは敵やプレイヤー等、相互が密接に係わり合っている状態。それぞれを独立したスレッドで好き放題に処理をされては、ゲームの同期が取れなくなってしまいます。どの部分をどのように分業させるか、今後は試行錯誤が続いていくと思われます。記事で紹介されているカプコン謹製MTフレームワークは、その一つの実装型として興味深いですね。

4Gamer:
 では,Xbox 360とPCでマルチスレッド化に関して違いはありましたか?
石田智史氏:
 Xbox 360とWindowsはCPUが違いますよね。Xbox 360のCPUはL2キャッシュを三つのCPUコアで共有しています。だから速い。Core 2 Quadは,(CPUコアは四つあるが,2コアずつ)L2キャッシュが独立しているので,そのオーバーヘッドがかなり大きいんです。Core 2 Duoだとシングルコアに対して1.8倍のパフォーマンス向上を実現できるんですけど,Core 2 Quadだと(シングルコアに対して)2.3倍くらいしか出ない。

また、Core 2 QuadはL2キャッシュが2つあり、それぞれ2コアで1つを共有しています。つまり、Core 2 Duoを1つのダイに押し込んだだけのなんちゃって4コア。キャッシュが2分されてしまうため、これではデータを効率よく処理出来ません。現段階ではCore 2 Quadはマルチスレッド化の恩恵を受けにくい地雷CPUということになるでしょうか。ハードもソフトも激動の転換期のようです。果たして、どれだけの技術者が生き残れるのでしょう。

DB操作クラスを自動生成 - PHP Object Generator

PHP版Ruby on Rails? - DB操作クラスを自動生成する"PHP Object Generator" (マイコミジャーナル)

PHPのソースコードを自動生成するWebアプリケーションであるPHP Object Generatorの最新版「PHP Object Generator (以下、POG)3.0」が26日(米国時間)、公開された。PHPで開発されたWebアプリケーションで、The BSD Licenseのもとで公開されている。POGでは、クラス名とアトリビュートを指定することで同データを操作するためのPHPクラスが生成される仕組み になっている。PHP4/PHP5アプリケーションで動作するコードが生成される。

サイト自体がデモを兼ねていたので、試しにコードを生成してみました。テーブル名(オブジェクト)と同じ名前のクラスが生成され、その中に全てのDB操作メソッドが詰め込まれます。フィールドの名前や型も自分でカスタマイズ可能です。インターフェースは至ってシンプルであり、制作効率化に大いに貢献してくれそうです。

PHP Object Generator (公式)

PHP Object Generator (SourceForge)