2018 ソフトウェア設計及び演習用の班Wiki
18::gr01::須藤広平
4/20
進捗(成果)
-
簡易企画書の作成・提案
- 簡易企画書の内容を考え、それを班員へ提案・議論し、出てきた意見をもとに再編集をして完成させた。
- 簡易企画書の一部分である、画面イメージの部分について班員への提案前の段階では悩んでいたが会議中に提案された班長の西村くんが制作した画像を取り入れた結果、企画書を見た人がイメージしやすい企画書になったと思う。
- ちなみに完成した簡易企画書はこちら→ソフトウェア設計簡易企画書.pdf
4/27
進捗(成果)
-
開発スケジュールの完成
- 開発スケジュールを組み、それを班員に提案した。その後、班員と話し合いスケジュールを確定させた。
- 開発スケジュールに関するpdfはこちら→開発スケジュール.pdf
- ものの操作と洗い出し(進捗80%)
- ものの操作と洗い出しの提案書を作成し、班員に提案した。その後班員と議論し、加筆・修正を加えた。外枠は完成した感じがあるが、まだ修正の余地がありそうなので、次回も引き続き議論していきたいと思う。
- ものの操作と洗い出しに関するpdfはこちら→ものと操作と洗い出し.pdf
5/11
進捗(成果)
-
ものと操作の洗い出し終了
- 実際の画面のイラストを描いたり、ものや操作についても書きだすことができたと思う。
- ものはあらかた書きだすことができていたが、それぞれのものに対する操作が抜けていたので書き足した。
- 実際の画面のイラストなどを描いて図で議論するというのは重要だと感じた。意外と意思統一するのに時間がかかった気がする。
- ものと操作に関する資料を作成した。pdfはこちら→ものと操作と洗い出し.pdf
- GitLabの勉強
- 意外と仕様を理解するまで時間がかかった。実際にいじってみるのも大事だと実感した。授業のサイト以外に参考にさせていただいたサイトはこちら→サルでもわかるGit入門
- 制作に使えそうな画像素材の収集
- 割と使えそうな画像が大量に見つかったので満足
5/18
進捗(成果)
-
大部分のモジュール分け完了
- モジュール分けの提案書を作成し、班員に提案した。細かいところに修正を加え、最終的に大部分のモジュール分けが完了した。
- モジュール分けに関する提案書はこちら→モジュール分け提案書.pdf
- 会議する上で直接書き込める電子媒体(iPad,surfaceなど)があると便利だなぁ…と思った
- GitLabの勉強終了
- 大体の使い方等わかったので終了
5/25
進捗(成果)
-
モジュール分けが終了
- モジュール分けに関して班員たちと再び話し合い、最終的な決定を行った。また、それに関する資料を作成した。
- モジュール分け最終版に関する資料はこちら→モジュール分け(最終版)
- 中間発表に向けての各モジュールの担当決定
- 自分はmainを作ることになった。ここが書けないと動かないのでしっかり勉強して臨みたい。
- 班wiki(共用部)の作成
- 新たに「ものと操作」「モジュール分け」のページを作成した。
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から勉強した。
- クラスやオブジェクトの理解に時間がかかったがなんとか理解することができたと思う。
6/8
進捗(成果)
-
自分の担当モジュールのプロトタイプ終了
- とりあえず中間発表へ向けて自分がやるべきプログラミングは終えた。ほかの班員たちのサポートもしつつ、中間発表後に実装予定のセーブ機能についても勉強していきたい。
- ソースコードはこちら→flag_event.js(GitLab)(リンク切れ)
- 素材収集パート2
- 今後使えそうな画像やBGMがあるサイトを探し、班員たちに紹介した。忘れなければそのうちサイトへのリンクを貼ろうと思う。
- 名前空間やオブジェクト、enchant.js全般についての理解を深めた。
6/15
進捗(成果)
-
中間発表
- 中間発表を行った。プロトタイプの統合ができていたことが非常に大きかったと感じる。プロトタイプの統合は盛内君が中心になって行ってくれたおかげで非常にスムーズに進められたと思う。
- 自分は中間発表のための班wikiのページ作成や、中間発表の内容を考えた。中間発表の内容はもう少し色々工夫できたのではないだろうかと思っている。最終発表ではもう少し時間をかけてプレゼン内容を考えて、中間発表よりも良い発表ができればと思う。班wikiのページも急ごしらえなところが多かったので次の発表では改善したい。具体的には各モジュール担当1人につき1つぐらいは見せ場を作ってあげられるような構成にできればと考えている。
- 自分が担当したフラグ管理モジュールは現在はアイテムのフラグ(所持数など)とイベントのフラグの管理が別になっており、どちらのプログラムも中間発表時点でほぼ完成となっているので、中間発表後はこれらのプログラムを統合し、1つの管理モジュールにしていきたい。
6/22
進捗(結果)
-
中間発表反省会
- 中間発表をして先生やTAの方々がコメントしてくださったことに班員たち全員で目を通し、意見を交換した。特に主人公モジュールにおける画像切り替えの速さ調整や、当たり判定のアドバイスに関しては非常に参考になったと思う。また、言及されていた「目新しさ」については中々アイディアがまとまらなかったため今後も引き続き考えていきたい。
- フラグ管理モジュールの統合
- 6/15のところにも書いた管理モジュールの統合を行った。これでアイテムの管理とイベントの管理を一括で行い、かつセーブやロード、セーブデータの初期化もできるようになった。これで管理モジュールについてはほぼ完成になると思う。
- ライツアウト(パズル)の実装
- 新しく担当になったイベントモジュールにおいて、ライツアウトというパズルの一種を実装した。クラス化するのに時間がかかってしまったがなんとか完成させることができたので、クラスを呼び出すだけで好きなところにパズルを解くイベントを配置することができるようになった。問題生成もブラウザページを更新するたびに行われるため、毎回異なる問題で遊ぶことができる。またライツアウトには解くことができない問題もあるらしく、ランダムに問題生成をする際に解けない問題が出題されないようにプログラムしたため多分必ず解けるような仕様になっているはず…
6/29
7/6
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