2015年のスマホゲーム開発者に求められるスキル

            <h1>この記事は何か?</h1>

この記事はスマホゲーム開発をしているプログラマーのぼくが、スマホゲームの変遷と求められてきたスキルを振り返り、2015年の今現在求められるスキルを考えます。 あくまでぼくの周りから感じたものなので、いけてるディベロッパーにいる人はもっと進んでいるのではないかと思います。

ちょっと長いので、結論だけを知りたい場合は下部のまとめだけご覧ください。

ぼくは誰か?

ぼくはゲーム開発会社でスマホゲームを開発しているプログラマーです。 mobageGREEのプラットフォームで、各社が自由にWEBブラウザゲームを公開できるようになった時からゲーム開発をしてきました。

WEB業界出身な人間で、スーパーなプログラマーではないことに注意してください。

WEBブラウザゲーム前期

DeNA怪盗ロワイヤル」「コナミドラゴンコレクション」「Cygamesの進撃のバハムート」などのゲームが流行っていた時期です。

WEBブラウザゲーム開発者に求められたスキルは以下のようだったと思います。

ロール スキル
プログラマー PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 VCS
デザイナー HTML CSS
UI イラスト
Flasher Flash
プランナー
全員 熱意 根性
チームマネジメント(主にリーダー) 教育

当時のWEBブラウザゲーム開発では、一般的なWEB技術を応用することで開発ができ、比較的小規模で簡単なものでした。 Flasherの需要も高かったです。

WEBブラウザゲーム後期

「アソビズムのドラゴンリーグ」「CROOZのアヴァロンの騎士」などの『カードゲーム』ではないゲームが人気になり、リッチな表現、レイドシステムやギルドシステムなど複雑な処理、オリジナリティが求められるようになりました。

利用者数もうなぎのぼりに増加し、大量データを高速に扱うための方法、NoSQLの活用、利用者の行動を分析してゲーム開発に活かすデータマイニングがトレンドでした。 また、肥大化していく開発を効率的に進めるためにアジャイル開発を取り入れたり、WEBブラウザゲーム開発者全員がVCSを扱えるようにするディベロッパーも少なくなかったと思います。

そして、「サーバーサイドエンジニア」と「フロントエンドエンジニア」という風にプログラマーが分類分けされ、より専門的なスキルを要する傾向がでてきます。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理
フロントエンドエンジニア JavaScriptによるクライアントプログラミング UX
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
Flasher Flash
プランナー データマイニングを活かした企画 オリジナルな発想力
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS

ぼくは、プログラマー個人がサーバーサイドとフロントエンドの両方をキャッチアップできる範囲だったと考えています。 また、ディベロッパーが高い給料で人材を確保しまくっていたのはこの頃です。

パズドラの登場

WEBブラウザゲームはどんどんスマホメインに移行していきます。 当時のディベロッパーは、iOSAndroidに精通していなくても開発ができるWEBViewベースの「ガワネイティブ」で勝負をしていました。

そんな中、ついにパズドラが登場します。 iPhoneを生み出したAppleの功績は大きいですが、パズドラを生み出した「ガンホー」の功績もバカには出来ません。

パズドラのぶっちぎりの勝利に魅せられたディベロッパーは、嫌でもネイティブ開発へのシフトが必要になりましたが問題が1つありました。

ネイティブ開発では、今までのWEBブラウザゲームのスキルに加えて、iOSAndroidの開発スキルが必要です。 それは技術だけではなく、スマートフォンに適したUI/UX、iOSApple)とAndroidGoogle)のルールも含まれます。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理 API
フロントエンドエンジニア JavaScriptによるクライアントプログラミング UX
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
Flasher Flash
プランナー データマイニングを活かした企画 オリジナルな発想力
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS
iOS   Android   

この時点でプログラマー個人がサーバーサイドとフロントエンドの両方をキャッチアップできる限界を超えたと、ぼくは考えています。

ゲームエンジン革命

[peg-image src="http://lh3.googleusercontent.com/-Jf_EwKbWfDg/VfKpbfL3c9I/AAAAAAAAC5g/m84RZGG5pl8/s144-o/unity-logo.png" href="https://picasaweb.google.com/101465714064559237741/iJepED#6193198727280686034" caption="" type="image" alt="unity-logo.png" image_size="676x246" ] Unityのロゴ使用に関して

iOSAndroidは分類では同じスマートフォンですが、開発に関しては別物です。 同じゲームを2つ開発するという認識で良いでしょう。 単純に開発期間や工数、コストは跳ね上がる一方、ネイティブ開発にができる人材は滅多にいませんでした。

そんな中、「はやい(開発サイクル)、やすい(低コスト)、うまい(儲かる/面白い)」が重要視されていた(と、ぼくは思ってる)それまでの開発スタイルを維持したいディベロッパーに朗報が舞い込みます。

iOSAndroidを一度に、しかも簡単に開発できる『Unity』っていうのがあるらしい」

当時のUnityは海外では着実に広まっていましたが、日本では実績も少なく、ディベロッパーは本当に使えるのかを検証をはじめていました。

市場がUnityに気付く少し前からUnityの可能性にいち早く気付き、Unityでネイティブ開発をしていたのが「コロプラ」です。 当時、ぼくもUnityを勉強したくて勉強会に参加していましたが、結構な確率でコロプラの馬場社長が登壇していた記憶があります。 ※ぼくはコロプラの回し者ではありませんが、コロプラはこの後重要になるのであえて触れています。

3Dが得意なUnityと並んで、2Dが得意なcocos2dゲームエンジンのスタンダードとして広まっていき、スマホゲーム開発者はiOSAndroidの開発スキルをそこそこに、ゲームエンジンを扱うスキルが求められるようになります。 フロントエンドエンジニアはもちろん、デザイナーがゲームエンジンを扱いUIやアニメーションを構築し、プランナーがゲームエンジンでゲームバランス(難易度)を調整することが求められます。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理 API
フロントエンドエンジニア JavaScriptによるクライアントプログラミング UX
ゲームエンジン(Unityやcocos2d)
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
ゲームエンジン(Unityやcocos2d)
Flasher Flash
プランナー データマイニングを活かした企画 オリジナルな発想力
ゲームエンジン(Unityやcocos2d)
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS
iOS   Android   

LINEゲームとモンストの登場

パズドラの登場以降、スマホゲームのジャンルは大きく2つに分かれます。

  1. パズドラのパズル部分を切り取り複雑さをなくしたスマホゲーム。
  2. パズドラのパズル部分を別のカジュアルゲームに変えたスマホゲーム。

パズドラのパズル部分を切り取り複雑さをなくしたスマホゲーム

このジャンルを切り開いたのがLINEゲームの「LINE POP」です。 LINE POPの成功以降、LINEゲームの開発が盛んになり「ポコパン」や「ディズニーツムツム」などの人気ゲームが生まれています。 また、キャンディークラッシュもこのジャンルに属します。

パズドラのパズル部分を別のカジュアルゲームに変えたスマホゲーム

「アソビズムのドラゴンポーカー」「コロプラ黒猫のウィズ」といったヒット作が生まれますが、このジャンルで革命を起こしたのが「mixiモンスターストライク(モンスト)」です。 モンストは、開発しているmixiの経営を救い、ストアランキング難攻不落のパズドラに勝利し、開発関係者のボーナスがとんでもないことになり(噂)、とにかく業界をざわざわさせました。

この頃になると、WEBブラウザゲームで活躍していたFlash、フロントエンドエンジニアのJavaScriptが必要なくなってきます。 HTMLやCSSも必要性は薄れていきますが、ゲーム内の一部だけで利用するなどで細々の生き残っています。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理 API
フロントエンドエンジニア UX ゲームエンジン(Unityやcocos2d)
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
ゲームエンジン(Unityやcocos2d)
プランナー データマイニングを活かした企画 オリジナルな発想力
ゲームエンジン(Unityやcocos2d)
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS
iOS   Android   

ゲームらしいスマホゲーム

モンストの革命以降、スマホゲームのジャンルはどんどん広がります。

コンシューマーゲーム大手のスクウェアエニックスセガバンダイナムコゲームスが、スマホゲームでも地位を確立していきます。 スクウェアエニックスの「スクールガールストライカーズ」「ドラゴンクエストモンスターズライト」「ファイナルファンタジーレコードキーパーセガの「ぷよぷよクエスト」「チェインクロニクルバンダイナムコゲームスの「ONEPIECEトレジャークルーズ」「ジョジョの奇妙な冒険スターダストシューターズ

ブシロード(KLab)のラブライブ」「DonutsのTokyo 7th シスターズ」に代表されるリズムゲーム音ゲー)も人気があります。

NIANTICIngress」は位置情報を使い、リアルワールドとスマホゲームを融合した斬新さで人気を博しました。

そんな中、「コロプラ白猫プロジェクト」が登場します。 白猫プロジェクトは従来のキャラクター育成システムはそのままに、バリバリのアクションゲームを中心に据えてきました。 プレイ回数を制限するスタミナの概念もなくしてしまい、それまで当たり前だったスマホゲームのルールを良い意味で破壊したゲームです。

白猫プロジェクトの成功は「ゲームらしいスマホゲーム」はユーザーに受け入れられる、むしろそういうスマホゲームが求められているのではないか、ということを証明したと思います。

また、モンスト、白猫プロジェクトの成功の鍵は「リアルタイムマルチプレイ対応」だと思っています。 リアルタイムマルチプレイは、インターネットで日本中(世界中)の人と一緒にスマホゲームをプレイすることができます。

「リアルタイムマルチプレイ対応のゲームらしいスマホゲーム」を開発するために、ゲームアルゴリズムや物理計算、3D技術などの従来のコンシューマゲーム開発に近いスキル、クライアントとサーバーが双方向通信するためのソケットプログラミングのスキルが必要になります。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理 API
ソケットプログラミング
フロントエンドエンジニア UX ゲームエンジン(Unityやcocos2d)
ゲームアルゴリズム 物理計算
3D ソケットプログラミング
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
ゲームエンジン(Unityやcocos2d) 3D
プランナー データマイニングを活かした企画 オリジナルな発想力
ゲームエンジン(Unityやcocos2d)
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS
iOS   Android   

2015年の今現在

スクウェアエニックスメビウスファイナルファンタジー」「セガモンスターギア」や「バンダイナムコゲームスアイドルマスターシンデレラガールズスターライトステージ」など、コンシューマー開発のスキルや、開発ができる開発会社とのコネクション、人気IPをもともと持っている大手ゲーム会社が強いなというのが最近の印象です。

ぼくが最近ダウンロードしてプレイしている「スクウェアエニックスキングダムハーツアンチェインドキー」もかなりの人気です。 リアルタイムマルチプレイはまだありませんが、従来のキングダムハーツのニュアンスをしっかり残し、スマホ向けに上手く最適化されていると感心します。

スマホゲームには権利表記が示されており、権利表記からどういう技術でつくられているのかをよく考察します。 キングダムハーツアンチェインドキーはcocos2d-xを利用していますが、従来のコンシューマーゲームで利用されていた技術も多く使われているようです。

先日発表があった「株式会社ポケモン×NIANTICPokemon GO」も大きな話題を呼んでいます。

2015年後半から2016年にかけて「リアルタイムマルチプレイ対応のゲームらしいスマホゲーム」「リアルワールドと何かしら融合したスマホゲーム」はもっと増えると予想しています。 ディベロッパーはより淘汰され、より効率的にスマホゲームを開発できるようにスマホゲーム開発者に求めるスキルは肥大化していくのではないかと思います。

プログラマーはプログラミングができる」から「プログラマーはプログラミングに加えて○○○もできる」に。 「デザイナーはデザインができる」から「デザイナーはデザインに加えて○○○もできる」に。 「プランナーは企画ができる」から「プランナーは企画に加えて○○○もできる」に。

○○○はチームマネジメント、教育、企画(プランナー以外)、データマイニング(プランナー)、iOSまたはAndrroidに精通している(クライアントエンジニア)などが入ります。 サーバーサイドエンジニアはフロントエンドも理解し、フロントエンドエンジニアはサーバーサイドも理解できている必要があります。

つまり、メインのスキル以外に何かしら別のスキルがなければスマホゲーム開発者としても淘汰されてしまうのではないかと思います。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理 API
ソケットプログラミング
フロントエンドエンジニア UX ゲームエンジン(Unityやcocos2d)
ゲームアルゴリズム 物理計算
3D ソケットプログラミング
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
ゲームエンジン(Unityやcocos2d) 3D
プランナー データマイニングを活かした企画 オリジナルな発想力
ゲームエンジン(Unityやcocos2d) 他の職種の企画が採用されても怒らない広い心
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS
iOS   Android   
自分の職種以外のスキル

まとめ

スマホゲームの進化に伴い、スマホゲーム開発者に求められるスキルは肥大化しています。

「全部なんとなくできます」はダメで、「これだけはかなりできます」もダメです。 「これはかなりできますが、これもできます」と言えるようにスキルを磨く必要があるとぼくは考えています。

ロール スキル
サーバーサイドエンジニア PHPRubyJavaによるサーバープログラミング データベース(RDB
サーバー構築と運用 データベース(NoSQL)
大規模データ データマイニング
堅牢な排他処理 API
ソケットプログラミング
フロントエンドエンジニア UX ゲームエンジン(Unityやcocos2d)
ゲームアルゴリズム 物理計算
3D ソケットプログラミング
デザイナー HTML CSS
CSSフレームワーク イラスト
UI UX
ゲームエンジン(Unityやcocos2d) 3D
プランナー データマイニングを活かした企画 オリジナルな発想力
ゲームエンジン(Unityやcocos2d) 他の職種の企画が採用されても怒らない広い心
全員 熱意 根性
チームマネジメント(主にリーダー) 教育
アジャイル開発 VCS
iOS   Android   
自分の職種以外のスキル

これからスマホゲーム開発者になりたいキミへ

Unityでゲームをつくって、スキルをあげることをおすすめします。 cocos2d-xやUnreal Engineも人気のゲームエンジンですが、Unityの方がシェア率は高いです。

おすすめ書籍

Unity5 3D/2Dゲーム開発実践入門 作りながら覚えるスマートフォンゲーム開発
Unity5 3D/2Dゲーム開発実践入門 作りながら覚えるスマートフォンゲーム開発
Unity5系を利用してUnityのことを覚えることができます。 この本の良いところは、C#スクリプトを作成するところです。 Unity5系ではC#、UnityScript(JavaScript)でスクリプトを作成しますが、大半のディベロッパーはC#を採用しています。 カラー印刷なところも初心者にはうれしいです。

ただし、内容がぎっしり詰まっているため、超初心者には多くの情報が一度に入ってきてしまい混乱してしまうかもしれません。 もっとシンプルに、まずは要点だけ学びたい人には次の書籍がおすすめです。

Unity5入門 最新開発環境による簡単3D&2Dゲーム制作
Unity5入門 最新開発環境による簡単3D&2Dゲーム制作
この書籍もUnity5系を利用してUnityのことを覚えることができます。 この書籍の良いところは、シンプルなところです。 内容は本当に簡単で入門には最適です。 まずはこの書籍を読んで、次のステップとして先に紹介した書籍を読んでも良いと思います。

ただし、この書籍はUnityScript(JavaScript)でスクリプトを作成します。 C#と考え方は変わらないのですが、プログラマーC#を必ず覚えるようにしましょう。

UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード
UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード
UnityのGUIツールであるuGUIの入門書です。 ぼくはまだ読みきれていないのですが、UnityでのUI作成を学べます。 会社のデザイナーも高く評価をしていました。

ただし、この書籍はUnityの入門書ではなく、ゲームのつくり方を解説する本でもありません。 先に紹介した2冊を読んだ後のステップアップに最適な書籍です。

読んでみたい書籍

ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで
ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで

ゲームプランナーの新しい教科書 基礎からわかるアプリ・ゲームの発想と仕掛け
ゲームプランナーの新しい教科書 基礎からわかるアプリ・ゲームの発想と仕掛け