ゲームクライアントを実行するゲーム プラットフォームによって、使用する 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 を使用している場合、「<Project>.Build.cs
」ファイルで以下の手順に従うと Unreal Build Tool でライブラリのリンクとパッキングを管理できます。
- ライブラリのリンクタイム名を
PublicAdditionalLibraries
に追加します。 - ライブラリのリンクタイム ファイルを
RuntimeDependencies
に追加します。
たとえば、「<Project>.Build.cs
」ファイルに以下のようなコードを追加します。
パッケージング
一般的には、ゲームの実行ファイルと同じディレクトリに EOS SDK のランタイム ライブラリを配置することで、ゲームの実行時にライブラリが確実に見つかるようになります。一部のプラットフォームでは、ライブラリを指定のディレクトリに配置する必要があります。詳細はプラットフォーム固有のページを確認してください。
ロードする
一部のプラットフォームでは、ランタイム時に EOS SDK のダイナミック モジュールを明示的にロードする必要があります。各プラットフォームでこれを行う詳しい方法については、プラットフォーム固有のページを参照してください。プロセスが示されていない場合は明示的なロードは必要ありません。
Unreal でロードする
Unreal Build Tool を使用してゲームのパッケージ化を設定する限り、すべてのプラットフォームで同じプロセスを使用できます。モジュールのロードは FPlatformProcess::GetDllHandle
を使用し、モジュールのアンロードは FPlatformProcess::FreeDllHandle
を使用します。
メモリ関数
EOS SDK では、EOS_InitializeOptions
を介してカスタム アロケータを提供するときに、開発したメモリ管理システムを使用することができます。アロケータが提供されない場合は、EOS SDK は malloc
、free
、realloc
などの標準アロケータを使用します。
ただしコンソールは例外で、カスタム アロケータが必要となります。コンソールでのメモリ管理は複雑であり、プラットフォーム依存の高いプロセスです。予期せぬ挙動を防ぐため、コンソールではすべてのメモリ管理が確実にアプリケーションから行われるように、これらのカスタム アロケータの提供が必要とされています。現在のプラットフォームにおけるメモリ管理機能の詳細については、SDK ドキュメントの冒頭の部分を参照してください。
Unreal でのメモリ関数
Unreal Engine で EOS SDK を使用する場合、EOS_InitializeOptions
に提供されるアロケータを FMemory::Malloc
、FMemory::Realloc
、FMemory::Release
にマップすることができます。