伸びたり伸びなかったり

ねるねるの雑記

パソコン甲子園2018に参加した話

 

※この記事は ICT Advent Calendar 2018 6日目の記事です.

昨日の担当はきしもん先輩でした。

shi-o.hatenablog.com

今回は11月17日、18日に開催されたパソコン甲子園に参加しました。

とりあえず一年間の軌跡(笑)をだらだらと書いていきます。

 すごい長々と書いてしまったので文章がおかしいところとかがあるかもしれませんが、そこのところは許してください(予防線)

やったこと

「カゾクトコネクト」というアプリをwakimiko,caff,自分(neruneru)の三人で開発しました。

「カゾクトコネクト」はざっくり説明するとスマートスピーカー(Google Home)とスマホ側のアプリを使って音声認識を生かした家族間の伝言、離れた家族への報告、ニュース検索を用いた話題提供をし、家族間のコミュニケーションを活発にするという感じのものです。

 自分は、主にGoogleHomeの内部の動作やサーバーサイドのプログラムやらを担当していました。

3月~7月(アイデア出し)

3月頃に合宿があり、アイデア出しが始まった。この時期にはなんとなくという理由でRubyを勉強していたが、それが後の開発で予想以上に役に立つことになった。

今年のテーマは「元気な社会」で、このテーマは社会という枠組みがとても広いことと、それを元気にするにはどうすればいいかという二つの点が課題で、アイデアが出ても、自分の中で「それが本当に社会を元気にするのか?」という自問自答に当時は苦しめられていた。

イデア出しの終盤頃に差し掛かった頃になると、授業中でも寝る前でも常にアイデアの事が頭の片隅にあり、常に病んだような感じになっていた。:tsurai:

そして一週間前くらいに教授にアイデアの種を貰い、アイデアが生えたときには企画書提出までの時間があと三日で、心が折れそうになりながら徹夜で企画書を仕上げた。本当にこの時はよく三日で仕上げられたなと今は思う。

ちなみにこの時期に正式なチーム名が「チョコブラウニー」で決定した。(当初のチーム名はcaffが好きという理由で「まぐろアボカド」だった)そして同時期にアプリ名の「カゾクトコネクト」も決定した。この名前は自分が考えたもので、ギリギリで思いついたものだったが、後の本番で審査員の人から「わかりやすい」という評価を貰ったので嬉しかった。

企画書を提出した後は、結果発表まで常に敗退の恐怖と戦いながらの生活をしていて、本戦出場が決定すると授業中にもかかわらず全力で喜んでいた。

8月~11月前半(開発)

正直本戦出場が決まってから数日間はすでに燃え尽きていたことと、家がバタバタしていたこともあり、夏休みに入っても全然開発に手を付けておらず、開発が本格的に始まったのは合宿が始まってからだった。

開発が始まってからの最初の壁は、GoogleHomeをいじった経験がある人が周りにおらず、何を使えばいいかもわからなかった事だった。試行錯誤は10月くらいまで続き、その頃にようやく方法を確立させることができた。

この時にサーバーを立てたり、話題機能での話題を取得するためのスクレイピングを行ったりなど、機能の実装はほとんどRubyで行っていた。(ちなみにGoogleHomeに喋らせる部分だけはNode.jsで実装した)やりたい事とRubyの得意分野が噛み合っていたこともあり、開発の時はRubyが大活躍で、なんとなくで初めは触っていた言語が生かせたことがとても嬉しかった。

11月頃に入ると、パワポ、ポスター、パンフレット、ロゴ、アイコン、キャラクターなどの様々な物が完成していないという大問題にブチ当たった。ポスターとパンフレットに関しては本選ギリギリになっても教授からの厳しい添削を何度も受ける羽目になり、ロゴやアイコンやキャラクターが決まったのも結局本選の数日前だった。この頃は徹夜続きで、添削を一つ受けるたびに心が折れそうだった(多分一番病んでる時期)

出発の前日のギリギリにポスターとパンフレットが完成し、急いで寮に帰って爆速で帰省した。ちなみに帰省してる途中に何故か手をケガしており、気が付いたら初めてのハイライトが生えていた。:space_cat:

11月後半(本選)

一日目(大会前日)

 起床→移動→ホテル着→喜多方ラーメン→デスマ

移動時には特にヘマは起こさなかったと思いきや、福島のどこかで下車した後のsuicaタッチを忘れ、無賃乗車未遂をするボケをかましてしまった。この後にも喜多方ラーメンを食べに行くときに財布を一回部屋に忘れ、無銭飲食未遂をしそうになっていた。

喜多方ラーメンはとても美味しかったが、普通サイズを頼んでしまったことを今は後悔している。というかwakimikoとcaffの二人が大盛りサイズを割とあっさり完食したことにビビっていた。

この夜は主に伝言機能の調整やスマホ側との連携でデスマをした。4時くらいに意識を無くして寝落ちした。

二日目(大会一日目)

寝落ちからの起床→会津大学へ移動→開会式→ブース設営→選手交流会→デスマ

この朝は頑張ってコメダ珈琲に行って朝食を取った。やはりシロノワールは美味しい(確信)そして11時頃に会津大学に移動し、開会式を終えた後はブース設営とリハーサルがあった。そして選手交流会の時は外部の高専生や高校生と関わることができた。特に他の高専と関わる機会は今までになかったので、沢山話をすることが出来たのが本当に嬉しくて楽しかった。部屋に戻ると現実に引き戻され、デスマが始まってからは一睡もせずに開発をした。デスマ中に見たグリッドマンはアンチ君がかわいそうだった(どうでもいい)

三日目(大会二日目)

移動→プレセンテーション・デモセッション→表彰式→温泉と夕食→就寝

一睡もせずにギリギリで調整と設定を終わらせ、朝からプレセンテーションとデモセッションが行われた。プレゼンはcaffがかなりいい感じの発表をしていた。すごかった。

そしてデモセッションが始まったが、持ち前の注意力の散漫さと睡眠不足が重なり、本番中はかなり落ち着いていなかった。音声認識のアクシデントが起こったりしたときも機転をうまく利かせられなかったのは反省点だと思っている。システム自体は基本的にうまく動いてくれたのでよかった(後半が怪しかったが)

そして午後にはおまちかねの表彰式があった。結果としてはびーまか先輩とりお先輩のチーム「しろくま」がグランプリを受賞した。自分達は賞をとることはできなかったが、先輩達が大きな賞を取ったことはとても嬉しかった。

大会が終わったあとは素晴らしい温泉に入りコーヒー牛乳を飲み、大盛りのソースカツ丼を食べてお土産を買って帰った後は20時くらいに爆速で寝た。この時の自分は自分が思ってたよりもかなりボロボロだったようで、一週間くらいは寝ても寝てもひたすらに眠かった。自分の体は意外と自分ではわからない。

四日目(大会一日後)

ひたすら移動→解散

特に書くことはない。疲れた。

良かった、うれしかった点

・懸念していた部分である話題機能とアプリ名を誉められた

Rubyを触っていたこと

・忘れ物をしなかった

・開発の経験を得た

・他高専との繋がりを得た

・メンタルが少し強くなった(気がする)

反省点

・賞を取ることができなかった

・役割分担をもっと初めからしっかり決めておくべきだった

・やるべき事は早めにやるべきだという事を知った

・アイデア出しはつまったら地獄だった

・頼れるところはもっと周りを頼るべきだった

・無賃乗車未遂と無銭飲食未遂をしてしまった

・開発に夢中になりチョコモナカジャンボを机の上に一時間放置しドロドロに溶かした

・ネクタイを自分で結べなかった

・加湿器の水の入れ方が何もわからなかった

・ハイライトをびーまか先輩に次いで生やしまくった(6つ生やしてしまった)(多分もっとやらかしてる)

まとめ

まあ色々とありましたがこの一年間の開発はなんやかんやで楽しかったです。嘘です。正確には大会本番が楽しいのであって、やっぱり開発って辛いです。大きな大会に初参加ということもあり、常に心に余裕がなかったのはダメでした。(メンタルよわよわマン)

でも、本番に美味しいものが食べられて、色々な人と交流ができて、経験を沢山積むことができるこの大会は、やっぱり参加して良かったなあと思えました。

今回の経験で「大会」全体の雰囲気はつかむことができたので、来年PCKかプロコンかに参加するときは、今年よりは余裕が持てていると思います。

今年賞を取れなかった雪辱は、ぜひ来年大会に参加して果たしたいので、来年も心が折れない程度に頑張っていきます。

ありがとうございました。

明日の担当は期待の競プロer(予定)のかりんとです。

ka-rin-tou82.hateblo.jp

超蛇足

明日はスマブラSPの発売日なのでみんな買おう(提案)

https://www.amazon.co.jp/dp/B07FDW61HX/

 

やりたいことまとめ

一応ブログを開設し、何か書こうと思ったので、今後自分がやりたいこととか頑張りたいことについてまとめてみました。

C++

なんかよく黒魔術とか言われてるアレ

競技プログラミングや後述するDXライブラリなどで必要になってくるのである程度は触れるようになっておきたい

ICTの春休みの合宿でC++講座を受けたものの色々触りしか理解できてないので実践的に使える範囲がC言語とほとんど変わらないのが今の課題

Ruby

最近割と頑張ってる言語

割と覚えやすくて現時点でもファイルやディレクトリとか簡単に弄れたりいろんなことができて楽しい

ちなみにDXrubyとかいうDirectXを扱ってゲームを作れるやつがあるのでそれも触りたいがRubyのバージョンが新しいと逆に使えないという悲しい点がある

・Unity

一番始めにゲーム作ろうとして触ったやつ

割とお手軽にゲームが作れるがC#がわからなかったり他のことに興味が出てきてしまったので優先順位は低めになってしまった

最近少しだけ3Dモデル動かしてみたいと思ったのでもしかしたらまたすぐ触るかもしれない

・DXライブラリ

これまたDirectXをいい感じに扱えるやつ

弾幕ゲー(東方みたいなの)を作ろうとして一回触った

C++できるマンになれば本格的に触ろうと思っている

 

ざっと思いついたものを書いてみたけど多分他にもあるのでやる気があれば追記するかもしれない