MeTech’s diary

趣味でやってるアプリ開発の活動記録と備忘録を書いてます。

GameplayKitの経路探索システムの基本的なデモ「Pathfinder」を動かしてみた

swiftだけでゲームが作れると聞いて興味があったので公式のサンプルコードを触ってみる。

普通はunityとかを駆使して作るイメージがあったけどそんな必要もないらしい。

今回動かしたデモ

Pathfinder:GameplayKitの経路探索システムの基本的なデモ

デモ結果

実行環境
Swift4,Xcode9


Pathfinder_ BuildTest

概要

  • GameplayKitは、iOSOS X、およびtvOSでゲームを構築するための基礎ツールとテクノロジーのコレクション
  • 洗練されたゲームを構築、進化、維持するには、十分に計画された設計が必要
  • GameplayKitは、最小限の労力でモジュラーでスケーラブルなゲームアーキテクチャを設計するためのアーキテクチャツールを提供している
  • 優れたゲームを作成するには、一般的なゲームの仕組みの問題を解決する複雑なアルゴリズムを導入する必要がある
  • GameplayKitはこのようなアルゴリズムの標準実装も提供

GameplayKitでのゲームの作り方

GameplayKitは高レベルのゲームエンジン技術とは独立しているため、これらのテクノロジと組み合わせて完全なゲームを構築できます.
以下の組み合わせが推奨されている。

GameplayKitの機能

ランダム化

 これらの堅牢で柔軟な標準アルゴリズムの実装を、多くの種類のゲームの仕組みのビルディングブロックとして使用します。

エンティティとコンポーネント

 このアーキテクチャをベースにして、再利用可能なゲームプレイコードを設計します。

ステートマシン

 このアーキテクチャーを使用して、複雑な手続き型コードをゲームプレイデザインで解き放つことができます。

Minmax戦略家

 最適な動きを計画するためにモデルを使用するターンベースのゲームとAIプレーヤーオブジェクトのモデルを作成します。

パスファインディング

 ゲームの世界をグラフで表現し、GameplayKitがゲームキャラクターに最適なルートを計画できるようにします。

エージェント、ゴール、ビヘイビア

 このシミュレーションを使用して、ゲームキャラクターが高レベルの目標に基づいて動き、周囲に反応するようにします。

ルールシステム

 ゲームデザインのサイクルをスピードアップするため、またはゲームに現実的な動作を追加するためのファジーロジック推論を実装するために、実行可能コードからゲームデザインを分離します。

サンプルコード

  • Boxes:GameplayKitエンティティコンポーネントの基本
  • ディスペンサー:GameplayKitステートマシンの基礎
  • Pathfinder:GameplayKitの経路探索システムの基本的なデモ
  • Maze:エンティティとコンポーネント、ステートマシン、パスファインディング
  • FourInARowは:相手AIのためのGameplayKit MINMAXストラテジストを使用
  • AgentsCatalog:GameplayKitのエージェントシステムの使用
  • DemoBots:SpriteKitとGameplayKitを使用したクロスプラットフォームゲームの構築