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

18::gr01::須藤広平

4/20

進捗(成果)

  • 簡易企画書の作成・提案
    • 簡易企画書の内容を考え、それを班員へ提案・議論し、出てきた意見をもとに再編集をして完成させた。
    • 簡易企画書の一部分である、画面イメージの部分について班員への提案前の段階では悩んでいたが会議中に提案された班長の西村くんが制作した画像を取り入れた結果、企画書を見た人がイメージしやすい企画書になったと思う。
    • ちなみに完成した簡易企画書はこちら→ソフトウェア設計簡易企画書.pdf

今後

  • 開発スケジュールの作成
  • ものと操作の洗い出し
    • これに関しての資料作成は個人的に現在進行中。近いうちに班員へ提案し、議論する予定。

4/27

進捗(成果)

  • 開発スケジュールの完成
    • 開発スケジュールを組み、それを班員に提案した。その後、班員と話し合いスケジュールを確定させた。
    • 開発スケジュールに関するpdfはこちら→開発スケジュール.pdf
  • ものの操作と洗い出し(進捗80%)
    • ものの操作と洗い出しの提案書を作成し、班員に提案した。その後班員と議論し、加筆・修正を加えた。外枠は完成した感じがあるが、まだ修正の余地がありそうなので、次回も引き続き議論していきたいと思う。
    • ものの操作と洗い出しに関するpdfはこちら→ものと操作と洗い出し.pdf

今後

  • ものの操作と洗い出しの最終調整
    • 今日の議論で出た内容を吟味して、提案書を修正した後に再び班員と話し合う予定。
  • モジュール化に関しての提案書の作成
    • 現段階では進捗0なのでGW中に提案書の作成はしておきたい。
  • JavaScriptとenchant.jsとGitLabの勉強

5/11

進捗(成果)

  • ものと操作の洗い出し終了
    • 実際の画面のイラストを描いたり、ものや操作についても書きだすことができたと思う。
    • ものはあらかた書きだすことができていたが、それぞれのものに対する操作が抜けていたので書き足した。
    • 実際の画面のイラストなどを描いて図で議論するというのは重要だと感じた。意外と意思統一するのに時間がかかった気がする。
    • ものと操作に関する資料を作成した。pdfはこちら→ものと操作と洗い出し.pdf
  • GitLabの勉強
    • 意外と仕様を理解するまで時間がかかった。実際にいじってみるのも大事だと実感した。授業のサイト以外に参考にさせていただいたサイトはこちら→サルでもわかるGit入門
  • 制作に使えそうな画像素材の収集
    • 割と使えそうな画像が大量に見つかったので満足

今後

  • JavaScript,enchant.js,GitLabの勉強
  • モジュール化に関しての提案書の作成
    • GW中に提案書を書いておきたかったがJavaScriptなどの知識が足りず、作成まで至れなかった。次回までには提案書は作成したい。
  • atomのインストールと設定

5/18

進捗(成果)

  • 大部分のモジュール分け完了
    • モジュール分けの提案書を作成し、班員に提案した。細かいところに修正を加え、最終的に大部分のモジュール分けが完了した。
    • モジュール分けに関する提案書はこちら→モジュール分け提案書.pdf
    • 会議する上で直接書き込める電子媒体(iPad,surfaceなど)があると便利だなぁ…と思った
  • GitLabの勉強終了
    • 大体の使い方等わかったので終了

今後

  • モジュール分けの資料作成
    • モジュール分けの資料をまとめ直す。
  • プロトタイプ作成
    • 実際に動くものを作ってみる。enchant.jsは勉強中…
  • enchant.js, JavaScriptの勉強
    • プロトタイプ作成に入るためもう少し勉強が必要

5/25

進捗(成果)

  • モジュール分けが終了
    • モジュール分けに関して班員たちと再び話し合い、最終的な決定を行った。また、それに関する資料を作成した。
    • モジュール分け最終版に関する資料はこちら→モジュール分け(最終版)
  • 中間発表に向けての各モジュールの担当決定
    • 自分はmainを作ることになった。ここが書けないと動かないのでしっかり勉強して臨みたい。
  • 班wiki(共用部)の作成
    • 新たに「ものと操作」「モジュール分け」のページを作成した。

今後

  • プロトタイプ作成
    • enchant.jsを中心に勉強し、中間発表に向けてプロトタイプを作成する。

6/1

進捗(成果)

  • GitLabの使い方について班員たちと協力しながら学んだ。
    • 大体の仕様の仕方はわかったが、原因不明のエラーがでたりするのでそのあたりは調べつつ解決していきたい。
    • とりあえず、全員の.jsファイルのアップロードができたので良かった。
    • 端末室のLinux経由やTera TermによるSSH接続を経由せずに自分のPCからGitLabに接続できると便利だなぁ…と思い、先生のお力をお借りしつつ 自分のPCにGit for Windowsをインストールし、atomの拡張パッケージによって使用できるようになるターミナルから端末室のLinux同様にGitLabにpushしたり、pullしたりできるようにした。調べるのは少し大変だったが結果的に便利になったのでとても良かった。参考にさせていただいたサイトはこちら→自分用 Git For Windowsのインストール手順
    • ちなみに上記の方法でも学内Wi-FiかVPN接続しないとGitLabは使えない。atomでターミナルを使うにはatomにplatformio-ide-terminalをインストールする必要がある。詳しくはこちら→Atomエディタ
  • 中間発表へ向けての計画
    • 中間発表でどんな事を発表するのか、そのためにどこまでプログラムを完成させればよいのか班員たちと意見をまとめた。
    • 班員たちの意見をまとめつつ、資料に整理した。
    • 中間発表計画の資料はこちら→中間発表計画.pdf
  • モジュール分けについての改善
    • 中間発表へ向けてプロトタイプを作成しているうちに以前のモジュール分けについて改善点が見えてきたので、再度班員たちと話し合いをし、 モジュール分けについて改善を行った。
    • その会議の結論を資料にまとめた。
    • 改善をした最新版のモジュール分けの資料はこちら→モジュール分けver_4.0(最新版).pdf
  • HTMLとJavaScriptの勉強
    • enchant.jsから勉強しようと思ったが途中で挫折してしまったため、結局HTMLとJavaScriptから勉強した。
    • クラスやオブジェクトの理解に時間がかかったがなんとか理解することができたと思う。

今後

  • enchant.jsの勉強
    • なんとかこの土日で勉強してしまいたい。
  • プロトタイプの作成
    • enchant.jsの勉強が進んでないためプログラムの方もほとんど進んでいない…これも土日で何とかしたいところ。
  • 中間発表へ向けてのプログラムの統合テスト
    • 来週の金曜日にはプログラムを統合できるようにしておきたい。

6/8

進捗(成果)

  • 自分の担当モジュールのプロトタイプ終了
    • とりあえず中間発表へ向けて自分がやるべきプログラミングは終えた。ほかの班員たちのサポートもしつつ、中間発表後に実装予定のセーブ機能についても勉強していきたい。
    • ソースコードはこちら→flag_event.js(GitLab)(リンク切れ)
  • 素材収集パート2
    • 今後使えそうな画像やBGMがあるサイトを探し、班員たちに紹介した。忘れなければそのうちサイトへのリンクを貼ろうと思う。
  • 名前空間やオブジェクト、enchant.js全般についての理解を深めた。

今後

  • セーブ機能の実装
    • とりあえずmemory.enchant.jsについて調べてみようと思う。
  • 班wikiと中間発表資料の作成
  • readme_flag_event.txtの作成
    • メソッドの仕様を明記したテキストファイルの作成

6/15

進捗(成果)

  • 中間発表
    • 中間発表を行った。プロトタイプの統合ができていたことが非常に大きかったと感じる。プロトタイプの統合は盛内君が中心になって行ってくれたおかげで非常にスムーズに進められたと思う。
    • 自分は中間発表のための班wikiのページ作成や、中間発表の内容を考えた。中間発表の内容はもう少し色々工夫できたのではないだろうかと思っている。最終発表ではもう少し時間をかけてプレゼン内容を考えて、中間発表よりも良い発表ができればと思う。班wikiのページも急ごしらえなところが多かったので次の発表では改善したい。具体的には各モジュール担当1人につき1つぐらいは見せ場を作ってあげられるような構成にできればと考えている。
    • 自分が担当したフラグ管理モジュールは現在はアイテムのフラグ(所持数など)とイベントのフラグの管理が別になっており、どちらのプログラムも中間発表時点でほぼ完成となっているので、中間発表後はこれらのプログラムを統合し、1つの管理モジュールにしていきたい。

今後

  • フラグ管理モジュールの統合
    • 前述した管理モジュールの統合を行いたい。セーブ機能やロード、セーブデータの初期化を行った際にバグが発生しないように特に気を付けたい。
  • 新モジュール担当
    • 自分は新しくイベントモジュール(謎解き)を担当することになった。パズルなどのギミックで面白いものを様々作っていくことができればと思う。

6/22

進捗(結果)

  • 中間発表反省会
    • 中間発表をして先生やTAの方々がコメントしてくださったことに班員たち全員で目を通し、意見を交換した。特に主人公モジュールにおける画像切り替えの速さ調整や、当たり判定のアドバイスに関しては非常に参考になったと思う。また、言及されていた「目新しさ」については中々アイディアがまとまらなかったため今後も引き続き考えていきたい。
  • フラグ管理モジュールの統合
    • 6/15のところにも書いた管理モジュールの統合を行った。これでアイテムの管理とイベントの管理を一括で行い、かつセーブやロード、セーブデータの初期化もできるようになった。これで管理モジュールについてはほぼ完成になると思う。
  • ライツアウト(パズル)の実装
    • 新しく担当になったイベントモジュールにおいて、ライツアウトというパズルの一種を実装した。クラス化するのに時間がかかってしまったがなんとか完成させることができたので、クラスを呼び出すだけで好きなところにパズルを解くイベントを配置することができるようになった。問題生成もブラウザページを更新するたびに行われるため、毎回異なる問題で遊ぶことができる。またライツアウトには解くことができない問題もあるらしく、ランダムに問題生成をする際に解けない問題が出題されないようにプログラムしたため多分必ず解けるような仕様になっているはず…

今後

  • 謎解きの流れの設計
    • 全体として、ゲームクリアまでにどのような謎を用意するのかを書きだしたほうがほかのモジュール担当の人にとっても自分にとっても良いということがわかったのでその流れをまとめたものを作成しようと思う。
  • 他のギミックの作成
    • ライツアウトだけではなくほかのギミックについても実装していきたい。

6/29

進捗(成果)

  • セーブクラスとフラグ管理クラスの統合
    • フラグモジュールに修正を加えて、セーブとフラグ管理のクラスを統一した。これにより、オブジェクトを何個も生成する必要がなくなった。
  • フラグ管理モジュールのファイル分割
    • 今までは単体テストを1つのファイルで行っていたが、モジュールのみ書かれたファイルと、単体テスト用のmainファイルと分けて書いてテストできるようにした。これにより、統合時にはコピペするのではなく、htmlでファイルを読み込むだけでフラグ管理モジュールを使えるようになった。
  • 謎解きの流れの設計
    • 3Fと2Fの謎解きのギミックを確定させた。謎解きの流れをフローチャートにしてまとめた。

今後

  • メニューモジュールのクラス化とファイル分割
    • メニューモジュールをクラス化して、単体テスト用のmainファイルと分けて書くことで統合時に統合しやすく、使いやすくできるようにしたい。
  • 謎解きの流れの設計
    • 1Fの謎解きの流れがまだ決まってないのでまずはここを決めてしまいたい。そうすれば必要なアイテムなどがわかってくるはず…
  • フラグ管理モジュールの安定化
    • フラグ管理モジュールはほぼ完成に近いが、他のモジュール担当の人と話をして、実装してほしい機能などがあれば随時実装していきたいと思う。

7/6

進捗(成果)

  • 謎解きの流れの設計
    • 3F~1Fまでの謎解きの流れが完成した。これにより、イベント作ることができるのでどんどん作っていきたい。
  • フラグ管理モジュールの安定化と多機能化
    • 他のモジュール担当の人からの話を聞き、色々と実装してみた。(set_HPやset_timeなどなど)また、細かいバグ取りもした。
  • メニューモジュールのクラス化(多機能化)とファイル分割
    • 進捗が70%ぐらい。あとはステータス画面の体力表示をデータと連動させることと、アイテムの使用後の効果処理、アイテムのを使った後、所持数が0にも関わらず使用することができてしまう問題を解決すれば完成しそう。

今後

  • メニューモジュールのクラス化(多機能化)とファイル分割
    • できれば来週中には完成させてしまいたい。そうすればさらにゲームらしい画面になると思う。
  • イベントモジュール(謎解き)の作成
    • イベントの内容が固まったので再び謎解きモジュールの作成に戻る。パズル系統は来週までに完成させてしまいたい。

7/13

進捗(成果)

  • メニューモジュールのクラス化(多機能化)とファイル分割
    • なんとか完成させることができた。
    • 所持数が0にもかかわらず使用することができてしまう問題はaddEventListenerをしたあと、所持数が0になった時に、removeEventListenerをしていないからであった。適切な場所に記述することにより解決できた。
    • 前回のあと、所持数が増減するとアイテムの説明文が二重に表示されてしまうというバグが生じた。原因はLabelオブジェクトのtextプロパティにアイテムが増減するたびにLabelをaddChildしていることであったらしい…if文の条件文を変えることと、メニューモジュールでも過去に一度手に入れたアイテム情報を記録することで二重にaddChildすることを回避した。

7/20

進捗(成果)

  • 統合・モジュール作成
    • 統合も少しずつ進んでいるが、敵の当たり判定にバグがあったり、画面遷移がうまく行かなかったりと難航している模様…
    • メニューモジュールは完成しているが敵の実装や、マップの実装が先なので実装待ち。
    • フラグ管理モジュールは統合されたようだが今のところ問題なく動いている感じがする。
    • パズル(謎解き)モジュールはアイスパズルの制作まで終わった。まだクロックパズルやパスワード生成システム等が残っているので急ぎたい。

今後

  • 統合・モジュール作成
    • フラグ管理は今のところ問題なく動いているが、もしバグが発見された場合にはきちんと対応していきたいと思う。
    • パズル(謎解き)モジュールの制作が遅れているので急ぎたい。クロックパズルの画像やアルゴリズムはできてきているので、はやくプログラムに取り掛かりたいと思う。

7/27

進捗(成果)

  • 統合・モジュール作成
    • 統合も進んでいる模様。敵との当たり判定に現在も苦戦している感じであった。マップはできあがったらしい。イベントやアイテムの配置なども急ぎたい。
    • パズル(謎解き)モジュールはクロックパズルが少しずつ形になってきている。もう少しで完成しそう。クロックパズル用のパスワード生成システムも実装していきたい。

今後

  • 統合・モジュール作成
    • パズル(謎解き)モジュールを完成させつつ、統合のほうのイベント配置や統合していくうえで足りなかったものなどが万が一出てきた場合は補っていきたい。
    • フラグ管理モジュールで欲しい機能が出てきたりしていたので、機能を見直しつつ、また要望があれば追加していきたい。
  • 最終発表準備
    • 最終発表に向けての準備やデモプレイ用のシナリオも考えておきたい。できれば各モジュール担当ごと、班員一人一回は見せ場を作れるように発表内容を考えていきたいと思う。

8/3

最終発表

  • モジュール統合
    • なんとか班員みんなが制作したモジュールを統合することができた。まだ多少バグが残ってたりするところもあるので、提出日の8/10までには完成版を作っておきたい。
  • パズル(謎解き)モジュール・フラグ管理モジュール・メニュー画面モジュールの調整
    • 謎解きモジュールは最後までイベントの追加に追われた。パズル自体はできていたが、パスワードの生成システムや、入力システムの実装などをしていた。
    • フラグ管理モジュールは「data[0] is undefind」という原因不明のエラーとともにマップが表示されないという致命的なバグの元凶だったことが発覚…発表前に解決できたから良かったものの、やはりゲーム全体の管理をするモジュールである以上、デバッグは行ったが、もっとしっかりデバッグを行うべきだと感じた。
    • メニュー画面モジュールも最後までイベントの追加に追われた。アナログではできない、あるアイテムに関連するデータを入手したら随時該当アイテムのデータが更新されるなどディジタルならではの機能も実装してみたりした。発表ではちょっと尺が足りなかったためカットとなってしまったが気になる方は「セキュリティコード対応表」というアイテムがデータを入手するごとに中身が書き換わっていることに注目してほしい。
  • 最終発表に関して
    • 多くのモジュールを多く担当したこともあり、話すことが多く、発表に時間がかかってしまったことが反省点かなと思った。
    • 発表では話せなかったこと、話したことに対して補足や裏話など。
      • ライツアウトパズルはパズル(謎解き)モジュールを担当して、初めて作ったプログラムだったがランダムに問題を生成して、なおかつ解けない問題が出題されないようにするのはアルゴリズムを考えるほうが時間がかかった気がする…(実装はすぐだった)
      • 発表では紹介されなかったが、パズル(謎解き)モジュールにはアイスパズル、クロックパズル、キーボードとテキストボックスを用いた解答入力型の謎解き、パスワード入力システム、パスワード(ランダム)生成システムなどたくさんの要素を用意している。非常にやりごたえがあると思うので、ぜひ遊んでいただきたい。
      • フラグ管理モジュールは画像をたくさん表示するわけでもなく、発表でもあまり大々的には紹介されなかったが、同じイベントが複数回発生しないようにしたり、一度生成されたパスワードが書き換えられることを防いだり、データをセーブ・削除したりしている。ゲーム全体の進行状況を管理するモジュールとなっている。画像をたくさん表示するわけではないが、タイマーの表示はこのモジュールが行ってたりする。
      • メニュー画面表示モジュールはアイテムの数を減らしたり、所持数をリアルタイムで表示させる作業が大変だった。カーソルを合わせると自動的にアイテムの説明がいまカーソルを合わせているアイテムの説明文に切り替わる。また、アイテムを持っていないのに空欄のところにカーソルを合わせるとアイテムの説明が出たりするバグもあったりしたこともあったのでそれを取り除くのも大変だった。発表時に使用したファイルでは空欄にカーソルを合わせるとアイテムの説明欄には何も出ないようにプログラムされている。フラグ管理モジュールと連動して、アイテムの数をやりとりしたりする作業も苦労したがなんとか実装できたので良かったと思う。

補足

担当モジュール

  • フラグ管理モジュール
  • メニュー画面表示モジュール
  • パズル(謎解き)モジュール


最終更新日:2018/08/10 09:14:10