!!!プロジェクト名 !!!!Prison Break !!!プロジェクト説明 *脱出型パズルゲーム *主人公を動かして仲間を救い出し、ゴールへ向かう。(仲間を回収しないとゴールできない) *主人公は特殊能力を持っており、いくつかのブロックを動かすことができる。 !!!モジュール分けと詳細説明 *>>{20::gr03::全体構成}{全体構成} *>>{20::gr03::統合用}{統合用} *>>{20::gr03::スタート画面}{スタート画面(加藤俊哉)} *>>{20::gr03::コース選択画面}{コース選択画面(渡邉拓真)} *>>{20::gr03::ストーリー画面}{ストーリー画面(日影浩也)} *>>{20::gr03::メニュー画面}{メニュー画面(神一輝)} *>>{20::gr03::プレイ画面}{プレイ画面(若月大生、渡邉拓真、加藤俊哉)} !!!スタート画面 <<{スタート画面.PNG} !!!ストーリー画面 <<{story.png} !!!コース選択画面 <<{course.png} !!!プレイ画面 <<{プレイ画面.PNG} !!!メニュー画面 <<{menu.png} !!!個々人の感想 !!渡邉拓真 私はコース選択画面とプレイ画面のステージ3を担当した。コース選択画面の製作自体は一つ変数を割り当てて、その変数の値によってシーンの切り替えを変更してやるだけだったので容易であった。プレイ画面のステージ3も他の班員のおかげでプログラムのひな型があらかじめあったので容易に製作することができた。((br)) しかし、それぞれの画面のデザインが中間発表までの製作でずっと満足していなかった。ユーザーがより興味を持ってプレイしてくれるのかを考えたときにやはりデザインがカッコよくなくては試してみようとも思ってくれないと感じた。中間発表以降、デザインを他のプレイ画面とギャップが生まれないようにしつつ改善を試みた。正直満足とまではいかなかったが、全体的なデザインとしてはかなり良くなったと感じている。今後は画像の編集ソフト等を使いこなし、理想のものを製作できるようなスキルを身に着けていきたい。((br)) また、今回私は班長として班の活動の進行を主に任されていた。チームでソフトを製作するのは想定していたより困難であった。活動をしていく中でどうしても授業時間外での時間を個人で儲けてもらうのは必須であったし、何より今年は例年とは違いリモートワークでの活動になったため情報の伝達がかなり困難であった。その中でスケジュール通り活動を進め、皆がイメージに合ったものを製作できたので良かったと感じている。 !!神一輝 シーンの切り替えなど上手くいかないこともありましたが、なんとか完成できて良かったです。 これをきっかけにゲーム以外も作ってみたいです。 !!若月大生 今回ソフトウェア演習を行うにあたり、JavaScriptとenchant.jsを組み合わせて作ることを事前に知り、どちらも触ったことがなかったので、実習の前にゲームを作って練習することにしました。コロナの影響で時間はたくさんあったので、アクションゲームを1つ作ることができました。しかし、完成したものの初めてだったということもあり、かなり長く、見づらく、効率の悪いソースコードになってしまいました。そこでどうしたら効率良く、コードが書けるのか調べたところクラスというとても便利な機能があることを知り、実習の時は、クラスを上手く使って書いていこうと思いました。 ((br))((br)) [プログラムについて]((br)) 私が主に作成にしたプログラムは、ステージを効率良く作成するためのクラスです。ゲームにオブジェクトを配置するとき、1つ1つのオブジェクトに動きを記述していくとかなり長くなるため、引数だけ渡すだけで任意のオブジェクトを作成できるようにしました。 そうすれば、他の班員でも簡単にステージが作成できるので効率が良いと思いました。プログラムを作る際大変だったのが、当たり判定と、壁の動きです。当たり判定は、ぶつかった際に位置をずらさないようにしてあげるのですが、fps中に動く幅が、判定対象の幅を超えるとすり抜けてしまいます。キャラクターの場合、すり抜ける値を超えないようにすれば良いのですが、マウスで動かす壁の場合、遅すぎると操作がしづらくなるため、調整と操作性の工夫に苦労しました。また、クラス中に当たり判定の記述をするため対象をグローバル変数の配列に格納することにしました。このやり方は、ステージを作る度に配列に当たり判定の対象を格納しなければならないため、効率が悪い気がしましたが、特に良いやり方が思いつかなかったので、妥協しました。他のゲーム制作者はどのように記述しているのか気になりました。クラスの記述は大変でしたが、トライ&エラーで2日程度で終わりました。そのおかげで、ステージの作成はとてもスムーズになりました。((br)) 構想段階で工夫した点として、画像読み込みが多い事が予想されたので、読み込むページをまとめました。また、各自画面サイズなどの設定が、バラけているとバグの原因になると思ったので、最初に統一しました。((br)) 各自がシーンを作り、統合用のスクリプトでまとめるというやり方を最初からイメージできていたので、統合はスムーズにできて良かったです。((br)) タイトルロゴがダサかったので作り直しました。タイトルがダサいと第一印象が悪くなるので良くないと思いました。 ((br))((br)) [苦労した点]((br)) 自分1人でゲームを作ったことはありましたが、複数人で1つのソフトウェアを作る経験がなかったので、連携して作る難しさを痛感しました。全員のモチベーション維持や、それぞれが何を作るか把握することが重要だと感じました。また、プロトタイプの時点で かなり完成してしまっていたので、そこからモチベーションが低下してしまいました。1人で作る場合、勝手に遊び感覚でアップデートしていけば良いのですが、複数人で作る場合、情報共有など、めんどくさい点がいくつかあるので、だらけてしまいました。 モチベーションの大切さが良く分かりました。((br)) ゲームオーバー画面とステージクリア画面まで、作り込ませられませんでした。ゲームの印象が悪くなってしまうため、作るこむべきだったと反省しています。 !!日影浩也 自分はストーリー画面を担当した。自分がとある海外ドラマを見た事があるという理由でストーリー画面をつくることになったのだがあんまり良い内容が浮かばなかった。ゲーム全体のクオリティを上げるためにもプレイして最後までクリアしたときにより達成感があるようなストーリーを描きたかったのだが簡単なものでは無かった。((br)) 最初はenchant.jsをどのように扱って良いか分からなかったので画像を表示させるのも一苦労だった、手探りで進めていき試行錯誤していくにつれて、また対面で班活動を行い分からないところを話し合ったりするにつれて扱い方が分かってきてやれることが増えていった、一人でずっと悩むよりも班活動を行い分からないところを補い合うほうが明らかに理解するスピードが速かった、独学で学ぶということの難しさが今回で改めて分かった。((br)) 今回つくった作品は自分が普段遊んでいるPS4のゲームなどに比べると極めて規模は小さくモジュール分けの数、制作する人数も違うが規模が大きくなればなるほど統合や完成するイメージの共有などが難しくなることが分かった。ゲーム会社でゲームを作る人のすごさ、ゲーム作りの難しさを感じた。((br)) 今回の活動で自分はまだまだプログラムを作成する能力が足りないということ、そしてものづくりの大変さがわかった。一つのアイデアで簡単なプログラムで面白い作品を作ることもできるし、その逆もあるだろう。またデザインの工夫で荒削りな作品のクオリティが著しく高まる。今回の講義で得た経験はあらゆる作品づくりで生かすことができるので自分で何か作品を作ってスキルを磨いていきたい。 !!加藤俊哉 自分はスタート画面とステージ4を担当した。スタート画面はゲームの最初の画面なのでゲームの雰囲気とタイトルを伝えられるようにした。最初はコマンドが分からずテキストや画像を表示させるのも大変だったが、メンバーがいろいろ教えてくれたのでなんとか良いスタート画面ができたと思う。ステージ4は大生君がブロックやプレイヤーオブジェクトなどは作ってくれていたのでブロックの配置や、刑務官の速さなどを設定した。今回のプロジェクトで最初は本当にゲームができるのかと不安だったが、割としっかりしたゲームができたので良かった。スタート画面を動くのにしてみたかったが、技術が足りなかったので諦めた。次にゲームを作る機会があったらもっとクオリティの上がった作品を作りたい。 !! [3班HOME|http://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2020/?p=20%3A%3Agr03]