iPhoneアプリ向けのゲームエンジンについて初心者が調べてみた
はじめに
最近iPhone向けゲームアプリを作りたい気持ちが高まってきたので『本でも買ってじっくり勉強しよう』と思い、軽い気持ちで本屋に行きました。
しかし、ゲーム開発の棚を見るとSpriteKitやらcocos2d-xやUnrealEngineにUnityと、よく分からないキーワードだらけで学ぶ前から早速躓きました。たぶん本にはゲームエンジンの特徴も書いてたのだと思いますが、右も左も分からない今の自分には頭に入ってきません…。まずは各ゲームエンジンがどんな立ち位置にあるのか比較した地図的なものを把握したいので、調べることにしました。
ちなみに私はObjective-Cを使ったiPhoneアプリ開発を数年前にちょっと齧ったことがあるのですが、今はもう殆ど覚えていません。
そんな初心者レベルの状態ではありますが、iPhoneアプリ向けのゲームエンジンについて全体像を自分なりにまとめてみます。
よく見かけるゲームエンジン
この記事では次のゲームエンジンについて記載します。
- Sprite Kit
- Cocos2d-x
- Unity
- Unreal Engine
自分は2DのソシャゲRPG的なものを趣味で作りたいので、廉価で利用できる2Dゲームエンジンかどうかに重きをおいた説明になります。
ゲームエンジンの比較について整理された記事を見つけましたが、私がどのゲームエンジンを採用するか判断するには内容が難しかったです。なので、下記記事を参考にしつつ、各ゲームエンジンを調べて自分なりに理解したことを入門者視点でまとめます。
(全体的な比較の参考サイト:[CEDEC2015]「〇〇使いにはなっちゃだめ」ゲームエンジンメーカーが、ゲームエンジンを徹底比較)
(全体的な比較の参考サイト:【CEDEC 2014】Cocos2d-xかUnityか・・・よりよい2Dゲーム開発のためのゲームエンジン選びと対策 | インサイド)
Sprite Kit
Apple標準のiOS向け2Dゲームフレームワークです。Xcodeを使った普通のiOS環境でゲーム用の便利機能が使えるようになるみたいです。
Swiftだとどうなるか分かりませんが、少し古い記事だとObjective-CだとUIViewを継承したSKViewを使うと書かれていました。 既存のiOS開発した人にとっては延長上で使えそうです。また、後述するcocos2dよりもビギナーフレンドリーのようです。
(参考サイト:iOS SDKとSwiftで始めるゲーム作成入門(1):初心者でもiOS 9/tvOS向け2Dゲームが作れる標準フレームワークSpriteKitの基礎知識とチュートリアル (1/3) - @IT)
(参考サイト:scratch - SpriteKit.jp)
(参考サイト:なぜ Apple は Sprite Kit を作ったか、そして、Cocos2d にとって何を意味するか: cobalt blue and turquoise blue)
cocos2d-x
2Dが得意なのと、オープンソースなので無料で利用できます。
クロスプラットフォーム対応で、iPhoneアプリとAndroidアプリが1種類のソースコードで動くらしいです。
クロスプラットフォームのフレームワークということなので、スマホアプリの場合はXcodeメインで作りながら、定期的にEclipseでAndroidで確認が好ましいそうです。なんとなく開発のイメージができる感じがします。
モンストなど有名アプリでも使われていたり、実績が多いようです。
初心者的にはクロスプラットフォーム対応である点がSpriteKitとの分かりやすい差異ですね。
(参考サイト:Cocos2d-x超入門 そもそも何からはじめればいいの? - Qiita)
(参考サイト:無料/国内実績多数のクロスプラットフォーム対応ゲームフレームワーク「Cocos2d-x」の概要と環境構築手順 (1/3):CodeZine(コードジン))
Unity
2Dも3Dもできて無料でも使えてクロスプラットフォーム対応、ゲーム素材も充実していてシェアも一番多いというなんかすごいゲームエンジンです。
開発環境はUnity独自のものとなるようです。
Unityですべてカバーできそうですが、
2Dでシューティングとかの速度が求められるならCocos2d-x
iPhoneアプリ開発の知識を生かしつつライトに作るならSpriteKitという棲み分けなのではと思います。
また、Unity内で扱える言語でJavascriptとC#があるようですが、JavascriptはUnity独自仕様になっているようなのでC#でやるのが良いようです。
(参考サイト:【入門者必見】Unityとは?意味や特徴、特性、使い道を徹底解説 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト)
(開発環境の参考サイト:Unity入門(1)- 開発環境のインストール | Developers.IO)
(cocos2d-xとの比較の参考サイト:Cocos2d-xかUnityか・・・ めいでる速報)
(Unity内言語の参考サイト:【C#】Unity入門者に贈る超おすすめ本7選+α - はらぺこグリズリーの料理ブログ)
Unreal Engine
こちらも無償で使えて(売上額によるけど)、3DでグラフィックにこだわるならUnreal Engineが良いようです。Unityよりも情報は少ないみたいです。今回は2Dを想定していたので詳しくは調べていません。
(参考サイト:Unityは神,Unrealは現実)
自分の場合
詳細はまだまだ分かりませんが、大雑把な各ゲームエンジンの立ち位置が見えてきました。
自分の場合だと、
- 基本は2Dゲームでたまに演出とかで3D入るかも
- iPhoneだけでもいいけどクロスプラットフォーム化できるなら望ましい
- シューティングのような重い処理は無さそう
という要件なので、UnityをC#で学習しようと思います。