*目次 [#y067346b]
#contents

* gamelibとは何か [#s556f7a3]
2012年度のアドバンストプログラミングに向けて、
~
担当の森が開発した簡易的なゲームライブラリとアプリケーション。
担当の森が開発した簡易的なゲームライブラリとアプリケーションのプログラムです。
~
ライブラリとアプリケーションを分ける事で、
~
統一されたシステムをベースにした柔軟なゲーム開発が可能になる(はず…)。
統一されたシステムをベースにした柔軟なゲーム開発が可能になります(はず…)。
~
ゲームシステム(ヒットポイント管理、ゲームクリア・オーバー条件、ステージマップ管理、敵キャラ行動プログラム)等は
~
ライブラリに任せ、具体的なステージ構成はアプリケーション側にプログラムしましょう。
~
難易度の異なる複数のステージを作ったりする際には、ライブラリで構築した関数や構造体を使い、
~
使用する関数やパラメータ等を変更する事で実現します。
~
ライブラリに任せる部分とアプリケーションに任せる部分を切り分けてプログラムする設計が重要です。
~
最初は提供されているライブラリやアプリケーションのプログラムを修正する事で課題を達成し、
~
次にライブラリを本格的に変更して独自のゲームシステムを構築しましょう。

* 分割コンパイルとライブラリ [#sa09ce3d]
分割コンパイルとは、一つのアプリケーションプログラムを開発するために
~
複数のファイルでプログラムソースを管理し、それぞれを別々にコンパイルして、
~
最後に結合する方法です。
~

ライブラリはアプリケーションプログラムで使用する関する等を予め開発して


* gamelibのディレクトリ構造 [#ic9a84e2]
** application [#e02faab1]
具体的なゲームアプリケーションはここに作成する。
具体的なゲームアプリケーションはここに作成します。
~
shooting_gameディレクトリにサンプルになる基本プログラムが保存されている。
shooting_gameディレクトリにサンプルになる基本プログラムが保存されています。
~


** include [#w7fb3b1b]
ヘッダファイルのディレクトリ。
ヘッダファイルのディレクトリです。
~

** src [#zf884f51]
ソースファイルのディレクトリです。
- ODE
- gamelib


* プログラム説明 [#afb835ca]
** アプリーケーションソースコード [#ode9390b]
- Makefile
makeを行う際の情報を書き込む。

- メイン関数を記述するファイル
 application/shooting_game/main.c

--drawstuffへの関数等の登録
 dsFunctions fn; // drawstuffに登録する情報を格納する構造体を宣言
 fn.version = DS_VERSION; // drawstuffのバージョンを登録する。
 fn.start = &start; //物理シミュレーション開始時に実行される関数(start)を登録する。
 fn.step = &simLoop;//各ステップ毎に実行される関数(simLoop)を登録する。
 fn.command = &command;//キーボードのキーが押された時に実行される関数(command)を登録する。
 fn.stop = &stop;//シミュレーション終了時に実行される関数(stop)を登録する。
 fn.path_to_textures = "./textures/";//テクスチャの画像ファイルを保存しているディレクトリの場所(./textures)を登録する。
-- ODEの実行
 dInitODE2(0); // ODEの初期化
 dsSimulationLoop (argc,argv,600,500,&fn); //物理シミュレーション開始
 dCloseODE(); // ODEの修了処理


- ステージ定義等を記述するファイル
 application/shooting_game/shooting_game.c
 application/shooting_game/shooting_game.h
ODEを簡易に実行するdrawstuffに登録するコールバック関数を定義する。
~
定義された関数はmain関数の中で登録している。



**ライブラリソースコード [#rb97bf25]
- ゲームシステム全体を管理する関数を記述するファイル
 include/gamelib/gamelib.h
 src/gamelib/gamelib.c

- 自機エージェント構造体定義と関数を記述するファイル
 include/gamelib/self_agent.h
 src/gamelib/self_agent.c


- 敵エージェント構造体定義と関数を記述するファイル
 include/gamelib/enemy_agent.h
 src/gamelib/enemy_agent.c


- ゲームマップの構造体定義と関数を記述するファイル
 include/gamelib/game_map.h
 src/gamelib/game_map.c


- インタラクションのための関数を記述するファイル
 include/gamelib/interaction.h
 src/gamelib/interaction.c
自機と敵、弾と敵がぶつかった時の処理プログラム。

*参考になる情報 [#v3647a89]
-公式ホームページ http://www.ode.org/

-demura.net: ロボットの開発と教育 http://demura.net/ode
~
金沢工業大学の出村先生のページ
~
非常に分かりやすい解説

-簡単!実践!ロボットシミュレーション - Open Dynamics Engineによるロボットプログラミング
~
http://www.amazon.co.jp/dp/4627846916
~
出村先生が執筆されたODEの解説本

-『Open Dynamics Engine(ODE)』のオリジナルマニュアル
~
http://www.koj-m.sakura.ne.jp/ode/
~
大阪大学の松下先生のページ


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS