この概要では、Epic Online Services (EOS) SDK を使用する Auth and Friends サンプル プロジェクトについて説明します。
Auth and Friends サンプルは、ユーザー認証に Epic Account Services を使用しています。有効なアプリケーションに対応する クライアント資格情報 を使って EOS SDK を初期化する必要があります。使用するアプリケーションの設定情報については、「Developer Portal」を参照してください。このサンプルが実演する機能は、サポートされているどの ID プロバイダー とも使用することができます。
ソース コードとプロジェクト
Auth and Friends プロジェクトは「EOSSDK/Samples/AuthAndFriends/
」ディレクトリ内にあります。以下のサブディレクトリがあります。
サブディレクトリ | 内容 |
---|---|
/Bin/ | ゲームの実行可能ファイルの出力先。実行可能ファイルがビルド後に表示される正確なサブディレクトリは、設定およびプラットフォームに応じて異なります。 |
/cmake/ | Mac と Linux で CMake を使用してビルドを作成するためのヘルパー ファイル。 |
/Intermediate/ | ビルドの中間ファイル。 |
/Source/ | プロジェクトのソース コード。 |
また、「EOSSDK/Samples/Shared/
」ディレクトリには、特定の共有サンプル ファイルもあります。これらのサンプル ファイルは、次のようにサブディレクトリに分けられています。
サブディレクトリ | 内容 |
---|---|
/Assets/ | 共有のゲーム ランタイム テクスチャ アセットおよびフォント アセット。 |
/External/ | 共有のライブラリ。 |
/Source/ | すべての共有のソースコード。 |
「Shared/Source/Core/
」ディレクトリには、ログインし、ユーザーを認証し、フレンドにクエリするための、EOS SDK を使用したサンプル コードが格納されています。このソース ディレクトリには、ゲーム自体を管理するためのコードも格納されています。
サンプルをビルドする
Windows DirectX
Auth and Friends サンプルをコンパイルおよびビルドするには、Microsoft Visual Studio で Samples.sln
を開き、ターゲット プラットフォーム (Win32 または Win64) 用の目的の構成 (Debug_DXまたはRelease_DX) をビルドします。
ビルドが成功すると、「/Bin/
」ディレクトリでは、設定とターゲット プラットフォームに基づくサブディレクトリに実行可能ファイル (AuthAndFriends.exe
) が格納されます。また、このサブディレクトリには、データ アセットと SDK バイナリのコピーも格納されています。
Windows SDL
Auth and Friends サンプルをコンパイルおよびビルドするには、Microsoft Visual Studio 2017 でソリューション Samples.sln
を開き、ターゲット プラットフォーム (Win32 または Win64) 用の目的の構成 (Debug_SDLまたはRelease_SDL) をビルドします。
ビルドが成功すると、「/Bin/
」ディレクトリでは、設定とターゲット プラットフォームに基づくサブディレクトリに実行可能ファイル (AuthAndFriends.exe
) が格納されます。また、このサブディレクトリには、データ アセットと SDK バイナリのコピーも格納されています。
Mac OSX
Mac でビルドするには、次の依存関係をインストールする必要があります。
-
SDL2
-
SDL2_ttf
-
GLEW
-
cmake
-
gcc (Xcode 用のコマンドライン ツールを使用)
-
ローカル使用の場合のみ: ターミナルから
Build.sh
またはBuild.command
を使用してサンプルをビルドし、サンプル フォルダ (/Build/AuthAndFriends.app) でローカルに実行するための最小限のみをパッケージ化します。 -
ターミナルから
Build.sh
またはBuild.command
を使用して、他の場所へ移動しても実行するように、サンプル アプリケーション パッケージ (/Install/AuthAndFriends.app) で依存関係 (EOS SDK dynamic lib、SDL2 lib など) をパッケージ化します。 -
ターミナルから
Install.sh
またはInstall.command
を使用すると、依存関係 (EOS SDK dynamic lib や SDL2 lib など) をサンプル アプリケーション パッケージ (/Install/AuthAndFriends.app) にパッケージするので、どこかに移動してもそのまま実行することができます。
AuthAndFriends サンプルを実行するには、ターミナルから Run.command
または Run.sh
を実行します。
Linux
Linux でビルドするには、次の依存関係をインストールする必要があります。
- SDL2 (ランタイム + ヘッダー)
- SDL2_ttf (ランタイム + ヘッダー)
- GLEW (ランタイム + ヘッダー)
- cmake
- gcc/g++
Auth and Friends サンプルをコンパイルおよびビルドするには、ターミナルから Install.sh
を実行します。
ビルドが成功すると、「/Build/
」ディレクトリに、実行可能ファイル (AuthAndFriends
) が格納されます。また、このサブディレクトリには、データ アセットとビルド用の makefile ファイルのコピーも格納されています。
AuthAndFriends サンプルを実行するには、ターミナルから Run.sh
を実行します。
Steam API を使用して認証する
Steam External Auth サポートを使用して Auth and Friends サンプルをコンパイルおよびビルドするには、Microsoft Visual Studio で Samples.sln
を開き、ターゲット プラットフォーム (Win32 または **Win64) の目的のコンフィギュレーション (Debug_DX_Steam、Release_DX_Steam、Debug_SDL_Steam、Release_SDL_Steam のいずれか) をビルドします。
サンプルは、Steam SDK からファイルを参照し、ダウンロードして Sample 共有フォルダ (下図) に展開することができます。「public
」フォルダには Steam インクルード ファイルが含まれ、「redistributable_bin
」フォルダには 「Steam LIB」ファイルと「DLL」ファイルが含まれます。
「Samples.props
」ファイルには、..\Shared\External\SteamSDK
に置かれる Steam SDK ファイルへのデフォルト パスの SteamSDK
プロパティが含まれます。
Steam SDK ファイルを別の場所から参照する場合はこのパスを変更します。
テストのために、AuthAndFriends プロジェクト ルート フォルダ (下図) に steam_appid.txt
を作成して、使用する Steam App ID をこのファイルに追加します。このファイルは必要な Steam DLL ファイル プレビルドと一緒にコピーされます。
ビルドが成功すると、「/Bin/
」ディレクトリでは、設定とターゲット プラットフォームに基づくサブディレクトリに実行可能ファイル (AuthAndFriends.exe
) が格納されます。また、このサブディレクトリには、データ アセットと SDK バイナリ、 Steam DLL のコピーも格納されています。
サンプルを実行するには、Steam Client を実行する必要があります。
サンプルは起動時に Steam Session Ticket でのログインを試みます。使用する アカウント がまた Steam にリンクされていない場合はアカウント ポータルに移動し、認証を継続し、ログインします。
サンプルを活用する
サンプルを活用したい場合は、サンプルのコードを読み、使用可能なコマンドライン パラメータ、コンソール コマンド、および機能について確認してください。
コマンドライン パラメータ
Auth and Friends サンプルでは、次のオプションのコマンドライン パラメータをサポートしています。
コマンドライン パラメータ | 使用 | 説明 |
---|---|---|
userid | -userid <string> | [user id (ユーザー ID)] ボックスに <userid> テキストが入力され、[LOGIN (ログイン)] ボタンがクリックされると (または自動ログイン プロセスにより) ユーザー (id <userid> で指定) のログインが行われます。また、<userid> はメール、表示名、または Facebook ID である可能性があります。 |
password | -password <string> | [password (パスワード)] ボックスに <password> テキストが入力され、[LOGIN (ログイン)] ボタンがクリックされるか、自動ログイン プロセスにより、ユーザー (パスワード <string> を使用) のログインが行われます。 |
autologin | -autologin 1 | 「userid」と「password」で指定されたユーザーは、EOS SDK が初期化された後にゲームが開始されると、自動的にログインされます。 |
productid | -productid <string> | EOS SDK プラットフォーム オプションを作成する際に、製品 ID をオーバーライドします。デフォルト値については、SampleConstants.ProductId を参照してください。 |
sandboxid | -sandboxId <string> | EOS SDK プラットフォーム オプションを作成する際に、サンドボックス ID をオーバーライドします。デフォルト値については、SampleConstants.SandboxId を参照してください。 |
deploymentId | -deploymentId <string> | EOS SDK プラットフォーム オプションを作成する際に、Deployment ID をオーバーライドできます。デフォルト値については、SampleConstants.DeploymentId を参照してください。 |
clientid | -clientid <string> | EOS SDK プラットフォーム オプションを作成する際に、クライアントの資格情報 ID をオーバーライドできます。また、デフォルト値については、SampleConstants.ClientCredentialsId を参照してください。 |
clientsecret | clientsecret <string> | EOS SDK プラットフォーム オプションを作成する際に、クライアント資格情報シークレットをオーバーライドできます。また、デフォルト値については、SampleConstants.ClientCredentialsSecret を参照してください。 |
fullscreen | -fullscreen 1 | これがコマンドラインに追加されると、ゲームが全画面表示モードで起動します(ウィンドウ モードがデフォルトです)。 |
logfile | -logfile <string> | デバッグ出力ログが、<string> で指定されたファイル名に書き出されます。また、デフォルトのデバッグ出力ログ ファイルは「DebugOuput.log」で、ソリューション ファイルと同じフォルダに保存されます。 |
devhost | -devhost <string> | [Dev Auth] ログイン オプションの [Host (ホスト)] ポート ボックスに、<string> パラメータが含まれます。 |
devcred | -devcred <string> | [Dev Auth] ログイン オプションの ["Credentials] ボックスに、<string> パラメータが含まれます。 |
コンソール コマンド
Auth and Friends サンプルでは、インゲームで入力可能な次のコンソール コマンドをサポートしています。
コンソールコマンド | 使用 | 説明 |
---|---|---|
TEST | TEST | コンソールにテスト メッセージを出力します。 |
CLEAR | CLEAR | コンソール出力ウィンドウのすべてのテキスト行を消去します。 |
EXIT | EXIT | ゲームを終了して閉じます。 |
LOGIN | LOGIN <USER_ID> <PASSWORD> | ユーザー ID <USER_ID> およびパスワード <PASSWORD> を使用してユーザーのログインを試行します。 |
LOGOUT | LOGOUT <USER_NAME> | 指定されたユーザー <USER_NAME> のログアウトを試行します。 |
INVITE | INVITE <FRIEND_NAME> | 表示名が <FRIEND_NAME> であるユーザーにフレンド招待を送信します。 |
PREV | PREV | 前にログインしたユーザーの情報を表示します (複数のユーザーがログインしている場合)。 |
NEXT | NEXT | 次にログインしたユーザーの情報を表示します (複数のユーザーがログインしている場合)。 |
NEW | NEW | その他のユーザーとしてログインできるようにログイン ダイアログを表示します。 |
FRIENDS | FRIENDS | フレンズ オーバーレイを開きます。 |
HELP | HELP | 上記のすべてのコンソール コマンドに関する情報をコンソール出力に出力します。 |
コンソール コマンドを追加するには、Game.cpp
の Game::CreateConsoleCommands
関数を参照してください。
機能
Simple Framework には、ログインとログアウトの機能、コンソール ウィンドウ、フレンド リスト、プレゼンス情報など、複数の機能があります。
ログイン
次の画像は、いくつかのログイン メソッドを使用する FRIENDS セクションを示しています。ログインするには、メソッドをクリックして適切な情報を入力します。その後、[LOG IN] をクリックしてプロセスを完了します。
ログイン パネルにはサポートされるログイン メソッドが表示されます。
- Device Code: Epic が提供するコードを含む URL でログインします。
- Dev Auth: Developer Authentication Tool 資格情報でログインします。
- Account Portal: Epic アカウント とリンクすることによってログインします。
以下の画像は、正常にログインした後のユーザー表示名 (右上) を示しています。
EOS は単一のシステムからの複数うの同時ログインをサポートしています。このサンプルでは、[NEW (新規)] ボタンをクリックすると、新しいアカウントでログインできます。複数のアカウントで同時にログインしている場合は、左矢印および右矢印で順に切り変えることができます。
Device Code メソッド
Device Code メソッドでは、ログイン コードを含んだ URL がサンプルに送信されます。サンプルのコンソール ログで URL を確認することができます。それを FRIENDS セクションにコピーした後、ログインが可能になります。この手順を取り消すには、ポップアップ ウィンドウの [Cancel (キャンセル)] をクリックします。
Dev Auth メソッド
Dev Auth メソッドでログインするには、Developer Authentication Tool を実行するホスト ポートを入力し、ツールが提供する資格情報を与えます。この情報を入力した後に [LOG IN] をクリックします。
Account Portal メソッド
Account Portal メソッドでは、ウェブ ブラウザの Epic アカウント ポータルに移動し、そこで Epic アカウントを使ってアプリケーションにログインします。ウェブでのフローを完了した後、サンプルに戻ります。
ログアウトする
ログアウトするには、[LOG OUT] ボタンをクリックします。
コンソール ウィンドウ
コンソールでは、EOS SDK の各種操作に関連するデバッグ出力がログされます。さらに、コンソールには次のデバッグ出力が表示されます。
関数 | テキストの色 |
---|---|
FDebugLog::Log() | 白 |
FDebugLog::LogWarning() | オレンジ |
FDebugLog::LogError() | 赤 |
注意: EOS SDK 操作のエラーは、赤いテキストで表示され、警告はオレンジ色のテキストで表示されます。
コンソール ウィンドウの詳細については、次の画像を参照してください。
コンソール出力 (1) では、関連するデバッグ情報がログされます。また、コンソール コマンドを入力できます (2)。コンソール出力はいつでも消去できます (3)。最後に、黄色でハイライトされたテキストをクリックおよびドラッグして選択し、キーボードの Ctrl + C を使用するとコピーすることができます。コンソール出力のすべてのテキストを選択したい場合は、キーボードの Ctrl + A を使用します。
注意: テキストはクリップボードにコピーされます。
フレンド リスト
[Friends List (フレンド リスト)] は、フレンドとフレンドのステータス、フレンド招待を表示したり、フレンドと対話できるウィンドウの独立した部分です。フレンド リストを使用するにはログインする必要があります (下記参照)。
フレンド リストには、2 つの目的に役立つテキスト フィールドもあります。まず、表示名でフレンドを絞り込むことができます。次に、ユーザーの表示名を入力して Enter を押すと、新しいフレンドを検索できます。入力された表示名を持つフレンドがリストに存在しない場合、検索が実行され、見つかったユーザーが追加するオプションと一緒にリストに表示されます (下記を参照)。
+ ボタンを押すとユーザーに フレンド招待 が送信されます。ユーザーが招待を承諾または却下するまで、招待されたフレンドは [Friends List (フレンド リスト)] に表示されます。
受信したフレンド招待には、招待状を承諾するか拒否するためのボタンが表示されます。
プレゼンス情報
ユーザーが招待を承諾すると、そのユーザーはフレンドになり、追加の情報が表示されるようになります。例えば、フレンドのステータス (フレンドが [Online (オンライン)]、[Away (退席中)]、または[Offline (オフライン)] であるかどうかなど) を確認できます。また、現在ゲームをプレイしているフレンドの プレゼンス 情報が表示されます。名前の横にある緑色のラベルは、現在使用しているアプリケーションの名前とプラットフォームを示しています (下の画像を参照)。