Wortal SDK for PlayCanvas
インストール
- Wortal スクリプトをゲームに追加する: 1. Wortal SDK demo projectに含まれるフォルダ 2. 利用可能なGitHub
 wortal.jsの Loading Type を After Engine に設定する

初期化
- ゲームの初期化コードのできるだけ早い段階で 
wortal.initializeAsync()を呼び出し、ゲームのロードが終わってプレイできる状態になった際、wortal.startGameAsync()を呼び出してください。 
- 初期化コードでゲームのローディングの進行状況を報告する。進行状況が100%になるまで、ゲームは開始されません。
 
使い方
広告
インタースティシャル広告では、レベルの達成や切り替えの合間に表示が可能です。
// プレイヤーがレベルを達成
wortalAdsShowInterstitial('next', 'NextLevel', pauseGame, resumeGame);
// プレイヤーがゲームを一時停止
wortalAdsShowInterstitial('pause', 'PausedGame', pauseGame, resumeGame);
// プレイヤーがアプリ内課金ページにアクセス
wortalAdsShowInterstitial('browse', 'BrowseShop', pauseAudio, resumeAudio);
リワード広告は、プレイヤーが動画広告を最後まで視聴するなどの条件を満たした場合に、報酬を与える広告タイプです。必ずプレイヤーに通知し、許可を受けてから表示する必要があります。
// この例では、広告の条件達成とは関係なく、ゲームが進みます。
// 例:プレイヤーは広告を視聴することでボーナスコインを取得できますが、その結果に関わらずゲームは続行されます。
wortalAdsShowRewarded('BonusCoins', pauseGame, resumeGame, skipBonus, addBonusCoins);
// この例では、広告の広告の条件達成に関係して、ゲームが進みます。
// 例:プレイヤーはゲームオーバーの際、広告を視聴することで復活できますが、広告をスキップするとそのレベルを失います。
wortalAdsShowRewarded('ReviveAndContinue', pauseAudio, resumeAudio, endGame, continueGame);
注: プレーヤーは、adViewed コールバックでのみ報酬を受ける必要があります。
アナリティクス
Wortalのアナリティクス APIを活用することによって、ゲームイベントを追跡し、プレイヤーのゲーム内アクティビティを把握することが可能です。このデータは、Wortalのダッシュボードで表示できます。
// レベルの開始をログ。
wortalAnalyticsLogLevelStart('Level 3');
// レベルの終了をログ。名前が一致する場合、ゲーム時間を記録します。
// logLevelStart の最後の呼び出し名()
wortalAnalyticsLogLevelEnd('Level 3', '100', true);
// プレイヤーのゲーム内の選択行動をログします。ゲームのバランスを取るのに役立ちます。
// そしてプレイヤーが多く利用するコンテンツを把握できます。
wortalAnalyticsLogGameChoice('Character', 'Blue');
アチーブメント
Achievements API は、プレイヤーのゲーム内での進捗を追跡するために使用されます。特定のタスクを完了したり、特定のマイルストーンに到達することでアンロックできます。
// アチーブメントをアンロックする。
wortalAchievementsUnlockAchievementAsync('achievementID')
    .then(() => console.log("Achievement unlocked!"));
// プレイヤーのアチーブメントの進捗状況を取得する。
wortalAchievementsGetAchievementsAsync()
    .then(achievements => console.log(achievements));
コンテキスト
Context APIは、プレイヤー同士をつなぎ、ゲームセクションの参加、コンテンツの共有、またメッセージのやり取り等に活用できます。
// 友達をゲームに招待する。プレーヤーの現在のコンテキストを切り替えない。
wortalContextInviteAsync({
    image: 'data:base64Image',
    text: 'Invite text',
    cta: 'Play',
    data: { exampleData: 'yourData' },
}).then(() => console.log("Invite sent!"));
// ゲームのアクティビティを友達と共有する。
wortalContextShareAsync({
    image: 'data:base64image',
    text: 'Share text',
    cta: 'Play',
    data: { exampleData: 'yourData' },
}).then(result => console.log(result));
アプリ内課金
アプリ内課金(IAP)APIは、プラットフォームでのゲーム内トランザクションの際に使用されます。このプロセスは、プレイされているプラットフォームによって異なりますが、IPは変わりません。
// プレイヤーが購入可能なアイテムリストを確認する。
wortalIAPGetCatalogAsync()
    .then(products => console.log(products));
// アイテムを購入する。
wortalIAPMakePurchaseAsync({
    productID: 'my_product_123',
}).then(purchase => console.log(purchase));
リーダーボード
Leaderboard APIを活用すると、プラットフォームのリーダーボード機能にアクセスが可能に。プレイヤーたちのスコアを追跡し、ランク付けすることができます。
// 上位10位にランクづけられたリーダーボードを取得する。
wortalLeaderboardGetEntriesAsync('global', 10)
    .then(entries => console.log(entries));
// プレーヤーのスコアをリーダーボードに追加する。
wortalLeaderboardSendEntryAsync('global', 100);
通知
Notifications API は、プレイヤーに通知を送信するために使用されます。これは、ゲーム内のイベントをプレイヤーに通知したり、再びプレイするよう促したりするために使用できます。
// プレイヤーに送信する通知をスケジュールします。
wortalNotificationsScheduleAsync({
    title: "Your energy is full!",
    body: "Come back and play again.",
    mediaURL: "https://example.com/image.png",
    label: "resources-full",
    scheduleInterval: 300 // 5 minutes
}).then((result) => {
    console.log(result.id);
});
// スケジュール設定された通知をキャンセルする。
wortalNotificationsCancelAsync('notification-id-123')
    .then((result) => {
        console.log(result);
    });
プレイヤー
現在のプレーヤーに関する詳細は、Player APIにて確認できます。
// プレイヤーの名前を取得する。
wortalPlayerGetName();
// プレイヤーの友達で、ゲームをプレイことがある人のリストを取得する。
wortalPlayerGetConnectedPlayersAsync({
    filter: 'ALL',
    size: 20,
    hoursSinceInvitation: 4,
}).then(players => console.log(players.length));
セッション
現在のセッションの状態に関する詳細は、Session API でアクセスできます。
// ゲームが開始されたエントリポイントを取得する。
wortalSessionGetEntryPointAsync()
    .then(entryPoint => console.log(entryPoint));
// 招待やシェアからエントリーポイントのデータを取得します。
// こちらは、プレイヤーがどこから来たのかを追跡するのに役立ちます。
// 招待されたプレイヤーへ報酬を与えます。
const data = wortalSessionGetEntryPointData();
console.log(data);
スタッツ
Stats API は、プレーヤーのゲーム内の統計情報を追跡するために使用されます。
// レベルごとのプレイヤーのハイスコアを取得します。
wortalStatsGetStatsAsync("level1")
    .then(stats => console.log(stats.value));
// ゲームのハイスコアを設定します。
wortalStatsPostStatsAsync("level1", 1000)
    .then(() => console.log("High score set!"));
トーナメント
Tournament API は、あなたのゲームのトーナメントを作成し、管理するために使用されます。
// Create a tournament.
const payload = {
    initialScore: 100,
    config: {
        title: "Level 1 Tournament",
    },
    data: {
        level: 1,
    },
};
wortalTournamentCreateAsync(payload)
    .then(tournament => console.log(tournament.payload["level"]));
// Post a score to a tournament.
wortalTournamentPostScoreAsync(200)
    .then(() => console.log("Score posted!"));