((outline)) !!!進捗チェック !!第2回以前 ~2021/4/30 :班wiki全般 ::いい班を参考にしましたね。([19年度1班|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2019/?p=19%3A%3Agr01]) ::ゲーム関係は[19年度1班|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2019/?p=19%3A%3Agr01]が、データ入力関係は[20年度10班|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2020/?p=20%3A%3Agr10]あたりが参考になりそうです。 ::質の高い班wikiを書いて成績アップ&後輩を助けてあげてください! :簡易企画書 ::コンセプトだけでなく対象者もしっかり定めているのが非常に高印象です。 ::これからどんどんアイディアを出していき、機能やUIを定めていきましょう。 :活動報告(班wiki) ::とても見やすいし詳細ページのリンクがついて使いやすいです。 ::班のトップページから第○回のタグに飛べるのも良いですね。 ::チームでのものづくりは作業工程管理が非常に重要になってきます。 ::現在の活動記録を残すことで「何をいつまで完成させるか」の予定が立てやすくなるのでしっかり書くようにしましょう。 ::班長を筆頭に班員全員が時間意識を持って余裕のある班活動を心掛けてください! :活動記録(個人) ::個人の詳しい活動や班の活動とは別に個人でやったこと(勉強したこと)を記してください。 ::備忘録や手記(日記・ブログ)のように使っても大丈夫です。 ::折角なのでたくさん書いて成績アップを目指しましょう! !!第3回 2021/4/30 :企画書 ::前回の簡易企画書とは別に企画書を作ったようですね。 ::ユーザー視点からの詳しい仕様がイラストつきで書いてあるため、ものと操作の洗い出しが容易になると思います。(UIも凝っていていいですね。) ::また、チームのみんなで完成のイメージを共有することで今後の班活動が円滑になる効果もありそうです。後輩の参考にさせたいレベル。 :ものと操作の洗い出し ::先も述べましたが、今回作った企画書のおかげでよく洗い出せていると思います。 ::来週は細かい部分をしっかり固めましょう。(ものや操作に抜けがないか、「トップ画面」「top画面」「ホーム画面」など似た単語は使い分けられているか、など) ::来週の後半にはモジュール分けに入れそうな勢いでTAは感心しています。 :活動記録(個人) ::成果物の出来映えよりも個人の成長度合いを評価する授業なので、いっぱい記入した方がお得です。 ::やったこと、学んだこと、失敗したこと、成長したこと、考えたこと、なんでもOKです。 !!第4回 2021/5/14 :企画書 ::更新を確認しました。 ::イラストと脚注を上手く使って、明確にUIの機能部分を設定できています。 ::UIのデザインもユーザーへの思いやりが伝わってきます。(異なる画面でもサイドバーの位置と形が同じなど) :ものと操作の洗い出し ::前回よりも更に良くなったと思います。 ::目に見えるものから概念まで、ほぼ全ての「もの」を羅列できている印象を受けました。 :モジュール分け ::モジュール分けの基本は、プログラム全体を'''「依存関係が小さい」''''''「インターフェースが単純」'''な部品に分けることです。 ::「依存関係が小さい」という観点から言うと、ゲーム画面ごとに分けているのは一つの正解だと思います。関係を持つモジュールが少なく済むでしょう。モジュール関連図の節にも何やら至言が書いてありますね。画面遷移図も上手です(それぞれのモジュール担当の班員は内容が合っているか確認してください)。 ::また、「インターフェースが単純」だと他のモジュールが使いやすくなります。その結果、結合・統合が容易になります。 ::いろいろ書きましたが、モジュール分けは本当に難しい作業です。完璧にできる人なんていないし、絶対な答えもありません。そもそもモジュール分けの目的は「多人数開発を可能にする→時間短縮」「機能ごとに分割する→設計が明確化・仕様変更が容易」にすることです。 つまり、少しくらいいい加減なモジュール分けでも'''作品は完成'''します!初めての作業に怯えずに「グループ開発が楽になればいいな~」くらいの気持ちでやってみましょう! :リモートについて ::大学の警戒レベルが上がり、この授業もリモートでの実施になりました。(現段階では5,6,7回がリモートで実施。それ以降は不明。) ::もともと第7回はリモートの予定でしたが急な決定で困ることもあるかと思います。もしも相談や質問があればなんでも言ってください。(>>{Yamaguchi}{ここ}のメアドに連絡、またはZOOMで呼んでください。) !!第5回 2021/5/21(遠隔) :モジュール分け ::モジュール化の初日とは思えないほど進んでいますし、方針もとても良い感じです!もしこの調子なら企画書通りのすごい作品が完成するのでは?と期待してしまいます。 ::次週はモジュールの中から実装できそうな機能を選び実際にプログラミングしていきましょう。 :リモート作業 ::急なリモート実施にも関わらず、問題なく活動できたようで感心しました。 !!第6回 2021/5/28 & 第7回 2021/6/4(遠隔) :モジュール分け ::機能をモジュールごとに分けたことでいよいよプロトタイプの作成に入れますね。 :プロトタイプ作成 ::初めのうちは覚えることが多くて大変だと思います(プログラミング言語はもちろんライブラリやデバッガなど盛りだくさん)。覚えたことはグループで共有したり確認し合ったりして皆で力をつけていってください! ::ある程度仕様を覚えてきたら一度enchant.jsを導入するか否かを話し合うといいかもしれません。授業では推奨していましたが、enchant.jsはゲーム製作用のライブラリなので作品によっては導入しない方が開発が容易になる場合もあります。 :画面遷移について ::今回話した画面遷移について補足です。ここから先は余裕のある人が読んでください。 ::enchant.jsを導入する大きなメリットは画面(Scene)がクラスとして定義されていることです。あらかじめ便利な関数やプロパティが備わっているため、画面遷移が容易にコーディングできます。 ::enchant.jsを導入する場合は引き続き[19年度1班|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2019/?p=19%3A%3Agr01]を参考にしていくといいでしょう。リポジトリに作品がおいてあるのでコードを読めば参考になるかもしれません(実行はローカルだとできない)。[20年度3班|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2020/?p=20%3A%3Agr03]なんかは画面でモジュールを分けつつシンプルで分かりやすいです。[リポジトリ|https://gitlab.cis.iwate-u.ac.jp/2020_g03/proj]に作品が残っていました。 :: ::enchant.jsを導入しなくても画面遷移はできます。以下に例を示します。 ::「DOMで要素タグの表示・非表示を切り替えることで画面が遷移するように見せかける」:[20年度1班|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2020/?p=20%3A%3Agr01]がとてもいいモジュール分けをしています。[特にこのモジュール|https://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2020/?p=20%3A%3Agr01%3A%3A%E6%99%82%E9%96%93%E5%89%B2%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB]が結構いい感じです。リポジトリに完成品があります。(実はenchant.jsとやっていることはほぼ同じ。ただし画面遷移は自分らで関数を作る必要がある。) ::「ページを遷移する」:ハイパーリンクでhtmlファイルごと変えてしまうというシンプルな方法です。同じURLでクエリパラメータのみを変えて遷移するという手もあります。 ::もちろん他にも沢山あります。皆さんが実装したいアイディアを引っ張り出して採用してください!中間発表以降の再モジュール化までに決めておくといいと思います! !!第8回 2021/6/11 :プロトタイプ作成 ::ソフトウェアを開発するためには覚えることがいっぱいあります!実際にプロトタイプを作りながら様々な知識を身につけましょう。覚えたことは共有するとチームの開発力がアップします。 ::かなりエネルギーが要る作業ですが力を合わせて頑張ってください! :中間発表準備 ::皆さんの作品はコンセプトがとても面白いので、その良さをしっかり伝えられたらいいですね。 ::それと、先生やTAから現時点の作品に対してのコメントを貰えるらしいです。 ::興味を持ってもらえるような発表をして、たくさんのコメントを貰いましょう! !!第9回 2021/6/18(中間発表) :中間発表 ::中間発表お疲れ様でした! ::とってもよかったです。特にコンセプトが刺さりました。自分も飽き性なので何かを続けるのに苦労した経験が多々あります。そんなとき、続ける理由を増やすことは理に適ったアイディアだと思います。キャラクターがいることで「楽しむ」ことはもちろん、一人では得ることのできない安心感と責任感が生まれ、長く続けられそうです。そのためにも魅力的なキャラクターを期待したいですね!改めて本当にいいコンセプトでした。(閑話休題) ::各モジュール担当の皆さんも本当にお疲れさまでした。ちゃんと動く機能を実装できたこと、そしてプログラムにはいろいろ調べて努力した跡が見られて感心しました。 ::この調子でチーム一丸になって頑張りましょう! :今後の流れ ::これまでの経験を活かして、統合を見据えた次のステップに移りましょう。 ::まずは「1.モジュール間にものや機能の抜け・重複がないか」を確認後、「2.各モジュールの関連」「3.関連するモジュール間のインターフェース」を決定するといいと思います。単体テストや結合テストが明確に行えるようになって開発が楽になるだけでなく、結合のデバッグも楽なります。 ::※「2.各モジュール間の関連」は既に作ってある(←素晴らしいですね)ので随時ブラッシュアップをしてください。 :先生や他のTAからのアドバイス ::好意的な感想がほとんどでした。コンセプトを褒めているものもあれば、モジュール分けの関連や全体像を把握できていることを感心しているものもありました。 ::残念ながら具体的なアドバイスはありませんでしたが、ユーザー目線の意見も貴重です!時間に余裕があれば読んでみてください。(FrontPageからTAの個人ページの名前をクリックすれば読めます。) !!第10回 2021/6/25、第11回 2021/7/2 :進捗確認 ::班wikiとgitのプログラムを見て確認しました。 ::新しい技術(今回で言うとlocalStrage)の導入の際に、検証や仕様の確認をしっかり行っているのを見て感心しました。 ::第10回、11回とモジュール設計の課題が出されていましたが、導入する技術の仕様をひとつひとつ確認してからでも遅くはありません。 ::焦らずに丁寧にがんばりましょう!(最終発表まであと1ヶ月ですが、6人いるので6ヶ月もあります。) !!第12回 2021/7/9、第13回 2021/7/16 :進捗確認 ::過去にこの授業を履修していたときのことを想起すると、発表の3~4週間前であるこの時期は一番精神的にくる期間だったなと思います。一人で技術を調べても理解できなかったり、調べたけど使いこなせそうで導入を諦めたり、時間を徒労してばかりで完成図との溝が中々埋まらずにモチベーションが保てなかった記憶があります。((br)) たしかに、この授業では「自分で」調べることを推奨していますが、間違っても「独りで」ではありません。すなわち、調べ先は本やネットだけではないということです。将来フリーランスでもない限りきっと近くに助けてくれる人がいる環境で仕事をするでしょう。今悩んでいることは、案外隣の席の人が既に解決済みの問題だったりするかもしれません。仲間と知識を共有しあって、ついでにモチベーションも維持し合って開発を進めましょう!もちろん同じ班の仲間だけでなく、他の班の友達や先生の隙を見て質問してみるのもいいかもしれません。もしくは、暇してるTA達を時給分働かせるとか。 :データを保存 ::ブラウザのローカルストレージに保存する場合に、参考になりそうなサイトを記載します。制作物との親和性や学習コストなどを加味してよりよい方を導入してみてください。 :localStrage ::localStrageのプロパティとメソッド:[MDN-(local)Strage|https://developer.mozilla.org/ja/docs/Web/API/Storage] ::localStrageの基本的な使い方:[有志のブログ|https://1-notes.com/javascript-localstorage/] :IndexedDB ::IndexedDBの仕様(流し読みでOK):[MDN-IndexedDB|https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API] ::Dexie.jsを利用したIndexedDBの基本的な使い方:[有志のブログ|https://blog.katsubemakito.net/html5/indexeddb1](Dexie.jsとはIndexedDBを使いやすくするラッパー) !!第14回 2021/7/30(最終発表) :最終発表 ::最終発表お疲れさまでした!そして約半年間の制作お疲れさまでした!! ::UIやデザインがとても良かったです!アプリ全体をみても時間をかけるほどどんどん良くなっていって、あと少し時間があれば企画書通りのアプリが作れたかもしれませんね。それでも中間発表に比べて最終発表で出来るようになったことが一つでもあれば十分立派です。きっと先生もその過程や努力を評価してくれると思います! ::改めて約半年間お疲れさまでした。とても良いアプリ、そしてとっっても良いチームでした。 ::