!!!授業の記録 !!第1回 4/21 第1回は、班決めとソフトウェアの方向性を決めた。ソフトウェアはゲームであり、内容は2人で協力するゲームと暫定的に決まった。これから、さらに具体的な内容を決める必要があるため、班員の人とうまくコミュニケーションをとっていきたい。 !!第2回 4/28 授業の前半はHTMLの基礎を学び、GitLabの設定を行なった。後半では制作するゲームの具体的な内容についてグループで話し合った。ゲームのおおまかな流れが決まったため、次回はゲームの詳細について決定したい。 !!第3回 5/2 javascriptの基礎を学んだ。その後、班員同士でと「モノと操作」の洗い出しを行った。必要なモノを洗い出すために、製作予定のミニーゲームについて案を出し合った。班wikiに、モノと操作を書き込んだ。授業外の時間にプログラミングの勉強などを進めたい。 !!第4回 5/12 javascript応用編の授業を受けた。第3回で行ったモノと操作の洗い出しをさらに具体的にした。ミニゲームを10個ほど作る必要があるため、前回出し合ったミニゲーム案を、班員それぞれでゲームの仕様を考えた。私は一つしかゲームを考えていなかったため、新しいゲームを考えておく。 !!第5回 5/19 HTMLのスタイルを決めるCSSやGitLabの使い方、モジュール分けの説明を受けた。班活動では主にモジュール分けを行った。モジュール分けは誰も正解が分からないため、難儀した。しかし、意見を出し合って大まかなモジュール分けと担当を決めれたので、これから細かく内容を決めていきたい。 !!第6回 5/26 授業の前半ではenchant.jsの説明と、モジュール分けについて説明を受けた。後半のグループ活動では、前回決めたモジュール分担ごとにプロトタイプ作成を行った。他のhtmlファイルからミニゲームのhtmlファイルへ遷移し、ミニゲームが終了した後に元のhtmlファイルに戻るプログラムができた。 !!第7回 5/29(月) javascriptのデバッグ方法について授業を受けた。デバッグにはコンソールを用いて変数や配列の値を確認する、プログラムを途中まで実行するなどの方法があった。グループ活動ではそれぞれプロトタイプ作成を行った。私は、木こりのミニゲームのプロトタイプ作成をした。動きがない状態のゲーム画面ができたため、これから動きをつけていく。 !!第8回 6/2(金) 中間発表に向けて、それぞれプロトタイプ作成を行った。プレーヤーなどのオブジェクトをクラスで定義した方が良いことを知り、JavaScriptのクラスについて調べた。分からない文法が多くあったため、授業外の時間に文法の学習をしていきたい。 !!第9回 6/16(金) 中間発表が行われた。他の班の作品はDBを使っていたり、Googleアカウントからアプリにログインする機能や、自分の声の高さを解析する機能、個性のあるゲームなどがあり刺激になった。中間発表後、Gitlabのタグについて説明を受けた。班活動では、BGM、SEの自動再生について話し合った。htmlファイルを一つだけにする場合、使用するJSのライブラリを統一した方がいいと思い、enchant.jsについて調べた。 !!第10回 6/23(金) 技術的内容では、Node.jsの特徴や使い方、WebSocketを用いた通信について授業を受けた。今回の主な目的は、再びモジュール分けを見直すことであった。班活動では、enchant.jsを使って、ゲームを作り直すことに決定した。私は今回までに、p5.jsで作っていたミニゲームモジュールをenchant.jsで書き換え、一つのhtmlファイルで動くゲームの簡単な大枠(start画面とminigame画面、result画面のみ)を作成した。採用はされなかったが、班の方針を決める材料になった。プログラムの構成はネットの記事に加え、23年12班のソースを参考にした。 !!第11回 6/30(金) モジュールの実装や単体でのテストについて授業を受けた。モジュール単体でテストをせずに統合をすると、バグの切り分けが難しくなるため単体テストは必須である。グループ活動ではそれぞれモジュール作成を行った。私は新しいミニゲームを作り始めた。実装できるか不安であるため、授業時間外でいろいろ調べたい。次回は仮統合を行うため、木こりのプログラムを統合用に書き換えてくる。 !!第12回 7/7(金) グループ開発ではそれぞれ、統合の準備をしてから仮統合を行った。内容の変更点はあるけれど、中間発表の状態から音がついたような状態となった。私は現在のミニゲームのキャラクターをスプライトシートで動かし、スコア設定について考えるなどの課題がある。また、新しいミニゲームについても開発を進める。 !!第13回 7/14(金) グループメンバーそれぞれで開発を行った。私は新しいミニゲームを引き続きコーディングした。マップにアイテムを追加したけれど、それを消す処理を実装することができなかった。7/21に統合を行うため、それまでに実装したい。 !!時間外 7/21(金) 統合を行った。「きこる」では、キャラクターをスプライトシートで表示することで、動きをつけた。「まりお」では、先週できなかった処理を実装し、他にも様々な調整、SE,BGM実装,マップ作成(2つ)を行ってきた。第10回までに作ったゲームの大枠を使って、統合前に単体テストを行った。そのため、統合はスムーズにできた。 !!個人コメント下書き ここでは感想のみを書き、開発で工夫したことなど、細かいことは個人ページに書きます。 * http://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2023/?p=23%3A%3Agr11%3A%3A%E8%8B%A5%E6%BE%A4%E7%B4%94%E6%98%8E{s0621063若澤純明} *感想((br))  私が担当をしたのは、ミニゲーム6(きこる)とミニゲーム8(まりお)です。全体的に時間がなかったため、作るのが大変でしたが、7割ほどはやりたいことを実装できてよかったです。このグループでゲームを作れたことに感謝したいです。1回目の授業でグループをつくり、何を制作するか話し合ったとき、すぐにゲームを作ることが決まったため運が良かったと思います。また、ミニゲームの開発中は、Gitlabからメンバーのコードを勝手に参考にしていたため、それも感謝したいです。((br))  開発には途中からenchant.jsをつかったため、それ以外のプログラミング言語はあまり勉強できなかった。しかし、この授業を通して、グループ開発で必要な考え方や、調べる力がついたと思うため、これから様々なことに活かしたい。((br))  中間発表までは、ミニゲームを紹介するための戦闘ゲームのようになってしまっていたが、最終的には戦闘面でも思考が必要なゲームになりました。ミニゲームを選ぶ前の技選択のアイデアは大晴班長が考えたのですが、ダメージの細かい調整はみんなでテストプレイを重ねて行ったため、簡単すぎず難しすぎないゲームになったと思います。是非プレイしてクリアしてほしいです。 !!最終発表後:個人コメント *アピールポイント *プログラミングで工夫した点(個人ページにゲームの仕様を記載) ミニゲーム6では、2つあります。1つ目は、ゲームに存在する状態を4つに分けたことです。状態は、操作が何もないとき、1pが木を切るのに成功したとき/しなかったとき、2pが木を切るのに成功したとき/しなかったとき。このように状態を分けることで、それぞれの状態が進行しているときは、他の状態に遷移しないようになっています。2つ目は、毛虫をランダムに生成することです。実際には毛虫は生成しておらず、毛虫のクラスから4つのインスタンスを作り、それを使いまわしています。どちらかが木を切るのに成功したとき、 !!!メモ *スコアに応じて、攻撃エフェクトの足の大きさを変えるとか。(大きいダメージが出た時の楽しさ)((br)) *返すscoreは0~100 *htmlで表示する画面の上にhtmlファイルを表示するには((br)) http://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2023/?p=23%3A%3Agr11{23::gr11}