Guidelines and References

ゲーム クライアントを実行するプラットフォーム別の EOS SDK

6 分で読めます

ゲームクライアントを実行するゲーム プラットフォームによって、使用する SDK ダウンロードの種類は異なります。

EOS SDK のダウンロード方法の概要とガイダンスについては、入門向けドキュメント「EOS SDK をダウンロードする」を参照してください。

Epic Online Services (EOS) SDK を実行するには、ターゲット プラットフォームで EOS ランタイムを確実にロードして実行するために、プロジェクトの関連付け、パッケージ化、ロードのプロセスにおいて、前提条件となる複数の手順に従う必要があります。このページでは、上記のプロセスに関する一般的な情報を提供し、「プラットフォーム別のドキュメント」ではプラットフォームごとの要件についてより具体的な情報を提供します。また、このページでは EOS SDK で Unreal Build System を使用する方法についても扱います。

適切な権限を持っている場合のみ、コンソールのドキュメントにアクセスすることができます。コンソール用 EOS SDK およびその関連ドキュメントへのアクセス方法については、「使用開始の手順:EOS SDK ダウンロードのタイプ 」ドキュメントを参照してください。

注記: ** Epic Online Services (EOS) SDK を使用するには、ローカル ネットワーク、ルーター、ファイアウォールが指定されたホスト アドレスにアクセス可能でなければなりません。ホスト アドレスの一覧は、ドキュメント「ファイアウォール考慮事項」を参照してください。

サポートしているプラットフォーム

EOS SDK が開発および出荷用にサポートしているプラットフォームとプラットフォーム バージョンのリストは「サポートしているプラットフォーム」をご覧ください。

注記: EOS SDK リリース バージョンがサポートしているコンソール リリースのリストは、コンソール別のドキュメントを参照してください。

スレッド セーフ

SDK はスレッドセーフとはみなされません。

すべての呼び出しは同じスレッド上で行う必要があります。別のスレッドから呼び出した場合、一部の関数はアサートおよびクラッシュします。

ビルドする

すべての EOS SDK ヘッダは eos_base.h ヘッダをインクルードしますが、eos_base.h を呼び出すために追加設定が必要となるプラットフォームもあります。追加設定が必要な各プラットフォームは「プラットフォーム別のドキュメント」の中に記載されており、この追加設定用の <Platform>/eos_<Platform>_base.h があります。

eos_platform_prereqs.h を使用する

EOS SDK は、クロスプラットフォーム開発をサポートするために eos_platform_prereqs.h を提供しています。eos_platform_prereqs.h を使用するには、特定のプラットフォームを含むために必要なアプリケーションをビルドするときに EOS_BUILD_PLATFORM_NAME マクロを追加します。

その他の EOS SDK ヘッダの前に eos_platform_prereqs.h ヘッダをインクルードします。

たとえば、Unreal Build System を使用している場合は、<Project>.Build.cs ファイルに次のコードを追加します。

別の EOS インターフェースを使用するときは、次の #includes を追加します。

eos_[interface]_types.h の部分は、[interface] を使用するインターフェースに置き換えます。

カスタム クロスプラットフォームの例

eos_platform_prereqs.h がプロジェクトのビルド システムに合わない場合は、カスタム コンパイラから提供されるマクロを参照することができます。例:

単一プラットフォームの例

単一プラットフォームが EOS フレンド サービス用に追加の #includes が必要な場合は以下を使用します。

eos_[interface]_types.h の部分は、[interface] を使用するインターフェースに置き換えます。

リンクする

プロジェクトをリンクする際は、EOS SDK のリンクタイム ライブラリを、プロジェクトのリンク コマンドに追加する必要があります。ほとんどのプラットフォームでは、ランタイム ライブラリの手動ロードも必要となります。

Unreal Build System とリンクする

Unreal Engine を使用している場合、「&lt;Project>.Build.cs」ファイルで以下の手順に従うと Unreal Build Tool でライブラリのリンクとパッキングを管理できます。

  1. ライブラリのリンクタイム名を PublicAdditionalLibraries に追加します。
  2. ライブラリのリンクタイム ファイルを RuntimeDependencies に追加します。

たとえば、「&lt;Project>.Build.cs」ファイルに以下のようなコードを追加します。

パッケージング

一般的には、ゲームの実行ファイルと同じディレクトリに EOS SDK のランタイム ライブラリを配置することで、ゲームの実行時にライブラリが確実に見つかるようになります。一部のプラットフォームでは、ライブラリを指定のディレクトリに配置する必要があります。詳細はプラットフォーム固有のページを確認してください。

ロードする

一部のプラットフォームでは、ランタイム時に EOS SDK のダイナミック モジュールを明示的にロードする必要があります。各プラットフォームでこれを行う詳しい方法については、プラットフォーム固有のページを参照してください。プロセスが示されていない場合は明示的なロードは必要ありません。

Unreal でロードする

Unreal Build Tool を使用してゲームのパッケージ化を設定する限り、すべてのプラットフォームで同じプロセスを使用できます。モジュールのロードは FPlatformProcess::GetDllHandle を使用し、モジュールのアンロードは FPlatformProcess::FreeDllHandle を使用します。

メモリ関数

EOS SDK では、EOS_InitializeOptions を介してカスタム アロケータを提供するときに、開発したメモリ管理システムを使用することができます。アロケータが提供されない場合は、EOS SDK は mallocfreerealloc などの標準アロケータを使用します。

ただしコンソールは例外で、カスタム アロケータが必要となります。コンソールでのメモリ管理は複雑であり、プラットフォーム依存の高いプロセスです。予期せぬ挙動を防ぐため、コンソールではすべてのメモリ管理が確実にアプリケーションから行われるように、これらのカスタム アロケータの提供が必要とされています。現在のプラットフォームにおけるメモリ管理機能の詳細については、SDK ドキュメントの冒頭の部分を参照してください。

Unreal でのメモリ関数

Unreal Engine で EOS SDK を使用する場合、EOS_InitializeOptions に提供されるアロケータを FMemory::MallocFMemory::ReallocFMemory::Release にマップすることができます。