2008年1月22日火曜日

SolarisでMicropolis(OSS版初代SimCity)

先週、slashdot.jp のストーリーで話題になったので、すでにご存じの方も多いかと思いますが、初代SimCityのソースコードがオープンソース(GPLv3)として公開されました。

ソース公開はOLPCで動かすために働きかけがあったようですが、Python と C++ で移植が進められているOLPC版に加えて、Tcl/Tk版も公開されました。ちなみに"SimCity"を名乗れるのは、本家Electronic Artsの品質チェックを受けたものに限られ、今回ソースが公開されたのものには"Micropolis"と名前が付けられています。

せっかく公開された、この "Micropolis" ですがやはり Solaris でも動かしたいというのが人情。悪戦苦闘しながらコンパイルして、なんとか遊べる状況になりました。


とりあえずコンパイルできることを目標に作業し、なんとかSunStudioコンパイラを使ってamd64バイナリを作ることができたのですが、関数のプロトタイプ宣言があったりなかったり、下の画像のように unsigned なのか signed なのかよくわからない(笑)表記があったりして、コンパイラが大量にWarningを吐き出す状況で苦労させられました。

しかしながら、できたものをちょっと動かしてみるとやはりそれはSimCityそのもので、昔PC-9801で猿のように遊んだ記憶がよみがえりました。

まだ手元で作業しているものは、怪しさてんこ盛りの状況なので公開できないのですが、コンパイルするためのコツとしては
といったところかと思います。調子に乗って日本語を表示させようと思ったのですが、ソースアーカイブで使われてる Tk が v2.3 という古さでI18N化されていない状態だったので頓挫しています。まあ表示が英語でも十分遊べますし。