怠け者視点から見る季節の巡りというのはとても早いもので、今年は何か新しいことにチャレンジしようと思い、年明けから「よし、今年は頑張る!」と言い続けていた台詞が、もう「よし、今年度から頑張る!」に変わってしまう季節になってしまいました。
そんな自堕落な人生を打開すべく、または春の陽気につられて、おもわず「よし、Ubuntuでゲームでも作ってみるか!」と意気込んでしまった方も、世の中少なからずいるのではと思います。
今回は、マルチメディアAPIライブラリSimple DirectMedia Layer(SDL)を使用したゲームを作るための、開発環境構築レシピをお届けします。
Simple DirectMedia Layerライブラリとは
Simple DirectMedia Layerライブラリは、グラフィックやサウンドなどのマルチメディア関連のAPIを提供するライブラリの一つです。次の補助ライブラリをあわせてインストールすることで、ゲームプログラミングに必要となるであろうAPIを簡単に揃えることができます。各種メディアのインターフェース仕様をあれこれ調べて、APIを自作したくない怠け者にとっては、とても魅力的なライブラリです。
- SDL_image:各形式の画像ファイル操作機能を提供するライブラリ
- SDL_mixer:各形式の音声ファイル操作機能を提供するライブラリ
- SDL_ttf:TrueTypeフォントの文字列描画機能を提供するライブラリ
- SDL_gfx:図形描画機能を提供するライブラリ
- SDL_net:ネットワーク機能を提供するライブラリ
SDLライブラリのほとんどはC言語で書かれているため、C言語やC++から使用することができます[1]。また、Windows、Mac OS、FreeBSD等のOSもサポートしており、クロスプラットフォームなゲームアプリケーション開発を検討している方にとっても有用なライブラリと言えるでしょう[2]。
開発環境の構築
さっそく開発環境を構築していきましょう。
端末から次のコマンドを入力し、各SDL開発ライブラリのインストールを行ってください[3]。
端末画面恐怖症の人は、Ubuntuソフトウェアセンターからインストールを行うとよいでしょう。
機能確認用のアプリケーションを作ってみる
さて、実際にSDLでどんなことができるのでしょうか。とりあえず、画像ファイルを読み込んで表示する、音楽を再生する、日本語の文字列を表示する、あたりができれば明日への希望が見えそうです。
簡単なコードを書いて機能を確認してみましょう[4]。ここではUbuntu 12.10 32bit Desktopの環境でアプリケーションを作成します。
開発言語にはC言語を使用します。任意の場所に作業ディレクトリ[5]を作り、gedit等のエディターで次のソースコードをsdltest.cというファイル名で保存してください。
なお、今回作成するアプリケーションのデータはこちらからダウンロードできます。
端末を起動させ、ソースコードファイルがあるディレクトリ内に移動し、次のコンパイルコマンドを実行してください[6]。
sdltestという名前のアプリケーション実行ファイルが作成されれば、コンパイル成功です。
動かしてみる
できあがったアプリケーションを動かしてみましょう。
まずは、アプリケーションで使用する次のファイルを用意します。
- 画像サイズ640×480の背景用画像ファイル(back.png)
- 背景を透過した画像サイズ250×480のキャラクター用画像ファイル(char.png。注7)
- BGMファイル(bgm.ogg。注8)
用意したファイルを先ほど作成した実行ファイルと同じディレクトリ内に配置します。
準備ができたら、アプリケーションを実行してみましょう。用意した各画像と、文字列「また、朝になってしまった。」が表示され、スピーカーから音楽が流れれば成功です。
表示された芸術的な画面を眺めながら、素敵な音楽を聞いていると、あれこれと夢が膨らみますね。
参考文献
実際の開発にあたっては、次のサイトのドキュメントなどが開発の手助けになるはずです。
今月末には大型連休も控えており、まとまった時間も取れそうです。休日のお供にオリジナルゲーム製作などはいかがでしょうか?