インベーダーゲームを開発しつつオブジェクト指向言語のお気持ちを知ろうとした話

この記事は、kstm Advent Calendar 14日目です。

qiita.com

始めに

 今回開発したインベーダーゲームは割と頑張ったのですがかなり大きなプロジェクトになってしまい、コードをどう載せるか考えた結果、一つの記事にまとめるのは大変だろう。発表スライドでお茶を濁そう。という結論に至りました。タイトルも無駄に長い上、よく分からないと部員に言われてしまったので、その辺の説明をしていこうと思っています。わりとポエムになりそうですがお付き合いくださいませ。

C#と戯れだす晩夏

 今年度から学部四年生となり、それと同時にとある研究室に配属されました。研究の内容に刺激受けっぱなしの日々なのですが、これとは別に、C#英語教本輪読会への参加がこの研究室所属の学部生に課せられています。担当が順々に回り、担当者は前に立って決められた範囲に関して翻訳、説明をし、必要ならば練習課題も解いていく、という一般的な輪読会の形式でつつがなく過ぎていくのですが、輪読会の締めくくりに、C#を用いてプログラム作品を製作、発表するという激重タスクが待っていました。

 このプログラム作品に求められる条件は「C#を用いたGUIアプリケーションなら何でもよい」という緩めな制約のみなので、実はUnityでパパっと終わらせることも可能です。僕も割とパパっと終わらせるタイプの人間になるつもりだったのですが、少しドジを踏みました。研究室の同輩たちが、「オブジェクト指向わからん云々」と唸っていたので、ちょっとばかし煽ってやろうと思ったのですが、割と食いつきがよく、むしろ率先してガチ勢としての道を歩くことになりました。アオリティヒエラルキー最底辺脱却ならず。同輩たちはやる気も意識もめちゃ高いので見習いたいところでもありますが、その高いモチベーションに引っ張られ、C#と戯れることとなったのは、夏休みも終わろうかというところでした。

課題に見出す裏テーマ

 一段落目からポエムを飛ばしているのですが、秋の暮れあたりから、「普通にやるんじゃ面白くないな」と思うようになりました。正直、C#オブジェクト指向プログラミングが可能な言語ですが、一人でカタカタする分には、手続き型言語に引っ張られたコードを少し入れてもなんとかなると思っています。まあ、しかし折角ガチ勢の集いに登録されたので、とことんガチろうという機運になります。ゆえになかなか大きめで自画自賛ながら見どころばかり、掲載しきれないー、というプロジェクトになるのですが、「妥協せずオブジェクト指向のお気持ちと向き合う」という裏テーマはそれなりに、自己流ながら達成できた気がします。

 また、このころから、なんか変なことがあったら、kstmの面々に聞けば何とかなるかとも思っていました。kstmとは恐ろしい場所で、もちろん尖りに尖りまくった人々の集いなのですが、ちゃんと基礎のある尖り方をしてる先輩方、同輩、後輩だらけです。少なくとも自分の数段先にいる人たちにいつでもアドバイスを受られるだろうという漠然とした後ろ盾は、モチベーションの維持につながりました。

とりあえず発表スライドを見て

 まとまりのない文章を垂れ流しかけているので、ここで発表スライドを掲載します。ただ、発表が終わり次第上げようと思っているので、本日14:30以降にお願いします。

無事発表が終わったので掲載します!

www.slideshare.net

つまり何が言いたいか

 なんというか、老害感MAXなお話をすると、kstmって何をしてもいいサークルなので、こういう教育的な車輪の再発明なお話でも許されるんじゃないかなぁという甘えでした。スライドを読んだ強い人たちがどう思い何を言うのか分かりませんが、きっといい話ができるんじゃないかなぁと思っています。

 

github.com