数学演算は、ゲーム構築で中心的な役割を果たすものです。 2 次元または 3 次元の空間にオブジェクトを配置したり、あるキャラクターが別のキャラクターを見ているかどうかや、特定のサーフェスでライトがどのように反射するのかを決定するなど、現代のゲームプレイの多くのメカニズムは数学によって支えられています。 ゲームに使われている数学的な概念の多くは複雑で難しく感じられるかもしれませんが、中には分かりやすく学べるものもあります。
初歩的概念
3 次元のワールド空間内の 2 次元グリッドへのオブジェクト配置は、多くのターン制ストラテジーゲームやタクティクスゲームで用いられる基本的な仕組みです。 ここで使われる数学的な計算はほかの数学ベースのゲームメカニクスと比較して単純なものですが、人気のある多くのゲームを成り立たせるうえで欠かせない中核的存在です。
ゲームデザイナーのツールの中でも重要なのがランダム性です。 ランダム性を取り入れることで、あらかじめ膨大な決定論的なパターンを用意して管理する必要なしにさまざまなゲーム体験を生み出せるようになります。 ランダム性を取り入れる際には、状況が無秩序にならないよう十分にコントロールしつつ、適度な多様性を持たせることが大切です。 ランダムで規則的な動作になるよう境界を設定する必要があります。
経験から学ぶ
このチュートリアルでは、UEFN でターン制ボードゲームの核となるメカニクスを、Verse を使って実装する方法を解説します。 このゲームは、「Coordinate Battle!」というフォートナイトの島として公開されています!島コードは 6259-2097-7759です。
ゲームプレイの概要
このゲームは 2 プレイヤーのターン制ボードゲームです。 各プレイヤーのボードは 5×5 のグリッドで構成されており、5 つのポーンがランダムに配置されて非表示になっています。 プレイヤーは、非表示になっているポーンを含む敵のボードを直接見るだけでなく、画面の左上隅に表示される自分のボードを小さなビューで確認することもできます。
プレイヤーは順番に相手のボード上の座標を選択します。
プレイヤーが座標を選択した後は、次の 2 つのオプションがあります。
選択した場所から特定の半径内の敵のポーンを公開する。
ある場所をアタックし、場合によっては敵の非表示のポーンを破壊する。
5 つの敵のポーンすべてを最初に破壊したプレイヤーが勝ちとなります。
追加の情報要素として、UnrealEngine.com モジュールの XYZ 座標系と Verse.com モジュールの LUF 座標系のどちらで作業するかを選択することもできます。
このチュートリアルでは、ゲームプレイのメカニクスを支える数学的な概念をどのようにビルドするかについて解説します。 メカニクスには次のようなものがあります。
3 次元のワールド空間、2 次元のグリッド ゲームボード、および画面端のプレイヤーのミニボードとの位置の対応関係
ゲームボードへのポーンのランダムな配置
数学演算は次の目的で使用されます。
ランタイム時にカメラの位置と回転に基づいてミニボードを動的に配置する
ゲームボードにポーンを配置する
ミニボードにマーカーを配置する
タイルの特定の距離内にあるポーンを公開する
ボードにポーンをランダムに配置する
メカニクスをビルドする
座標バトルのゲーム メカニクスの構築についての詳細は、以下のチュートリアル ページをご覧ください。
1. 座標空間の概要
座標バトル は複数の座標空間を用いてゲームプレイを定義します。
2. ゲーム ボードの定義
ゲーム ボード領域をタイルとして表現し、変換を管理します。
3. ポーンを設定および削除する
ボードにポーンを追加し、必要に応じて削除します。
4. ボードの生成
ポーンを生成し、ボードにランダムに配置します。
5. ミニボードを定義する
ミニボードを作成し、ワールドに配置します。
6. ミニボードマーカーの設定
ミニボードにゲーム ボードの状態を反映します。
7. ゲームを構築する
ゲーム ループ ロジックを作成します。
8. 座標バトルの完全なコード ファイル
このチュートリアルの全ての Verse コードを一か所にまとめています。