ブログ 〜技術と思考の図書館〜
未経験&入りたての長期インターンでWebゲームアプリの開発
2021/04/03 22:03:15
年始リリースのアプリとは...
2020年9月からWeb系の企業で長期インターンとして採用していただき、初出社から数週間にも満たずまだ入社後の課題を必死にこなしている中、社長から年始にリリースするアプリの開発チームに参加してみないかとお誘いをいただきました。そのアプリは、毎年新年の1月1日に年賀状での新年のご挨拶の代わりとしてアプリを作ってご挨拶するという、会社の恒例行事です。
嬉しさと不安と緊張と...
多くの実務経験をしたいと思ってインターンを探していたので、このお誘いをいただいた時は純粋にとても嬉しかったです。むしろ何もWebアプリを作成した経験のない、ましてやphpやjavascriptなどのWeb系言語にも触れたことのない自分にはありがたすぎるお話でした。また、そのアプリのチームは、エンジニアが自分1人、デザイナーインターンの方が1人、マーケティングインターンの方が1人の3人と、エンジニア社員の方1人がプロジェクトマネージャーとしていらっしゃいました。ほぼ同じ時期に入社したインターンの方がチームにいらっしゃったので、お話をいただいた時にはあまり不安も感じなかったのをよく覚えています。
(まだ実務経験をしたことがなく、ものづくりの大変さも知らないから嬉しいと感じたのかもしれません...ものを作るって本当に大変で、この当時の自分はどれだけ能天気だったかと今となっては思っています...もっと不安を感じろよって...)
社内の温かい雰囲気のおかげで、入社後たくさんの社員、アルバイト、インターンの皆さんとお話をする機会があり、とても仲良くさせていただいていたのですが、その中で年始のアプリの話をすると、「あーもうその時期か...毎年大変だよ!」と皆さん口をそろえて言うのです。どうやら毎年、年末にギリギリまで作業をして1月1日にリリースをするのだそう...特にアイデア出しや企画の部分が特に大変らしい...ここで少し不安と緊張が出てきました。
地獄のアイデア出し・企画決め
お客様の要望をいただきシステムを作成する案件などとは違い、自分たちで何をアプリとして出すかのアイデア出しから、企画、設計、開発など、すべてを自分たちで行います。チームができてから、まずアイデア出し、企画決めを行ったのですが、噂通りアイデア出しが一番時間がかかり、1番きつかったです。2021年の干支が牛であるので、「牛に関するもの」、そして「ランキング」があり「やりこみ要素」があるという条件以外は何も指定がなかったのですが、その指定がないことがアイデア出しをきつくしていました。無限の選択肢がある中で1番ベストなものを見つけるという、今まで経験したことのない作業でした。チームのみんなで右往左往しながら、いろいろなことに気づかされながら、結局1か月半~2か月くらいの時間をかけて企画を決めました。
初のコーディング作業
アイデア出しや企画決めにとても時間をとられたので、開発を本格的に始められたのは12月の第2週くらいからでした。まずはプロトを作成しました。javascriptでWebゲームをコーディングしたことは全くなかったので、ネットで調べまくることから始めました。プロジェクトマネージャーの方に、「まず、javascriptのゲームフレームワークがあると思うからそれを探してみて、使った方が楽だよ」と言われましたが、フレームワークを調べてチュートリアルを見てみても、さっぱりわかりませんでした。というのも、javascriptが全く分からない状況でフレームワークのチュートリアルを見ても意味不明だったのです。こうなったら期限も近いのでjavascriptから必死に勉強していくしかない...と思い、まずjavascriptの勉強をしました。特に、ボタン要素を取得してメソッドを使用するなど、javascript特有の処理などを徹底的に数日間勉強して、今までpython脳だった自分の頭をjavascript脳にしました。また、YouTubeで以下の動画を見ました。
この動画ではフレームワークを使わず、canvasを使用して素のjavascriptでゲームを作成しています。この動画を2、3回見て、canvasを使用したjavascriptゲームの開発ができそうなビジョンが見えました。もちろんフレームワークを使うとより簡単だと思いますが、完成のビジョンが見えたので、プロトはcanvasに描画することで作成しました。
順調にプロトも1週間弱で完成し、いよいよ本番のコーディングに取り組みました。プロトを作ったおかげでだいぶ楽にアニメーションなどを実装することができるようになりましたが、とにかくコード量が多い...完成したプログラムは3000行以上にもなりました。
本当に知らないことばかりだったのでたくさん質問をしたのですが、社内の方々が丁寧にご説明してくださり、本当にたくさん助けていただき、何とか完成しました。コーディングの難しさ、フレームワークのありがたみなどを知った反面、canvasのみで1つの2Dゲームを作れたことは勉強にも自信にもなりましたし、javascriptの2Dフレームワークも作ろうと思えば作れるのではないかと、半分過信ですが思いました。
無事完成し、いざリリース
完成したときの達成感はすごかったです。特にみんなで作り上げたぞって感じの気分を味わうのは初めてでした。リリース後、多くの方がゲームで遊んでくれていて、作ったもので人が喜んでくれたことの嬉しさも感じました。
とてもいい経験、相当な自信に
このアプリの開発に大きく携わらせていただいて、Webアプリ開発、ましてやphpやjavascriptを全く知らない状態でアプリの開発に挑戦したおかげで、「全くやったことのないことに挑戦することへの恐怖」というものをほとんど感じなくなったかもしれません。この経験があったからこそ、今インターンとして微力ではありますが会社のお仕事を手伝わせていただけていますし、このようないい経験をまとめていきたいなと思い、このポートフォリオサイトを作るきっかけにもなりました。
今の自分にはまだまだ足りないことだらけなのも日に日に痛感しているところなので、これから新しいことに挑戦する機会をより増やしていけたらなと思います。
2021/10/28 13:49:20 更新