2014 ソフトウェア設計及び演習用の班Wiki

14::gr07::発表

3D レースゲーム



プロジェクト説明

主にopneglを利用して、端末間の通信対戦ができる3人称視点のカーレーシングゲームを作成することを目指した。
しかし進行状況を考慮した結果、レースを可能にするところまでは間に合わなさそうであったので、1台のみをコースに出現させてタイムアタックをするゲームを作成した。

モジュール分け

・藤田エミール [班長] 20312111
全体の進行管理。レースコースの作成、車の移動操作作成。車とレースコースの統合。<Stage1.hpp , assist.hpp>
・佐藤優多[副班長] 20312070
レースコースの設計、作成(柵、トンネル、道路、地面、木、彩色)。車とレースコースの統合。<Stage1.hpp , assist.hpp>
・福島和也 20312109
車の変速機能、加速機能の作成。光源設計。<Stage1.hpp , assist.hpp>
・瀬川尚輝 20312084
始めのスタート画面。時間計測。レース結果出力。スタート画面とopenglのレースゲームとの移行。光源、カメラ設計。車とレースコースの統合。<Stage1.hpp , assist.hpp, XLoader.h>
・伊藤大 20312011
車の3Dモデルの作成。.x形式のファイルへの変換。<anim2.x , XLoader.h>
・成田伶 20312101
レースコースの衝突機能作成、車の移動操作作成。光源、カメラ設計。車とレースコースの統合。<Stage1.hpp , assist.hpp>

個々人の感想

  • うまくいったこと,うまくいかなかったこと,学んだこと
  • 演習の目的,こころがけ,などに記載た事項を改めて見直してみてどうか

・藤田エミール
まず今回は、私が個人的にも好きなレースゲームの作成で、さらに3Dであったので楽しみながら作成できたのは良かった。しかし、とりかかる段階から実装のイメージ、ソフトウェアの設計に関してのイメージを持つことが難しく、どのように作り始めれば良いかという所から苦戦した。3年生の前期のopenglで班員が作成した迷路などの材料や、インターネット上の情報を参考にコース作りから始め、3Dフィールド内でのカメラの動きを確認しながらレースの動作を想像しつつ作成を始めた。それと同時に、コースの設計や車の変速機能、スタート画面や3Dモデルの作成を班員にどこまで制作してもらうかという仕事の割り当てもしたが、統合する際の事をイメージしながらどこまで作業をやってもらうかを考えないといけなく、進行状況を見ながら適に調整する必要があったのでその点に苦労した。統合する際も、車とコースの座標軸の違いや、色がうまく表示されないなどの問題も多発し、それらの問題解決にも苦労し、班員で話し合いながら最終的に解決できた事は良かった。ここから、統合が上手く行くようにはじめから適切にモジュール分けを行う重要性を痛感させられたが、元々どのようにこれらのプログラムを実装していくのか具体的にイメージできていなかったので、意見交換をしながら分かっている所から少しずつパズルのように制作を進めていったやり方の方が、寧ろ今回は良かったのではないかと感じた。グループ全体での意見交換が活発だったおかげで、分からない問題に対しても全体で解決にアプローチしていった過程は良かったと感じたし、なんとかタイムアタックできる所まで完成させられたことは個人的にも班としても大きな成果だったと思う。

・佐藤優多
レースゲームの作成という事で最初に2Dか3Dにするかで意見がわかれた。私達は以前、授業でopenGLの操作方法を学んだことがあるのでそれを生かして3Dモデルで作成していくことになりました。私の担当は主にコース作成だった。コースには柵を作るため杭などを作成したのだがコースが広いため膨大な量になってしまいコースを作り直すたびに苦労した。この点においてはもう少し文法などの知識があれば楽になったかもしれない。また、道や柵をシンプルに作りすぎたため殺風景になってしまったのでゴールゲートにに力を入れたり、標識を作成するなど小物を付け加えるなどした。  今回の演習を振り返ってみると製作プランを練る段階ではきちんと分けられていたモジュールも製作途中では曖昧なものになり、期限内に担当しているプログラムが仕上がらなかったり、統合の際に予想外なエラーが起きることもあった。ゲーム製作はチームで行うものであり、チームの雰囲気まとまりも大事なものなのだと思った。

・福島和也
 今回のテーマとしてレースゲームを作成した。この作成においての目標にメンバーそれぞれが思い描いているものを全て実装しようとし、対戦形式や多数のモデルの作成など実装したい内容があったが、最終結果としては当初の目標に達成してはいないが、今回初めてのゲーム制作において個人的には満足のいくところまで実装できたのでよかった。私自身の担当した部分だが、コースや車の状態をみて、それに合う形で実装したが、無理やり実装させた部分もあったので、その部分の処理に手間取ってしまった。そのことを含め、全体的に細部の実装について、他メンバーと話し合いひとつひとつ処理を終わらせたり、追加内容においても全員がまとまって動くことが出来たので、制作結果として満足することが出来た。

・瀬川尚輝
今回はプログラム開発ということで、この班はレースゲームの作成を行った。最初にどの様なレースゲームにするか、モジュールはどう分けるかの話し合いがあったが結構な時間がかかってしまった。また最終的には最初に考えたゲームの機能を実装することが出来なかった。(通信対戦、車種の選択) 3Dのレースゲームという事でGTKでは開発が出来なそうなので、一度授業で触ったことのあるopenglで作成することにしたが知識が足りずとても苦労した。 自分が担当した範囲では.xファイルをopenglで読み込むことの出来るXLoaderというプログラムがインターネットで公開されており、それを使うことにしたがモデルを読み込んでもうまく表示がされなかったり色がうまく出なかったりしてしまいこれを修正するのに多くの時間がかかってしまった。 最初のスタート画面はopenglだと難しそうだったのでGTKで実装することとなったがopenglとGTKで関数を渡す方法がわからなかったので結局リザルトはopenglでtxtに書きこんでGTKで読み取るという形となったのが残念だった。結果としてグループでのプログラム開発で担当は上手く分けれたと思うがきちんとしたモジュール分けは出来なかった。また多人数でのプログラム開発は一段と難しくなることが実感できた。
・伊藤大
同上
・成田伶
今回はレースゲームということで、当初は複数の端末間での通信対戦機能を実装しようとしていた。しかし、結果としてそこまで実装することは出来なかった。個人の役割としては、車の移動操作やコースとの衝突、モデルとコースとの統合を担当した。移動に関しては簡単に実装することは出来たが、衝突機能に関しては少し苦労した。壁の座標に来たら少し座標の小さいところへ返すという形で衝突機能とした。これを思いつくのに多少時間がかかってしまった。一番苦労したと感じる点はモデルとコースの統合、光源の設定だ。モデルとコースでは座標軸が異なって作成されていたので最初はうまく表示されなかった。光源に関してもモデルとコースそれぞれに光源が設定されており、これもまた座標軸の違いからうまく光が当たらなかった。班員と協力しながら取り組むことで最終的にはこの2つの問題を解決することが出来た。今回この講義では、前期の講義で学んだモジュール分けを利用しグループでのプログラミングを体験した。個人的にプログラミングは得意ではないのでどこまで貢献できるか心配であったが、班員の協力もあり最終的にはタイムアタックとして形にすることができてよかったと感じる。


最終更新日:2015/02/18 10:10:29