2012-04-17

GNU/Linuxにおけるゲーム

コンピューターにとって、ゲームは欠くべからざるものである。UNIXはゲームを動かすため作られたという有名な逸話もある。能書きはともかく、ゲームはコンピューターの操作方法を覚えるのに最適なソフトウェアである。多くのデスクトップ用OSが、必ずゲームのひとつやふたつを含めているのには、理由があるのだ。

さて、GNU/Linuxにおけるゲームの状況はどうかというと、あまり芳しくない。これは、GNU/Linux環境は多様なため、自由とかオープンなどという以前に、移植性を確保したいならば、コンパイルできるソースコードを提供しなければならないからだ。もちろん、すべてのソフトウェアは、本来自由であるべきだ。不自由なソフトウェアは人道上の罪である。しかし、頭の硬い典型的なゲーム業界には、なかなか理解されない。

そもそも、ひとくちに自由なゲームということはできない。例えば、自由なソフトウェアであるためには、ソフトウェアが自由であればいいのだ。リソースまで自由である必要はない。もちろん、そのリソースがなくても、ソースコードからプログラムの生成や実行を妨げないという条件は必要だが、リソースはソフトウェアではない。だから、ソフトウェアだけ自由で、リソースが自由ではないソフトウェアが存在する。完全に自由なOSに含まれるゲームは、当然、リソースまで含めて自由でなければならない。

ともかく、自由、不自由に関わらず、GNU/Linux環境におけるゲームの現状について、いくつか書こうと思う。

Ubuntuでは、デフォルトでいくつかのゲームがインストールされる。ソリティアやフリーセルやマインスイーパー、数独などといった、有名なゲームがある。また、Mahjonggというゲームがある。正式名称がよく分からないのだが、上海麻雀とか麻雀ソリティアなどと呼ばれているもので、重なりあった麻雀牌の同一牌を消していくゲームだ。また、ゲームに分類されるかどうかは曖昧だが、GBrainyというソフトウェアもある。これはC#で書かれているIQテスト的なパズルや単語の関連性や、ちょっとした数学などの問題集である。Ubuntu 12.04では、デフォルトでMonoがインストールされないために、GBrainyもデフォルトインストールから外された。

では、その他の自由なゲームはどうか。UbuntuのUniverse公式レポジトリには多数のゲームがある。ざっと見たところ、パズル、カードゲーム、ボードゲームなどが多いようだ。これらのゲームは、ロジックの占める割合が多く、純粋なプログラミングの勉強素材としても最適で、シナリオやマップ構築などの、コーディングとは関わりが薄いが労力のかかる作業が比較的少ないために、盛況なのだろう。

UNIX系OSといえば忘れてはならないのが、ローグ系のゲームである。自由なローグ系ゲームは多数ある。私も、かつてAngbandにハマっていたのだが、全然上達しなかった。ローグ系ゲームを一般に普及させたトルネコの大冒険はなかなかよくやったと思う。

スポーツ系オンラインFPSもいくつかある。

不自由なソフトウェアはどうか。

純粋なJVMやCLRの上で実行されるゲームは、GNU/Linuxでも動くものが多い。たとえば、かの中毒性のある不自由なMinecraftは、GNU/Linuxでも動くらしい。私はMinecraftの面白さが今ひとつ分からない。3Dモデリングがしたいならば、3Dモデリンツツールを使えばいいし、2D絵が書きたいならば、ドローイングソフトを使えばよい。プログラミングがしたいのならば、プログラミング言語を使えばよい。Minecraftでは、剣を使ってモンスターを攻撃できるので、その点は一応、ゲームと呼ぶことも可能ではあろうが・・・やはりよく分からない。もっとも、フライトシミュレーターやSimCityや牧場物語やTHE・コンビニのようなソフトウェアも、世間一般にはゲームと認識されているので、やはりゲームというのはかなり広い分野を指す言葉なのだろう。

ただし、自由なソフトウェアにこだわるならば、自由なJVMやCLRの実装を使うことが必須である。

Flash上で動くゲームも、GNU/Linux上で問題なく動く。ただし、たとえFlashゲーム自体が自由なソフトウェアであったとしても、その土台となるFlash Playerは不自由なソフトウェアである。Flashの自由な実装もあるにはあるが、あまりはかばかしいことは聞こえてこない。

その他のゲームとしては、他のプラットフォーム向けのゲームをエミュレーター上で動かすというものがある。GNU/Linux上で動くエミュレーターは多数ある。もっとも、GNU/Linuxから正規の方法で入手するのが難しいソフトウェアもあるのだが(入手にプロプライエタリなソフトウェアを使わなければならないなど)

たとえば、私はまだ試していないのだが、Wineを使えば、不自由なWindows用のSteamクライアントを実行してゲームをダウンロード、アップデートし、さらにゲームまで実行できるという。それも、10年前のゲームのみならず、SkyrimやCrysis 2などといった、最近の人気のゲームまで動作報告がある。いい時代になったものだ。ただし、これも不自由なソフトウェアの実行を許容するという条件がつく。

昔のゲームはGOG.comなどで販売されている。惜しむらくは、私は昔のゲームをあまり遊んでいなかったということだ。Apple 2とかMSXとかIBM PC上のDOSのゲームで、現在も正規の方法で入手できるゲームは多数あるが、残念ながら、私はその当時のゲームに親しんでいなかったので、たとえ精度の高いエミュレーターを使ったとしても、楽しめない。それに、多くの昔のゲームはプロプライエタリである。

たとえば、The Elder Scrollシリーズは、プロプライエタリであるが、ArenaとDaggerfallが公式からダウンロードできる。DOSBoxという精度の高いエミュレーターもある。しかし、残念ながら、私はその操作性に慣れることは出来なかった。

興味深いところとしては、id Softwareのゲームがある。id Softwareは、昔のゲームのソースコードをGPLで公開している。リソースはプロプライエタリなので、別途購入しなければならないが、ソースコードがGPLで公開されているため、GNU/Linux向けの移植も存在する。ソフトウェアの自由にのみこだわるのであれば、id Softwareの昔のゲームは悪くない。

さて、最近の面白い動向といえば、Wastelandだろう。このゲームは、あのFalloutの元ネタとなったゲームなのだ。本来、FalloutはWastelandの続編として開発される予定だったのだが、権利関係で折り合いがつかず、しかたなく別のブランドを立ち上げることにしたのだ。そのWastelandの原作者が、続編開発のためにKickstarterで出資を募っている。今現在、結構な出資が集まっている。150万ドルの出資を得ればLinuxへの移植もすると明言していたのだが、すでに出資額が150万ドルを突破している。果たして約束は果たされるのか。まともに移植性を確保したければ、最低でもコンパイル可能なソースコードの形で提供しなければならないが、受け入れるのか。なかなか興味深い。

あとは、Linuxのディストロ作成シミュなんてものもある。

2 comments:

said...

ChromiumとNative Clientでゲーム(BastionとかPlants vs. Zombieとか)をプレイする事も。
WineでSteamより簡単ですよー。

dewa dp bbm said...

非常に良い作品は、私はあなたの仕事の結果に非常に満足しています。