アシアル社内勉強会 第一回

こんにちは。内藤です。
先日の9月14日、アシアル社内勉強会(第一回)を行いました。

これまでにもアシアル社内では様々な勉強会をしてきましたが、今回から始める勉強会は、基本的に外部から講師をお招きして、各自の経験に基づいた幅広いお話をしていただき、社内の文化とはまた違ったノウハウを共有していこうという趣旨で始めてみました。

第一回は、JavaScriptでシューティングゲームの開発をされている高橋雅也さんに来ていただきました。ゲームを実装する方法や課題解決・工夫した点などについてお話いただきました。

f:id:knight_9999:20180920142052p:plain

ゲームは、80年代風の横スクロール型シューティングゲーム・縦スクロール型シューティングゲームです。どちらも画面上に敵キャラクタや弾が大量に表示されるゲームです。すごいっ! デモンストレーションを見せていただいたのですが、非常に快適に動作していました。

これをすべてJavaScriptでキャンバスにリアルタイムレンダリングされているとのことでした。そのため、ゲーム内のアニメーション的な動作も、JavaScriptによるプログラムによって実現されています。既存のライブラリやフレームワークはほとんど利用せず、JavaScriptで最初から用意されているAPIを使ってほぼフルスタックで作られているとのこと。

個人的には、これだけ多くのキャラクタを表示するのであれば、HTMLのDOMを利用した方が簡単なのではないかと思ったのですが、しかし、よく考えるとDOMは選択したりイベントを受け取ったり、あるいはCSSを設定出来たりと高機能なオブジェクトであり、実はシンプルなキャンバスへのレンダリングの方が余計なオーバーヘッドがないだけ軽くて早いのかも。理由はともかく、スペック的には3年くらいまえのiPhoneやiPadであればほぼ処理落ちせずにゲームが出来るとのことでした。正直言って、そのままゲームセンターにあってもまったくおかしくないレベルの完成度です!

また、ゲームのBGMや効果音などは、Web Audio APIを使い、BGMを鳴らしながら効果音を重ねることを実現しているとのことでした。そのほか、大型キャラ(ボスキャラ)を扱うための工夫や、ゲームの素材を用意するための濃い話をしていただきました。

勉強会後は、簡単な懇親会を開き、ゲームやプログラミングに関するよもやま話を聞かせていただきました。

f:id:knight_9999:20180920142656p:plain

電車の中でMacを開いて開発してしまうなど、プログラミングへの熱意、モチベーションの高さを感じます。そして、プログラミングは何より第一に楽しめることが大切ですね。その方がスキルの上達もぐっと早くなるように思いました。

高橋雅也さん、ありがとうございました。