現在でも1人称視点のシューティングゲーム、いわゆる「FPS」は大人気ですが、その初期の代表作は1992年に発売された「Wolfenstein 3D」といえるかもしれません。
本日紹介する「RetroRampage」は、WolfensteinスタイルのゲームをSwiftを使ってスクラッチから作成するチュートリアルドキュメントです。
チュートリアルを公開したNick Lockwood氏は、現在のFPSゲームとは異なっているものの、Wolfensteinのような2.5Dシステムを学ぶことで以下のようなメリットがあると説明しています。
- Wolfensteinの3Dエンジンをゼロから構築することは,
複雑な数学を必要とせず、GPUやシェーダーについて何も知る必要なく実現可能。 - 2Dグリッド上に構築されたマップの作成と視覚化は簡単で、3Dモデリングとアニメーションツールの複雑さを回避できる。
- タイルグリッドは、手続き型マップの生成、経路探索、視線の計算などの手法をプロトタイプ化するための優れた方法で、より複雑な世界に適用できる。
なお作成したゲームはiPhoneやiPadをターゲットとしていますがゲームエンジンはSwiftコードを実行できるさまざまなプラットフォームで動作できるはずとのことです。
目次
パート12まで分かれたチュートリアル
RetroRampageのチュートリアルはPart 1からPart 12までに分かれており、それぞれ以下のような内容となっています。
- Part 1 - Separation of Concerns: ポータブルなゲームエンジンを作成するための基板を作成
- Part 2 - Mazes and Motion: トップダウンの2Dゲームから始まる
- Part 3 - Ray Casting: レイキャスティングハックを使ってゲームを3次元化
- Part 4 - Texture Mapping: テクスチャマッピングを利用して床と壁を描画
- Part 5 - Sprites: スプライトを使用して敵キャラクターを描画
- Part 6 - Enemy Action: モンスターに命を吹き込む
- Part 7 - Death and Pixels: プレイヤーのダメージを実装
- Part 8 - Target Practice: プレイヤーに武器を与えモンスターに反撃
- Part 9 - Performance Tuning: パフォーマンスチューニング
- Part 10 - Sliding Doors: 部屋間のドアを実装
- Part 11 - Secrets: 秘密の通路の実装
- Part 12 - Another Level: レベル2に移動できるエレベーターを実装
基礎から始まり、徐々に難しい部分が実装されているので、ゲームプログラミング初心者の方でも親しみやすいかもしれません。懐かしのFPSゲームがどのようなテクニックを使って作られていたのか興味のある方は参照してみてはいかがでしょうか。