にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2013年10月18日

モバイルUbuntu、NetWalker登場 超名作スーパーマリオ クローン Supertux セルフコンパイル編 その216

少し間が開いてしまいましたのでゲームネタですw
今回はTuxで名高いスーパーマリオクローンのSuperTuxの
安定板をセルフコンパイルしてみました。
Jaunty標準パッケージのSuperTuxはSDLのOpenGL設定の関係で
演算が非常にもっさりして全くゲームになりません。
OpenGLをdisableにしてコンパイルしなおす事で
本来の速度で遊べる様になります。
興味のある方は暇つぶしに遊んでみましょう。

○SuperTuxとSDL
SuperTuxはLinuxのマスコットであるペンギンのTuxを主人公とした
スーパーマリオのクローンゲームで伝統ある名作ゲームです。

実はJaunty標準のSuperTuxをインストールして遊ぶと超もっさりで
全くゲームになりません。
NetwalkerはARM端末でOpenGL非対応です。
CPU演算も整数演算はそこそこですが少数演算は死亡レベルです。
勝手な想像ですが、Lucid以降のSDLの場合エラーが出てゲームは起動しませんが
Jaunty世代のSDLはいい加減でドライバ、ハードが無くても
無理やり少数演算でOpenGL命令を動かそうとします。
当然3Dは表示出来ない、2Dは超もっさりになっているのではと憶測します。
であれば2DゲームはOpenGL使用を外せば普通に動くはずと解釈しました。


○SuperTux安定板 セルフコンパイル
実は結構面倒です。
まず必要ツールのインストール。

 sudo apt-get build-dep supertux
 sudo apt-get install autoconf automake
 sudo apt-get install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl1.2-dev

本家HPから安定版のソースファイルをダウンロードして展開。
その後、このままだとコンパイルエラーが出ますので一行修正します。
2009年頃のgcc4.2.3を使った際のコンパイルエラーだそうです。

 cd supertux/src
 gedit main.h

で210行目のMenu::を削除。

 void Menu::get_controlfield_key_input(MenuItem *item);
 ⇒
 void get_controlfield_key_input(MenuItem *item);
 
でconfigure。この際にOpenGLをdisableします。そうしないと意味がありません。

 ./autogen.sh
 ./configure --prefix=/usr --disable-opengl

で終わりましたらコンパイル。

 make
 sudo make install

でプレイする際には

 supertux

多分起動するはずです。
遊ぶ際にはキーボード設定を変更しましょう。
何故ならジャンプがスペースキーでダッシュがコントロールキーなので
同時押ししますと日本語入力切替コマンドになる為ですw
スーパーマリオの独特の操作出来ませんw

○まとめ
作り直せばちゃん60FPS以上でちゃんと動きます。
PulseAudioがかなりCPUプロセスを使用しているのが気になりますが。
ARM特有の情報が無いので憶測でトライするしかないのが残念です。
他の2D もっさりSDLゲームも実は動くかもしれませんね。
本家のゲーム性が完成されているので
SuperTuxも非常に面白いです。
暇つぶしには良好なので是非遊んでみて下さい。

PS.勘違いしていましたのがSuperTuxの安定板は設定画面で
OpenGLのON、Offが出来る様です。コンパイルしなくても設定可能です。

 sudo apt-get install supertux-stable

で入れて遊んでみて下さいな。

posted by kapper at 01:07 | Comment(0) | Netwalker
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ