屋森 英樹 のすべての投稿

ハリー・ポッターと不死鳥の騎士団の感想

期待はしていなかったため、私にはこんなもんだろうといった評価。きつい事を言えば、話題性だけで見に行くと完全に肩透かしを喰らうことになります。

まず、前作までを見ていない人は完全に置いてき堀ですね。見ている人でも内容を忘れている可能性があります。私は思い出すのに暫しの時間を要しました。ドラマのように毎週見ているなら問題ないですが、1年に1回、5作目となると途中の記憶が欠落してしまいます。

また、今回は特に話の展開がスローで冗長性がありました。前回の炎のゴブレットのような印象に残る大展開が無いに等しく、小さな伏線を張り巡らせただけのように思います。

でも、ルーナ・ラブグッド役の新人、イバンナ・リンチは見所があります。顔と髪の色がマルフォイの妹にソックリなため、彼女が新キャラだとはすぐに気づかないかもしれません。変人とあだ名されている不思議少女のようです。天然ちゃんのごとく、間延びしたハイトーンの喋り方が面白い。ぜひ、字幕版で生の声を聞いてください!それと、スネイプファンは彼の過去が見られるので必見です。

PHP4でPHP5の機能を実現するキット

PHP 4.xでPHP 5.2/6.0の機能を実現する互換キット"upgrade.php 15"登場 (マイコミジャーナル)

7月31日(ドイツ時間)、upgrade.phpの最新版となる「upgrade.php 15」が公開された。upgrade.phpはPHPで開発された後方互換実現のためのコンパチブルキット。パブリックドメインとして公開されている。 PHP 5.2や6.0で導入された新しいコア関数をPHP 4.xで動作するように実装したプロダクトで、4.x系で5.2や6.0で導入された機能を使いたい場合に役に立つ。

upgrade.php

これはどうしてもPHP4を使用せざるを得ない環境で、PHP5、6の機能を使おうという互換キットです。想定されるケースは、レンタルサーバを借りているので自由にPHPをバージョンアップできない場合です。

PHP4は2007年末にサポート終了する関係上、レンタルサーバでも徐々にPHP5以上にアップデートされていくと思います。しかし、完全移行はまだまだ先の話かもしれません。PHP5には便利な機能が沢山あるのに、余命短いPHP4の制約を受けながら新規スクリプトを書くのはナンセンスです。そこで、移行までの繋ぎとして、この互換キットでPHP5、6の機能を使えるようにしておこうと言う訳です。移行の下準備に採用してみては如何でしょう?

それにしても、毎回思う事があります。何れ用済みになることが分かっている移行用リソースにパワーを割くのは勿体無いな、と。やるなら、後方互換性を保持し、移行マニュアルを徹底することにパワーを傾けた方が堅実的だと思います。

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)