2017/08/28(月) [n年前の日記]
#1 [raspberrypi][ruby][gosu] Raspberry Pi3上にgosuをインストールしてみた
Raspberry Pi3上に、gosuをインストールしてみた。gosuってのは、Rubyを使って2Dゲームを制作できるライブラリ。
sudo raspi-config で、OpenGLドライバ(Fake KMS版)を有効、かつ、Memory Split でGPUに256MBを渡した状態に設定してから、動作確認。
BG x 2枚 + スプライト512枚を描画してみたら40FPSしか出なかったけど、スプライトを160枚に減らしてみたら60FPSで動いてくれた。これならどうにかメガドラ相当のゲーム画面も作れそう。しかも OpenGLを使えば背景だけでも3DCGにできたりするから、セガサターンっぽいゲーム画面だって不可能ではない、かもしれない。
Python + cocos2d がスプライト80枚を描画するだけでも40FPS前後しか出なかったことを考えると、速度面では Ruby + gosu のほうが優秀というか、まだ使い物になりそうな雰囲気。
もっとも、Raspberry Piシリーズは、Pi1、Pi2、Pi3、Zero、それぞれCPU性能が違うわけで…。Raspberry Pi3上なら使い物になりそうでも、Zeroあたりで動かしたら話にならない可能性も。各環境で試してみないと分からんところがあるなと。
sudo raspi-config で、OpenGLドライバ(Fake KMS版)を有効、かつ、Memory Split でGPUに256MBを渡した状態に設定してから、動作確認。
BG x 2枚 + スプライト512枚を描画してみたら40FPSしか出なかったけど、スプライトを160枚に減らしてみたら60FPSで動いてくれた。これならどうにかメガドラ相当のゲーム画面も作れそう。しかも OpenGLを使えば背景だけでも3DCGにできたりするから、セガサターンっぽいゲーム画面だって不可能ではない、かもしれない。
Python + cocos2d がスプライト80枚を描画するだけでも40FPS前後しか出なかったことを考えると、速度面では Ruby + gosu のほうが優秀というか、まだ使い物になりそうな雰囲気。
もっとも、Raspberry Piシリーズは、Pi1、Pi2、Pi3、Zero、それぞれCPU性能が違うわけで…。Raspberry Pi3上なら使い物になりそうでも、Zeroあたりで動かしたら話にならない可能性も。各環境で試してみないと分からんところがあるなと。
◎ gosuのインストール。 :
一応、gosu の wiki に、Raspberry Pi用のインストール方法が書いてあるのだけど。
_Getting Started on Raspbian (Raspberry Pi) - gosu/gosu Wiki
記事の冒頭に、
「ここに書いてあるのは Pi1 用のやり方だよ」
「Pi2 や Pi3 は、 _OpenGLを有効にした状態 で、Ubuntu/Debian Linuxと同じやり方でインストールしてくれ」
「gosuの現行版は動かんので、sudo gem install gosu --pre で最新版をインストールしてみて」
…と書いてある。ので、Linux版の記事のほうを参考にしつつ作業。
_Getting Started on Linux - gosu/gosu Wiki
gem でインストールすると、Rubyから呼び出せるバイナリを作るために、コンパイルだかビルドだかが走る。結構時間がかかるので、気長に待つ。体感で10分以上かかったような…。
gosu以外にも、chipmunk、opengl、rmagick もあったほうがいいらしいので、それもインストール。これもビルドされるので、やっぱり気長に待つ。
gosu-examples をインストールすると、gosuのサンプルを動かせる。
_Ruby - Gosu
もしかしたら、音を鳴らすために pulseaudio とやらも必要なのだろうか…。自分の環境では既に入ってたけど…。
また、ひょっとすると、freeglut3 関係も必要だったりするのかな。要らないのかな。どうなんだろう。
_Getting Started on Raspbian (Raspberry Pi) - gosu/gosu Wiki
記事の冒頭に、
「ここに書いてあるのは Pi1 用のやり方だよ」
「Pi2 や Pi3 は、 _OpenGLを有効にした状態 で、Ubuntu/Debian Linuxと同じやり方でインストールしてくれ」
「gosuの現行版は動かんので、sudo gem install gosu --pre で最新版をインストールしてみて」
…と書いてある。ので、Linux版の記事のほうを参考にしつつ作業。
_Getting Started on Linux - gosu/gosu Wiki
sudo apt update sudo apt upgrade sudo apt install build-essential sudo apt install libsdl2-dev libsdl2-ttf-dev libpango1.0-dev libgl1-mesa-dev sudo apt install libopenal-dev libsndfile-dev libmpg123-dev sudo apt install ruby-dev sudo gem install gosu --preRubyのモジュールは gem を使うとネットワーク経由でインストールできる。--pre は、現行版(安定版?)じゃなくて最新版(開発版?)をインストールせよ、という指定らしい。
gem でインストールすると、Rubyから呼び出せるバイナリを作るために、コンパイルだかビルドだかが走る。結構時間がかかるので、気長に待つ。体感で10分以上かかったような…。
gosu以外にも、chipmunk、opengl、rmagick もあったほうがいいらしいので、それもインストール。これもビルドされるので、やっぱり気長に待つ。
sudo gem install chipmunk sudo gem install opengl sudo gem install glu sudo gem install glut sudo apt install ruby-rmagick sudo apt install libmagickcore-dev libmagickwand-dev sudo gem install rmagick_How to install the RMagick gem on a Raspberry Pi :: Andrew Havens, Ruby Developer
gosu-examples をインストールすると、gosuのサンプルを動かせる。
_Ruby - Gosu
sudo gem install gosu-examples gosu-examplesgosu-examples と打って実行。右側のスクリプト名?をマウスでクリックするとサンプルを切り替えられる。chipmunk、opengl、rmagick もインストールしてあると、選べるスクリプトが増える模様。
もしかしたら、音を鳴らすために pulseaudio とやらも必要なのだろうか…。自分の環境では既に入ってたけど…。
sudo apt install pulseaudio_OF 0.9.0 Rasberry Pi B+ sound problem - bugs, errors - openFrameworks
また、ひょっとすると、freeglut3 関係も必要だったりするのかな。要らないのかな。どうなんだろう。
sudo apt install freeglut3 freeglut3-dev_OpenGL (GLUT) で正方形が動くだけのアニメーション - Qiita
◎ 問題点。 :
Ruby + gosu を使うスクリプトを実行すると、相変わらずエラーメッセージが表示される…。
_Bug #1656930 " OpenGL applications warns “MESA-LOADER: failed to...” : Bugs : Raspbian
_98629 - OpenGL applications warns "MESA-LOADER: failed to retrieve device information"
また、サウンド関係を使うと、これまた警告が。
_OpenAL warning on Ubuntu - Issue #292 - gosu/gosu
libGL error MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information_Raspberry Pi 2/3 Model B(Raspbian Jessie with PIXEL)でRStudioを使う
_Bug #1656930 " OpenGL applications warns “MESA-LOADER: failed to...” : Bugs : Raspbian
_98629 - OpenGL applications warns "MESA-LOADER: failed to retrieve device information"
また、サウンド関係を使うと、これまた警告が。
_OpenAL warning on Ubuntu - Issue #292 - gosu/gosu
[ ツッコむ ]
以上です。