iOSでゲーム制作をするためにどうやって表示するオブジェクトを出すか調べました。
これを見ると何やらたくさん候補がありそうでしたが、用途がそれぞれ違うのでまとめました。
(フレームワークとライブラリという言葉が使われていますが、この違いはある程度開発方法を方向づけるものをフレームワーク、そうではないものをライブラリと僕は考えています。ライブラリは関数やクラスは用意するけどあとはご自由に、というスタンスを取っている思っています。)
描画系(OpenGL)
OpenGL ES | 2D, 3Dグラフィックスライブラリ。OpenGLのサブセット。 |
AGL | OpenGLのRenderingContextを管理するオブジェクト。macOS用。 |
GLKit | OpenGLやOpenGL ES のAPIを使って開発を容易にしてくれる描画ライブラリ。 |
描画系(Quartz)
Core Graphics | quartzを基にした2D用の描画フレームワーク。 |
QuartzCore | Core Animation API。OpenGLで描画している様子。 |
描画系(Metal)
Metal | GPUを活用した低レベルグラフィックスAPI。並列計算もやってくれるらしい。 |
MetalKit | Metalをラッピングして使いやすくしたライブラリ。 |
MetalPerformanceShaders | Metalのチューニング用フレームワーク。 |
補助系
GameController | ゲームコントローラの補助フレームワーク |
ReplayKit | 音楽やビデオを記録したり流したりするライブラリ。 |
GameKit | GameCenterとかpeer-to-peerで他のiphoneと接続とか、ユーザーをゲームに取り込むための仕組み。iphone同士でチャットもできるらしい。 |
Core Image | ビデオイメージの解析や画像処理を行う。 |
Image I/O | 画像データの読み込み、書き込みライブラリ。 |
Model I/O | 3Dモデルの読み込み、書き込みライブラリ。MetalKit, GLKit, SceneKitで使える。 |
ゲーム製作系
GameplayKit | 人工知能や経路探索のような専門的な技術を扱ったライブラリ。 |
SceneKit | 3Dシーンを作成するフレームワーク。 |
SpriteKit | 2Dゲーム作成用フレームワーク。 |
それぞれ用途に合わせて組み合わせて使っていくことになりそうですね。