Advanced Programing 2012?

目次

第5回以降の趣旨

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

ライブラリを開発するのにも別のライブラリを使用することは良く行われます.
今回の課題では、3次元物理シミュレータとしてOpen Dynamics Engineを使用して、
ライブラリの使用と開発の両方を経験する事によって、使いやすいライブラリや
開発やメンテナンスしやすいライブラリはどのようなものかを実際に作る事で考えてもらいます.

最終目標

楽しいゲームを開発しやすくするゲームライブラリの開発

Open Dynamics Engine とゲームのサンプルプログラム

  1. ODE付属のデモプログラムを動かしてみよう.
  2. サンプルプログラムを動かしてみよう.
  3. サンプルプログラムの構造を理解しよう.
  4. サンプルプログラムを改造してみよう.

サンプルプログラムのダウンロード

  1. ダウンロードしたら適当な場所で解凍しましょう.

ODE付属のデモプログラムを動かしてみよう

$ cd /ode-0.11.1/ode/demo/
$ ./demo_crash

サンプルプログラムを動かしてみよう

$ cd bin
$ ./exec.sh ./shooting_game

サンプルプログラムの構造を理解しよう

application/shooting_game_c-lang

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

src/gamelib

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

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

main.c

に、drawstuffによるシミュレーション管理のための構造体や関数が書かれており、

shooting_game.c

に、実際のゲームのロジックが書かれている。

サンプルを改造してみよう

shoogint_game.c

には

start()

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

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

課題

5月30日までの課題

ライブラリを書き換えゲームシステムを完成させる

6月13日までの発展的課題

最終目標へ近づく!:「楽しいゲームを作るためのゲームライブラリの開発」

注意事項

今回の課題は、今年度が初めてになります。
サンプルコードにバグがある可能性や、課題が分かりづらい等の問題点があると思います。
何か気がついた事があれば担当の森やTAに連絡をお願いします。

課題の達成方法等にあまり細かいルールは設定しません。
ライブラリを全面的に書き換えて、C++にしてもらっても構いません。
サンプルより良いゲームライブラリにしてくれれば、1つ1つの課題をクリアするよりも良い評価にします。
その代わりしっかり動く様にして来てください

提出方法

評価方法

参考になる情報

質問がある場合


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