#はじめに
はじめまして!ジーズアカデミー福岡DEV12期生のtotototoshiと申します。
こちらはジーズアカデミーアドベントカレンダー15日目の記事となっております。よろしければほかの記事もご覧ください。
#ムシキングとは
株式会社セガ様で開発され、2003年~2010年までの間稼働していたアーケードゲームのことです。
コインを入れることでプレイヤーは虫カードかワザカードを入手でき、入手したカードを使って悪の虫軍団と戦っていきます。私は少年時代に夢中になってこのゲームで遊んでいました。
なぜ、今回ムシキングを題材にした記事を執筆しているかというと、私がプログラミングを用いて初めて制作したオリジナルプロダクトだからです。このプロダクトの制作過程で様々な気づき・学びがあったため主にプログラミング初学者の皆様に共有出来たらと思い執筆に至りました。
#なぜムシキングを作ろうと思ったのか
JavaScriptの最初の授業で習ったことは以下の2点でした。
・Math.random()を使ったおみくじアプリ
・Math.random()を使ったじゃんけんアプリ
おみくじアプリではランダムで算出した数字に対応した運勢(0は大吉など)を画面に表示させるといったもので、この時点でなんとなくソシャゲのガチャのようなものを作ろうとしていました。それに加えて、「じゃんけん」な訳です。ガチャとじゃんけんなんてムシキング作れちゃうじゃないか!と制作を決心しました。
#ムシキングが私に教えてくれたこと
私がムシキングのプロダクト制作を通して学んだことは以下の通りです。
・難しい技術を用いていなくても工夫次第で既存作品の再現が可能であること
・好きなものの裏側を知ることの楽しさ
・夢中になれるものを題材にすることの重要性
#既存作品の再現をする際に難しい技術は必要ないということ
皆さんはポケモンやマリオを作ろうと思ったことはありますか?
私はあります。そしてその次に思うことは「無理だろう」でした。特に現代のゲームは凝ったグラフィックや通信機能の進化、多彩なモード設定などにより気軽に作ることはできない代物となっています。
ただ、昔のゲームを想像してみてください。インベーダーや昔ながらのシューティングゲームは意外といけそうな気がしませんか?
昔のゲームほど、淡白な作りの中に多彩なエッセンスを盛り込むことでユーザーを引き込むゲーム作りをしています。
つまりどういうことか、一旦簡単にしてみると良いのです。例として私がムシキングの模倣をする際に諦めた部分を一部記載します。
・グラフィック・アニメーション全般
ムシキングではワザを繰り出す際にそのワザごとのアニメーションが設定されていますが、諦めました。代わりに3種類のGIFを用意して、ランダムで再生される仕組みにしています。
・ユーザーが使用カードを選択する機能
ユーザーが集めたカードを選んで使用できれば楽しいですが、諦めました。代わりに、カードの種類ごとに4枚ずつ計256通りの組み合わせをランダムで選択できるようにしています。
以上のように完璧にはできなくても10%の部分を模倣し再現していくことは、何事においても成長の源泉なのではないかということをムシキングに教えてもらいました。
#夢中になることを題材にすることの重要性
皆さんは何かを始めるときにまず何を考えるでしょうか?私は以下のようなことを考えてしまいます。
・時間や労力などのリソースに見合ったリターンが得られるか
・実際に役に立つのか
特に大学生の頃はこのような考え方が顕著だったと思います。分かりやすい例で言うと、TOEICなどは役に立つから取っておこうと思い何度か受けてみましたが特筆する成果もなく終わってしまいました。
今考えると、興味もなくただ役に立つからという理由でやる気が長続きする訳がないと思います。
今回のプロダクトでは、ゲームの内側がどうなっているか、どういうコードを書けばこのゲームを再現できるかといった興味・好奇心に突き動かされてプロダクトの制作を完了することができました。この制作の間は寝ている時間以外の全ての時間でコードのことを考えていました。
そして自己満足の塊であるムシキングというプロダクトができたのですが、その過程でプログラミングの技術は飛躍的に向上したと考えています。
#まとめ
まだまだ学習開始から2か月しかたっていないひよっこですが、今回学んだことを忘れずこれからも少ない武器をどう工夫して活かすかを考えて学習にあたっていきたいと思います。
拙い文章でしたが最後まで読んでいただきありがとうございました。
明日は私の尊敬する同期の記事となりますので是非そちらもお読みいただけますと幸いです。
最後になりますが、以下Githubのコードサンプルを記載しておきますので、興味のある方は参考ください。