17:06:27)追加された行はこの色です。削除された行はこの色です。[#sdeef366]企業や研究でのプログラム開発では、開発の効率化やバグ等を減らすため~同じような処理は関数等にまとめて、ライブラリ化する事が良く行われます。~そこで今回はゲーム開発を題材にライブラリ開発の意義や方法について学びます。Engineを使用して、~ライブラリの使用と開発の両方を経験する事によって、使いやすいライブラリや~開発やメンテナンスしやすいライブラリはどのようなものかを実際に作る事で考えてもらいます。スクリプトによりODEの解凍、コンパイル、インストールと今回の課題のサンプルプログラムのコンパイルとインストールが行われます。OSXや最新のlinuxで行いたい場合は以下のファイルをダウンロードしてください。ODEの最新版を使っています。上記と同じコマンドを実行しますが、ODEをコンパイルするためには予めMacPortsやyum,apt-get等を用いて、~freeglut等のOpenGL関係のライブラリをインストールしておく必要があります。[#l7537f9f]-全てのファイルをエディタで見てみよう。application/shooting_game_c-langディレクトリ内にはゲームアプリケーションのソースコードが入っています。~ゲームアプリケーションはライブラリを使用して具体的なゲームを構成します。src/gamelibにはライブラリのソースコードが入っています。アプリケーションとライブラリのディレクトリ内にあるファイルを全てエディタで開いて、~中身を確認してください。main.cに、drawstuffによるシミュレーション管理のための構造体や関数が書かれており。shooting_game.cに、実際のゲームのロジックが書かれています。start()という関数があり、ゲーム環境の初期化を行っています。~そこにマップを構成するための関数が書かれているので、~関数を修正してマップを変更してみましょう。~最初のマップは3x3だが、ライブラリのソースを変更するともっと大きなマップにする事は可能です。~何を変更すれば良いか、ソースコードを読んで調べてみよう。基本的な処理を行う関数を作成し、必要に応じて引数や組み合わせを変更して、~様々なアプリケーションを作成する事を可能にするのがライブラリ開発の醍醐味です。~マップの変更はその1つなので、まず始めに挑戦してみてください。[#mef4a474]今回の課題は、今年度が初めてになります。~サンプルコードにバグがある可能性や、課題が分かりづらい等の問題点があると思います。~何か気がついた事があれば担当の森やTAに連絡をお願いします。課題の達成方法等にあまり細かいルールは設定しません。~ライブラリを全面的に書き換えて、C++にしてもらっても構いません。~サンプルより良いゲームライブラリにしてくれれば、1つ1つの課題をクリアするよりも良い評価にします。~その代わりしっかり動く様にして来てください。