1、ゲームライブラリって必要か?
今回は、ゲームに共通なゲームライブラリの自作に手をつけましょう。
ゲームライブラリとは、プレイヤーのキーボード・マウスの入力の確認や、画面への描画、音楽の再生を簡単にやってくれるプログラムのことです。
前回紹介した、DirectXというAPIだけでも一応ゲームを作ってもいけるのですが、はっきりいって面倒くさいです。毎回同じような長いコードを書く必要が出てきます。
たとえば、「文字を表示したい」とします。もしゲームライブラリがないと、文字を表示するだけでもたくさんのコードを書なくてはなりません。
ゲームライブラリをつくったらどうでしょう、ただライブラリに「文字を表示しろ!」と一言命令するだけで後はそのとおりに実現してくれます。そんな便利なゲームライブラリを今から作ろうとしています。
2、じゃあ何が必要?
ゲームライブラリを作り始める前に、どんな機能が必要か考えましょう。それは、便利な機能はいっぱいあったほうに越したことはありません。
まずは、プレイヤのキーボード・マウス入力を感知する機能は必要です。それがないと、タイトル選択も次にいくこともできません。
画面描画に関する機能ももちろん必要です。画像・文字表示は必要として、3Dモデルの描画機能もあったらゲームの幅も広がりそうです。(ちなみに、今回開発中のゲームでも3Dダンジョン使ったシーンを入れる予定です)
また、音楽再生機能もあったほうがいいです。BGMがないとゲーム中さびしいし、SEがないとゲームで何が起こったかわかりにくくなります。
以上をまとめて、下のような機能をゲームライブラリに組み込んでいくことにしましょう。
□基本描画機能
・画像描画
読み込んだ画像を画面に表示する機能です
・文字描画
文字列を画面に表示する機能です
・テクスチャストッカ
ファイルから読み込んだ画像を貯めておく機能で、同じファイルを二重に読み込むことを回避できます
・グリフストッカ
一度表示した文字象形を貯めておく機能です
□3D描画機能
・モデル描画
3Dモデルを描画する機能です
・モデルストッカ
ファイルから読み込んだモデルを貯めておく機能です
・スキニング
3Dモデルの動き表現に必要な機能です
・IK
3Dモデルの動きを作る際に便利な機能です
・衝突判定
3D空間内で物が接触しているか判定する機能です
□入力機能
・キーボード
キーボードの入力を感知する機能
・マウス
マウスの入力を感知する機能
□サウンド機能
・Waveフォーマット再生
・OggVoribisフォーマット再生
音楽の再生を担当する機能
次回以降では、これらの機能の実装を始めていきます。上の内容の詳細な説明も、そのときにしていきます。
今回は、ゲームに共通なゲームライブラリの自作に手をつけましょう。
ゲームライブラリとは、プレイヤーのキーボード・マウスの入力の確認や、画面への描画、音楽の再生を簡単にやってくれるプログラムのことです。
前回紹介した、DirectXというAPIだけでも一応ゲームを作ってもいけるのですが、はっきりいって面倒くさいです。毎回同じような長いコードを書く必要が出てきます。
たとえば、「文字を表示したい」とします。もしゲームライブラリがないと、文字を表示するだけでもたくさんのコードを書なくてはなりません。
ゲームライブラリをつくったらどうでしょう、ただライブラリに「文字を表示しろ!」と一言命令するだけで後はそのとおりに実現してくれます。そんな便利なゲームライブラリを今から作ろうとしています。
2、じゃあ何が必要?
ゲームライブラリを作り始める前に、どんな機能が必要か考えましょう。それは、便利な機能はいっぱいあったほうに越したことはありません。
まずは、プレイヤのキーボード・マウス入力を感知する機能は必要です。それがないと、タイトル選択も次にいくこともできません。
画面描画に関する機能ももちろん必要です。画像・文字表示は必要として、3Dモデルの描画機能もあったらゲームの幅も広がりそうです。(ちなみに、今回開発中のゲームでも3Dダンジョン使ったシーンを入れる予定です)
また、音楽再生機能もあったほうがいいです。BGMがないとゲーム中さびしいし、SEがないとゲームで何が起こったかわかりにくくなります。
以上をまとめて、下のような機能をゲームライブラリに組み込んでいくことにしましょう。
□基本描画機能
・画像描画
読み込んだ画像を画面に表示する機能です
・文字描画
文字列を画面に表示する機能です
・テクスチャストッカ
ファイルから読み込んだ画像を貯めておく機能で、同じファイルを二重に読み込むことを回避できます
・グリフストッカ
一度表示した文字象形を貯めておく機能です
□3D描画機能
・モデル描画
3Dモデルを描画する機能です
・モデルストッカ
ファイルから読み込んだモデルを貯めておく機能です
・スキニング
3Dモデルの動き表現に必要な機能です
・IK
3Dモデルの動きを作る際に便利な機能です
・衝突判定
3D空間内で物が接触しているか判定する機能です
□入力機能
・キーボード
キーボードの入力を感知する機能
・マウス
マウスの入力を感知する機能
□サウンド機能
・Waveフォーマット再生
・OggVoribisフォーマット再生
音楽の再生を担当する機能
次回以降では、これらの機能の実装を始めていきます。上の内容の詳細な説明も、そのときにしていきます。