2024 ソフトウェア設計及び演習用の班Wiki
24::gr05::高橋佑輔
個人活動記録
第1回 2023/04/19
- 5班を6人で結成した。
- ゲームの大枠を決めた。
- 所感
- ゲーム内容をある程度まで深ぼることができた。第2回目以降もなるべくスケジュール通り勧めていきたいところ。一応班長のため、円滑なゲームづくりのために統率や情報共有、役割分担などをうまく勧めていきたい。
第2回 2023/04/26
- ゲームのシステムをある程度決め、簡易設計書を企画した。
- モジュールになりうるものを書き出した。
- 所感
- ゲームの流れを想像できるまで行った。どのようにモジュール分けすればよいかまだごちゃごちゃなので、そこを決めて、早いうちに役割分担をしていきたい。また、自分で突っ走っている点もあるため、班員に聞いたりしてゲームのイメージの共有などをしっかり行っていきたい。
第3回 2023/05/01
- ものと操作を挙げられるだけ挙げ、モジュールにし、その関係を図にした。
- 所感
- 正直何をすべきか分かっていなかった部分がある。ものと操作の関係を書き出すのか、細部の設計図を決めるのか・・・まだ、ものと操作についての理解が曖昧なので、作っていく上でもう少し感覚を掴めればと思う。
役割分担をうまくしたいと考えていたが、どこを全体で話してどこを制作グループごとに詰めていくのか、設計の流れが分かっていなかった。班員を待たせてしまったりもした。その日にやるべきことは先に考えておいたほうが良いかも。
第4回 2023/05/10
- 各モジュールをオブジェクトに1段落とし込み、ゲーム部分のステップ記述を書いた(モジュールの仕様書参照)。
- 所感
- JavaScriptで何ができて何ができないか分かっていないため、かなり憶測でステップ記述を書いた部分がある。仕様書は最初から全部詰めるものという認識だったが、今回は初めて触れるプログラミング言語のため、柔軟に修正できるように初めから心構えを持っていたほうが良いのかもしれない。また、情報共有のやり方がまだ確立されていない(いつも声で呼び寄せているだけ)。LINEでいつでも見られるようにしておくなどといった方法自体を共有する必要がある。
- また、役割分担や時間の決め方があまりうまくできなかった。仕事が終わったら自分に話しかけてもらうなどしてなるべく作業時間が変わらないようにする必要がある。自分の仕事だけで視野を狭くせず、周りを見て適切な指示を出せるようにしたい。
第5回 2023/05/17
- モジュール構成を詰めたり、役割分担を行ったりした。
- 所感
- モジュール分けを詰めてみると、実は意外と詰められていなかったと感じた。必要なグローバル変数などがまだあった。担当決めも、例えばすごろくから対戦に移るときのシーン遷移をどちら側が実装するかなど細かいところが見えていなかった。作ってからでないと分からない部分もある、と思って担当決めを急いだが、焦ってしまった気もする。人を頼ることに抵抗があるため、一人で強引に進めるのではなく、細かい設定を決める部分などをちゃんと班員に委ねて、各々がモチベーションを持って進められるのが理想である。
第6回 2023/05/24
- プロトタイプの作成を行った。
- 所感
- プロトタイプ作成に入ってはいるが、未だJavaScriptの定石となる書き方(どのファイルに何を書くかなど、きれいな書き方)も分からず、どうやって書けば良いのかと苦戦中である。分からないことを調べると別の分からないことで説明される事がままある。全体像が見えないまま断片的な知識しか取れない、という部分があるため、本を借りるなどして体系的に理解したい。また、enchant.jsのLavelは文字列を結合出来るかなど、それぞれのクラスの内容や機能を網羅したり深掘ったりしているサイトがあるとありがたい。
常にコンピュータ操作でつきまとう問題だが、gitlabの動作がうまく行かず、TAの方に教えていただいた。プログラムの動く前提となる部分は初心者だと分からず、それが毎回躓く原因なのかもしれない。
第7回 2023/05/31
- プロトタイプの作成を進めた。
- 所感
- 数授業でやっとenchant.jsの大枠が分かってきた。数日前にデバッグ方法を見つけてからやっとなんとか動かせるようになり、少しずつ知識が繋がってきたことで少しだけ自信が出てきた。統合に少し不安が残るが、なんとなく道が開けてきた印象。
- インターネット上のenchant.jsの情報はあまり多くなく、何かをしたいと思ってその方法を見つけるまでに何分も時間がかかるのがネック。一応班Wikiに情報共有を載せているが、分からないことがあったら聞いたり聞いてもらったりするのが速いと感じる。情報共有の内容はいくらか調べていけばなんとかたどり着けるはずだが、それを探すと一苦労。後でnoteなどに書いて共有すれば後の3年生のためになるのではとも思った。
班長として最後の方にそれぞれの進捗を聞いて回ったが、途中途中で悩んでいることもあるはずなので、もう少し頻繁に聞くべきかもしれない。それで集中を妨げてもいけないが・・・
第8回 2023/06/07
- プロトタイプの作成を進め、各シーン同士を結合した。
- 所感
- 結合したときにうまく表示されないという欠陥があったものの、とりあえず解決した。やはりマージは時間がかかることを学んだため、最終発表前は時間に余裕を持っておきたい。中間発表は他の班がどれだけ進んでいるのか気になる。
- GitLabでpush/pullする際またエラーが発生した。ローカルな(自分の)ディレクトリとグローバルな(GitLab上の)リポジトリでファイルの構成に違いがあるとうまく行かないというのは理解しているものの、未だエラーの発生条件はよく分からない。隣に座っている別の班の方も同じように実行できなくなっていた。高確率で直せる方法がリセットしか無く、それなりに時間を取られてしまう。どうにかできないだろうか。加えて、エラー時にもよく出てくるbranch(枝)についての理解が乏しいため、手の空いたときに調べたい。
第9回 2023/06/14
- 中間発表を行った。
- モジュールの作成を進めた。クラスの作成や、班員のコードに関する相談を行った。
- 所感
- とりあえず中間発表は終わった。拙い喋りで申し訳ない。ただ、本番は最終発表である。他の班は荒方作り終えて細部を調整するという段階まで行っているが、当班はそこまで作り終わっていない。あと1ヶ月強のうちにちゃんとしたものを拵えたい。余談だが、enchnt.jsを使っている班が少なかったように思う。何か自分たちのプログラムに役立てられるものは無いかと思っていたが無かった。
- htmlファイルを正常に実行できないバグが生じた。普段はタブの所にページタイトルが表示されるはずだが、そのときはファイルのパス名が書いてあるだけで、ブラウザのコンソールも開けなかった。電源を入れ直したら直ったが、原因はわからない。
- enchant.jsの難しい所に、ステップ実行をうまく使えないというのがある気がする。enchant.jsを使わない場合、自分たちのコードが順番に実行されていくため、どこでミスが起こったか把握しやすい。これがenchant.jsなどのプラグインを用いると、ミスがあった場合、よくわからないところで永遠とenchant.js内のコードがループする。どこがダメなのか特定できないのである。GPTにチェックしてもらう方が早いだろうか。
第10回 2023/06/21
- モジュールの作成を進めた。班員のコードに関する相談を受けた。(あまり自分で解決できかったが…)
- 所感
- 班長としてうまく役割分担をできていない。次に何をすればいいか全体像が見えていないため、的確な指示を出せないでいる。今そしてこれから何をすべきかを整理したい。
- 班員のプログラムが動かなくなる事態に遭った。TAさん協力のもと解決したが、エラーがどの時点で起こるかわからないため怖い。また今回は実際のエラー箇所とエラーメッセージの内容が一致していなかったため、解決するのに時間がかかった。意識していきたいのは、ある程度エラーに目星をつけることである。例えば、いくらエラーを出されたコードを直しても直らないなら、そこに固執せずに別のところを見るべきである。また、今回のエラーはパスが異なるのが原因だったが、このパスのミスや型のミスはあるあるのため、最初からそこに重点をおいて調べたい。さらに、今回は合っていたところと間違えていたところを同時に直してしまい、片方が間違っている状態が続いた。修正した部分の組み合わせも重要なことがわかる。どれとどれを試しているかにも意識を向けるべきだろう。
第11回 2023/06/28
- すごろく画面の作成を進めた。
- マスの制作係と共同で、マスの効果などを設計した。
- 班員のコードに関する相談を受けた。(前回同様あまり解決の役に立たない…)
- 所感
- 文字列型をreturnで別の関数から返すことができなかった。JavaScriptの仕様に関する知識が薄いため、どう変えれば良いのかよく分からず、手当たり次第に思いついたコードを実行して試している。
来週はモジュールの統合を行う予定である。ただ、これまでそれなりにバラバラに作ってあるため、うまく動くかかなり心配である。Playerクラスなどの全体で利用するモジュール群は担当を分けて、早い段階で作って共有すべきだったかもしれない。モジュールの優先順位は大事だなと感じる。
第12回 2023/07/04
- すごろく画面の作成を進めた。主にすごろくのターン処理を変更した。
- "v1.0"というディレクトリにコードや画像等を移し、統合テストを行った。
- 所感
- enchant.jsの仕様に気づいた。ターン制ですごろくをする最中、自作関数で処理した値(変数名value)を表示するという操作を行っている。しかし、enchant.jsは先に先にとコードを読むため、valueが自作関数の中で書き換えられる前に表示してしまう。enchant.jsは「待て」ができないプラグインなのである。ユーザーが何かをして初めて処理が行われるというプログラムの場合、enchant.jsは(物体の移動がしやすいという長所はあるものの)うまく動作してくれないのかもしれない。
- 班員がgit pushをしようとした所、"! [rejected]"という表示が出て、アップデートできなくなった。このエラーメッセージは、自分がgit pullしてからgit pushをするまでの間に、他の人がgit pushで別の更新をすることで起こるとされている。しかし、このメッセージは毎週出ており、うまく行くことの方が少ない。ほとんどの場合git pushの前にgit pullを行うため他人のgit pushが原因のことは少なそう。GitLabの仕様かローカルのコンピュータに何か問題があるような気がする。あるいは"git commit -a"。"git commit -a -m"の使い分けが必要だったり…?他の年度でもよく起こっていそうな問題のため、仕様や対処法を知りたい。
第13回 2023/07/11
- すごろく画面のターンなどを変更した。
- 統合テストを行い、修正を協力して行った。
- 所感
- enchant.jsの仕様でターンが次へ次へと進んでしまう。キャラクターが動き切る前に次の動作へ進み、動かなかった分は次の次のターンで動くのである。これをどうにかしたいのだが、なかなかうまく行かない。
- 統合テストが当初うまく行かず、班員のおかげで解決した。理由は次のシーンに向かうはずが自身のシーンを呼び出すようになっていた(再帰呼び出しのようになっていた)からである。こういった少しのミスでも、探すのは難しい。このようなバグではないエラーに関してはChatGPTを先に使ってみたほうが良さそうだ。また、班員からはconsole.log("text")でエラーが発生しているところを見つけた方が速いと教えてもらった。これまで闇雲に直しがちだったと反省している。
第14回 2023/07/26
- 最終発表を行った。
- README.mdを作成した。(元々作っていた.txtファイルを.md用に修正)
- preloadの部分を修正した。(相対パスで読み込んでいたパスを連想配列にした)
- 所感
- アイテムまでは行かなかった(そもそもどんなアイテムが良いか思いつかなかった)ため運100%のゲームになってしまったが、今日までに作業を終えることが出来た。
かなり形になったのではないだろうか。JavaScriptの経験が無い中で、試行錯誤をして作り上げてくださった班員に感謝である。
- 制作をして感じたのが、一番楽しくないのは最初の何をすればいいかわからない段階だということである。なんとなく理解して、自分なりにコードをいじれるようになったりそれで出力が変わったりすると、モチベーションが上がる。仕上げなどの段階でバグなどが生じるともちろん大変なのだが、ゴールが見えており自分にも自信がついている以上「やりたくない」とはなりにくい(時間に追われるからというのもある)。むしろ色々付け足そうかという気にもなってくる。プログラミングに取り掛かる上で一番の関門は、最初の段階なのかも知れない。
- 班長としては、もう少し全員の進捗確認や軽い面談をするべきだったと思う。自分は自分のやることに囚われすぎて、周りが見えなくなってしまう(自分優先になる)。また、自分の作業と質問の解決といったマルチタスクの状態になると、両方やらなければという焦りが生じてしまうということが班長としての経験を通じて分かった。ただ、後半の方では進捗を確認してうまく行かないところを考えるといった班長らしいことをし始めた。発表までにちゃんと間に合ったため、ちょっとは班長としての振る舞いが身についたかも知れない。
最終更新日:2024/07/26 18:06:23