[[Advanced Programing 2012]]

*index [#k12fe86d]
#contents

*第5回の趣旨 [#sdeef366]
企業や研究でのプログラム開発では、開発の効率化やバグ等を減らすため
~
同じような処理は関数等にまとめて、ライブラリ化する事が良く行われます。
~
そこで今回はゲーム開発を題材にライブラリ開発の意義や方法について学びます。


*Open Dynamics Engine とゲームのサンプルプログラム [#x417a3a3]
+ODE付属のデモプログラムを動かしてみよう.
+サンプルプログラムを動かしてみよう.
+サンプルプログラムの構造を理解しよう.
+サンプルプログラムを改造してみよう.

**サンプルプログラムのダウンロード [#g735e5ac]
+ダウンロードしたら適当な場所で解凍しましょう.

**ODE付属のデモプログラムを動かしてみよう [#p30ec5be]
 $ cd /ode-0.11.1/ode/demo/
 $ ./demo_crash

**サンプルプログラムを動かしてみよう [#h368fcc8]
 $ cd bin
 $ ./exec.sh ./shooting_game

-サンプルプログラムのボタン配置(後の改造で変更可)
 d: 前進
 s: 後進
 f: 右平行移動
 a: 左平行移動
 e: 右旋回
 w: 左旋回
 g: ジャンプ
 v: 視点切り替え(一人称視点と背後霊(?)視点.ゲームによってはどちらかに固定した方がよいかも)
 u: 敵キャラ 消滅/生成 (最終的なゲームでは無意味なので削除すべきだが、動作確認のため実装)
 h: 強制終了

**サンプルプログラムの構造を理解しよう [#l7537f9f]
-全てのファイルをエディタで見てみよう.

 application/shooting_game_c-lang
ディレクトリ内にはゲームアプリケーションのソースコードが入っています.
~
ゲームアプリケーションはライブラリを使用して具体的なゲームを構成します.

 src/gamelib
にはライブラリのソースコードが入っています.

アプリケーションとライブラリのディレクトリ内にあるファイルを全てエディタで開いて、
~
中身を確認してください.

 main.c
に、drawstuffによるシミュレーション管理のための構造体や関数が書かれており、
~
 shooting_game.c
に、実際のゲームのロジックが書かれている。

**サンプルを改造してみよう [#n6a5ded3]
 shoogint_game.c
には
 start()
という関数があり、ゲーム環境の初期化を行っている。
~
そこにマップを構成するための関数が書かれているので、
~
関数を修正してマップを変更してみよう。
~
最初のマップは3x3だが、ライブラリのソースを変更するともっと大きなマップにする事は可能です。
~
何を変更すれば良いか、ソースコードを読んで調べてみよう。

基本的な処理を行う関数を作成し、必要に応じて引数や組み合わせを変更して、
~
様々なアプリケーションを作成する事を可能にするのがライブラリ開発の醍醐味です。
~
マップの変更はその1つなので、まず始めに挑戦してみてください。


**注意事項 [#mef4a474]

*5月30日までの課題 [#ia580668]
**内容 [#hc80dada]
-
-バグ報告←これが一番評価が高い


**提出方法 [#k4ba1727]
-下記の提出物を第7回(5/30)の講義開始時に回収する.
-提出物一式を入れるフォルダの名前は学生番号とする.
-提出物
--ソースコード
--コンパイルに使用するMakefile
--その他,コンパイル・実行に必要なファイル

**評価方法 [#kc98448d]
-仕様を満たしているか.
--担当の森とTAで実際に動いているかを提出者の環境で確認する.
-ソースコードの可読性の高さ.
--機能ごとに関数を分け,分かりやすい関数名をつけているか(機能ごとにソースを分けて分割コンパイルをする).
--分かりやすい変数名をつけているか.
--分かりやすいコメントを記述しているか.
-機能に対応した分かりやすいコマンドであるか.
-無駄な処理を行っていないか.
-工夫に応じて加点する.

*参考になるサイト [#j1dcb858]
- demura.net: ロボットの開発と教育 http://demura.net/ode
~
金沢工業大学の出村先生のページ
~
非常に分かりやすい解説


*質問がある場合 [#h308a67f]
-浅田研 森までメールをください.~
なお,件名は「AP2012:課題3」としてください.~
hiroki_AT_ams.eng.osaka-u.ac.jp (_AT_は@に変えてください)


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