6. ゲーム・ハッカーへの行き当たりばったりなアドバイス

この項は、インターネット・ゲームのハッカーに向けたものなので、プロのゲーム開発者は読まなくても結構である。ここでは市販製品の開発者に、ソースコードをただ投げさせるという素敵なアイデアを忘れ、その代わりに、我々でよりよいソースコードを書くという実に素晴らしいアイデアに集中することにする。図らずも、ネット上でのゲーム関連のプロジェクトを観察、参加して気づいたいろんなことを指摘し、現在まごついているように思われる二三の事項に言及することになる。

一般的なゲームにおけるインフラに関して、Linux に欠けている重要なものが二つある。それは高パフォーマンスの 3D API と、3D メッシュ(訳注:ここでは 3D ポリゴンと同じ意味のようだ)を構築する高品質なエディターである。API に関しては、解決される見込みがあり、それは The Precision Insight などの人たちによる MESA や XFree86 でなされている素晴らしい仕事のおかげなのだが、優れたモデリング・パッケージがないので、ゲーム開発者はデュアルブート設定下で高価な市販ソフトウェアを押し付けられている(このことに関して、自制心をなくして批判をしなくても、そう、Linux 用の 3D モデラーが幾つかあるのは知っているけど、そのどれも高品質のゲーム・アートワークを高速に作るのに求めるものとは随分と距離がある)。つまり、Gimp が Photshop の代役になったように、誰かに 3D Studio Max の代わりとなるものを書く必要があるのだ。それは二三年にわたる大変なコーディングを要するし、それを利用したゲームがヒットしようとも名前をクレジットしてもらえないだろうが、Linux をゲーム開発プラットフォームとしての地位を押し上げるためになしうる唯一で最良の方法なのだ。

ネット上でゲームを書く場合の問題として、優れたゲームを作るには首尾一貫したスタイル、アーティスティックなヴィジョン、その他呼びたいように言ってくれていいのだけど、それらを踏まえてデザインされるべきものが存在する。あるレベルから次のレベルに移るには、難易度を注意深く段階的に上げていく必要があり、開発サイクルにおいて、「よし、このゲームは今のところ完璧だな」と口にする確定ポイントがなくてはならない。言いかえれば、バザール方式よりも伽藍方式の方がうまくいき、自分たちの好きな方向に引っ張り込もうとする異なったアイデアを持つ人間が数百人もいたのでは、実際のところ害にしかならない。大抵のプログラムはこうしたさまざまなアイデアをすべて統合することで力を増すのだが、ゲームに関しては、新しいアイデアがあるのなら、それぞれで一個のゲームとして別の生命を持たせた方が通常具合がいい。

一人の人間が独力で営利的に洗練されたゲームを作るのは明らかに不可能なので、ネット上で協力を求め、大きなチームに集結しようとするのは魅力的な話だ。しかし、今日までの私の経験上確信を持って言えるのだが、これは大きな間違いで、それには二つ根拠がある。その一:この種のリクエストには多くの反応が返ってくるだろうと思っているだろうが、作りたいゲームのタイプについて意見がまとまりそうもなく、無意味な議論にエネルギーをすべて浪費してしまうことになり、一年かそこら経って、かっこいいロゴと派手なウェブサイトはあれどもゲームができてないというオチになるだろう。その二:他の開発者をオープンソース・プロジェクトに引っ張り込むために、ゲームの将来の完成形についてもっともらしい約束をする必要がある。usenet への投稿は決して口先だけのものであってはならないのだが、支えとなるソースコードがないのだから、それはただの大風呂敷でしかない。あなただってきっと、大風呂敷に興奮するようなたぐいの人種をひきつけることでプロジェクトを始めたくはないだろう。

有効な手法としては、インターネット上のソフトウェア開発の強みに目を向け、そうした強みを充分に利用することであるように私には思える。Unix は標準プロトコル、強固なインフラ、そして稼動システムを実現するためにともかくも結合される多くの小さな構成要素といった基盤上に構築される。ハッカー達がこのように物事を作り上げるのが得意であり、実際に成功したプロジェクトの殆どは小さなところから個人的なハックとして始まり、後に世界征服するほどのシェアを得るまで成長したまでに過ぎないことは歴史上明らかである。ゲーム産業は、インフラやモジュール単位のソースコードの再利用といったことに関して不得意なのは悪名高いが、もし我々が得意とするモデルを見本にすれば、他のプラットフォームにおけるゲーム・プログラマーが不得意とするやり方を真似るより、ずっと先に進むことができるだろう。

我々のコミュニティの人間に、ゲームに必要な新規性のための文体のデザイン(訳注:stylistic design というのは、stylish design の間違いかな)や不断の調査の類ができないなんてことは決してない。themes.org を見てごらん。そのサイトから学べるとても重要なことがあるから。UI(ユーザ・インタフェース)のテーマは、比較的短いタイムスケールで一人で取り組む、プログラマーでない人間により作られることがよくあり、そうしたテーマは一時の間利用されるが、その後飽きられて忘れさられ、新しいものに入れ替えられる傾向にある。コンピュータ・ゲームでも全く事情が同じで、最も成功するオープンソースのゲームは、Enlightenment のテーマと非常に似た形になるのではないだろうか。賢いプログラマーがエンジン部分のコードを書き、恐らくは他の優れたプログラマーによって書かれた何層にも及ぶ支援技術を構築し、そうなれば優れたアイデアを持ち、その描き方を分かっている人間なら誰でも、数週間・数ヶ月の期間で完成形のゲームを作ることができる。大規模な共同作業が、それを行うのが可能な、より低い段階で行われるのに対し、個々のゲーム・チームはせいぜい二三人で構成され、コンセプトを共有して、大変密接に作業を行う。

Linux は、その前に GNU と書かれるべきだと考える人間の一人なら(訳注:公開時の訳者の解釈は間違っていた。Linux でなく GNU/Linux と呼ぶべき、という主張のことでした)、その種のことはたくさん起こりそうなので、恐らくはオープンソース・ゲームを書くのに関係したいとは思わないだろう。とびっきりのゲームの骨組みを作るのに二年ばかり費やし、最新ヒット作の README ファイルのどこかに名前を埋め込んでもらったはいいが、Lara Croft の巨ニューバージョンを作った奴の方に称賛が全部行ってしまうだけになりかねない。けれども、良い面もあって、もししっかりしたエンジンを作れば、たった一つのゲームにとどまらず、長く生き延びる可能性を持つことになる。それは現状のゲームの開発手法のもとでは実現してない傾向にあるものである。フリーなゲームを書く最良の方法についての私の提案が、市販製品の開発者がオープンソースから利益を得ることができる方法についての私の提案と全く同じになるのは偶然ではない。もし、この種のゲーム開発における骨格部分を作ることができ、特に Linux と Windows 間で移植性のあるものにできれば、ゲーム会社にソースコードの公開と、Linux へのゲームの移植について考えさせはじめるのに驚くほど効果があるだろう。

Atari ST や Amiga の時代を過ごした人間なら誰もが、このアイデアを昔のゲーム作成キットにとても似たものだと感じ、それらが如何に役に立たなかったかを思い出すだろう。しかし、当時から幾つかの点が変わっている。ハードウェアの性能が向上したので、与えられるどの実装の細目も、その上で作業可能なことを限定するような要素にはあまりならなくなってきているから、コードの再利用がより実行可能なものになっている。よってオープンソースにすることで、骨組み部分が、決して外部に出ることのない箱というよりも、スタート地点に過ぎなくなる。だがひょっとすると全体で最も重要なのは、組み込まれるのを待つだけになっている、たくさんの極めて優れたスクリプト言語があるということである。市販ゲームの開発者は、高レベルのスクリプト言語が仕事を楽なものにしてくれることに、定期的に思い知らされてはいるのだが、間違ったやり方でそれをやり続けている。余りに機能が限定されているために真に有用にならない独自の言語を発明するか、C 言語をベースにした言語を使ってみたが、それなら最初から C で全部作ってしまったほうが良かったという事態になっているかである(訳注:実際にとある著名なゲーム会社でも、毎回専用のスクリプト言語を新規に開発している、という現実があるようである)。他方で、ハッカー文化はスクリプト・システムや作成可能なプログラムについて詳しいので、我々は適切にスクリプトを組み込んでゆける。

忠告:私は、一部の人達が既存のゲームの全くのクローンのようなものに取り組んでいるのを見て憂慮している。linuxgames.com を来訪し、そこのニュース・ページから Doom、Quake、そして Loki への参照を全て取り除くと、三つのオリジナルなゲームと、三つのクローン(Wipeout、Lemmings、そして Civilization)についての情報だけが残った。私としては、以上の三つのゲームをクローンすべき優れたゲームだと選択することに関しては私は議論する立場には無いが、それを行う価値については強く異議を唱えたい。精密な複製品を作ったところで、Linux に Windows よりも優れたゲームがあることを一般の人々に納得させることには決してならないだろう。つまり、彼らが5年前にはまだプレイしたことのなかったものを見せる必要があるんだ。ジャンルを真似しようが、アイデアを借用しようが何も悪いことはない。けれども、精密な複製ではなく向上したものを目指すのだから、二三新しいアイデアを追加してみてはどうだろう? あと、「クローン」という言葉を、プロジェクトを説明するのに使わないようにすることだ。その言葉がどれくらい正確はともかくとして、ハッカー人種をひどく正直であるように見せるが、エキサイティングな新しいゲームを探すユーザに対しても、原作の著作権を所有する弁護士に対しても、いずれにも運動の助けにならない。任天堂が「ルック・アンド・フィール」訴訟を起こし、あなた方を法廷に引きずり出すとしても、配管工のキャラクターに赤と青以外の色(訳注:マリオの服の色のことだろう)を使い、ウェブサイトのトップに「マリオ・クローン」なんて文句を入れなければ、案件についての主張がずっと楽なものになるのに!

究極的には、Linux 上のゲームの未来は、我々のエゴにかかっていると私は思う。もっと正確に言うなら、エゴを抑えることだ。ゲーム・プログラマーは、使いものになるコードを書くことに関して、自分達以外の人間を信頼するのが伝統的にひどく不得手なのだが、オープンソース開発というのは、こうした態度を捨て去るだけ成長できていないとうまくいきっこない。いまどき、アセンブラで最適化されたテクスチャー・マッピング・ループをさらにもう一度書き起こしたって、お気に入りの OS 上で動く高品質のゲームを手に入れる運動を推進することにはほとんど役に立たないんだ。でもね、未だなされていない、もっと役に立つことがたくさんあるんだから、それに取り掛からないと!


[前へ] [目次] [次へ]


初出公開: 2000年04月09日、 最終更新日: 2001年04月30日
著者: Shawn Hargreaves
日本語訳: yomoyomo (E-mail: ymgrtq at yamdas dot org)