コンテンツにスキップ

Wortal SDK for GameMaker

インストール

  1. GameMaker Marketplaceから、Wortal エクステンションをインストールする
  2. Included Files -> wortal_index.html に移動し、JSファイルのパスをあなたのゲームのものに置き換えてください

    1. GameMakerのビルド結果である .zip アーカイブを解凍する 2. index.html を開き、画面下付近にある下記の行を見つける: <script type="text/javascript" src="html5game/yourgame.js?DBDYB=830673173"></script> 3. 上記の行をコピー・保存する 4. wortal_index.html を開き、画面下付近にある下記の行を見つける: <!-- CHANGE THIS TO YOUR GAME's PATH → 5. ステップ C でコピーしたコードでその行を置き換える

  3. Game Options -> HTML5 -> Advanced -> Included file as index.html の順に開き、このオプションを wortal_index.html に変更する

使い方

広告

API リファレンス

インタースティシャル広告では、レベルの達成や切り替えの合間に表示が可能です。

// プレイヤーがレベルを達成
wortal_ads_show_interstitial("next", "NextLevel");

// プレイヤーがゲームを一時停止
wortal_ads_show_interstitial("pause", "PausedGame");

// プレイヤーがアプリ内課金ページにアクセス
wortal_ads_show_interstitial("browse", "BrowseShop");

リワード広告は、プレイヤーが動画広告を最後まで視聴するなどの条件を満たした場合に、報酬を与える広告タイプです。必ずプレイヤーに通知し、許可を受けてから表示する必要があります。

// この例では、広告の条件達成とは関係なく、ゲームが進みます。
// 例:プレイヤーは広告を視聴することでボーナスコインを取得できますが、その結果に関わらずゲームは続行されます。
wortal_ads_show_rewarded("BonusCoins");

// この例では、広告の広告の条件達成に関係して、ゲームが進みます。
// 例:プレイヤーはゲームオーバーの際、広告を視聴することで復活できますが、広告をスキップするとそのレベルを失います。
wortal_ads_show_rewarded("ReviveAndContinue");

注: プレーヤーは、adViewed コールバックでのみ報酬を受ける必要があります。

アナリティクス

API リファレンス

Wortalのアナリティクス APIを活用することによって、ゲームイベントを追跡し、プレイヤーのゲーム内アクティビティを把握することが可能です。このデータは、Wortalのダッシュボードで表示できます。

// レベルの開始をログ。
wortal_analytics_log_level_start("Level 3");

// レベルの終了をログ。名前が一致する場合、ゲーム時間を記録します。
// logLevelStart の最後の呼び出し名()
wortal_analytics_log_level_end("Level 3", "100", 1);

// プレイヤーのゲーム内の選択行動をログします。ゲームのバランスを取るのに役立ちます。
// そしてプレイヤーが多く利用するコンテンツを把握できます。
wortal_analytics_log_game_choice("Character", "Blue");

アチーブメント

API Reference

Achievements API は、プレイヤーのゲーム内での進捗を追跡するために使用されます。特定のタスクを完了したり、特定のマイルストーンに到達することでアンロックできます。

// アチーブメントをアンロックする
wortal_achievements_unlock_async("achievementID");

// プレイヤーのアチーブメントの進捗状況を取得する
wortal_achievements_get_async();

コンテキスト

API リファレンス

Context APIは、プレイヤー同士をつなぎ、ゲームセクションの参加、コンテンツの共有、またメッセージのやり取り等に活用できます。

// 友達をゲームに招待する。プレーヤーの現在のコンテキストを切り替えない。
payload = {
    image: "data:base64image",
    text: "Invite text",
    cta: "Play",
    data: { exampleData: "yourData" },
}

wortal_context_invite_async(json_stringify(payload));

// ゲームのアクティビティを友達と共有する。
payload = {
    image: "data:base64image",
    text: "Share text",
    cta: "Play",
    data: { exampleData: "yourData" },
}

wortal_context_share_async(json_stringify(payload));

アプリ内課金

API リファレンス

アプリ内課金(IAP)APIは、プラットフォームでのゲーム内トランザクションの際に使用されます。このプロセスは、プレイされているプラットフォームによって異なりますが、IPは変わりません。

// プレイヤーが購入可能なアイテムリストを確認する。
wortal_iap_get_catalog_async();

// アイテムを購入する。
purchaseConfig = {
    productID: "my_product_123",
}

wortal_iap_make_purchase_async(json_stringify(purchaseConfig));

リーダーボード

API リファレンス

Leaderboard APIを活用すると、プラットフォームのリーダーボード機能にアクセスが可能に。プレイヤーたちのスコアを追跡し、ランク付けすることができます。

// 上位10位にランクづけられたリーダーボードを取得する。
wortal_leaderboard_get_entries_async("global", 10, 0);

// プレーヤーのスコアをリーダーボードに追加する。
wortal_leaderboard_send_entry_async("global", 100, "details");

通知

API リファレンス

Notifications API は、プレイヤーに通知を送信するために使用されます。これは、ゲーム内のイベントをプレイヤーに通知したり、再びプレイするよう促したりするために使用できます。

// プレイヤーに送信する通知をスケジュールします。
payload = {
    title: "Your energy is full!",
    body: "Come back and play again.",
    mediaURL: "https://example.com/image.png",
    label: "resources-full",
    scheduleInterval: 300 // 5 minutes
}

wortal_notifications_schedule_async(json_stringify(payload));

// スケジュール設定された通知をキャンセルする。
wortal_notifications_cancel_async("notification-id-123");

プレイヤー

API リファレンス

現在のプレーヤーに関する詳細は、Player APIにて確認できます。

// プレイヤーの名前を取得する。
wortal_player_get_name();

// プレイヤーの友達で、ゲームをプレイことがある人のリストを取得する。
payload = {
    filter: "ALL",
    size: 20,
    hoursSinceInvitation: 4,
}

wortal_player_get_connected_players_async(json_stringify(payload));

セッション

API リファレンス

現在のセッションの状態に関する詳細は、Session API でアクセスできます。

// ゲームが開始されたエントリポイントを取得する。
wortal_session_get_entry_point_async();

Wortal コールバック

SDKでは、コールバックイベントがある、多くの非同期コールを使用します。これらの関数は、 the _async suffix でマークされています。これらのコールバックをリッスンし、 Async - Social イベントで適切に処理する必要があります。コールバックイベントは、以下SDK定義プロパティを持つマップとして返されます:

id: "wortal_callback", // Wortalのコールバックは常に同じ。
event, // コールバックのイベント名。
success, // エラーフラグ。”0” はエラーがあったことを意味し、”1” は呼び出しが成功したことを意味します。
payload, // オプションのリターンデータ。エラーが発生しなかった場合のみ存在し、そのタイプは呼び出しによって異なります。
error // エラーが発生した場合、エラーを含む JSON 文字列。

スタッツ

API Reference

Stats API は、プレーヤーのゲーム内の統計情報を追跡するために使用されます。

// プレーヤーの統計情報を掲載する。
wortal_stats_post_async("level 1", 100);

// 特定のレベルに関するプレイヤーの統計情報を取得する。
wortal_stats_get_async("level 1");

トーナメント

API Reference

Tournament API は、あなたのゲームのトーナメントを作成し、管理するために使用されます。

// Create a tournament.
const payload = {
    initialScore: 100,
    config: {
        title: "Level 1 Tournament",
    },
    data: {
        level: 1,
    },
};

wortal_tournament_create_async(json_stringify(payload));

// Post a score to a tournament.
wortal_tournament_post_score_async(200);

広告コールバックのハンドラの例:

var ID = async_load[? "id"];
if (ID != undefined) {
    if (ID == "wortal_callback") {
        switch (async_load[? "event"]) {
            case "ADS_BEFORE_AD_CALLBACK":
                // ここでゲームと音声を一時停止する。
                break;
            case "ADS_AFTER_AD_CALLBACK":
                // ここでゲームと音声を再開する。
                break;
            case "ADS_AD_DISMISSED_CALLBACK":
                // 広告がスキップされました - プレイヤーに報酬を与えない。
                break;
            case "ADS_AD_VIEWED_CALLBACK":
                // 広告を視聴したプレーヤーに報酬を与える
                break;
        }
    }
}

すべてのコールバックイベントとそのペイロードリスト:

INITIALIZE_CALLBACK // Void
START_GAME_CALLBACK // Void
ON_PAUSE_CALLBACK // Void
PERFORM_HAPTIC_FEEDBACK_CALLBACK // Void

ADS_BEFORE_AD_CALLBACK // Void
ADS_AFTER_AD_CALLBACK // Void
ADS_AD_DISMISSED_CALLBACK // Void
ADS_AD_VIEWED_CALLBACK // Void
ADS_NO_FILL_CALLBACK // Void

CONTEXT_CHOOSE_CALLBACK // Void
CONTEXT_CREATE_CALLBACK // Void
CONTEXT_SWITCH_CALLBACK // Void
CONTEXT_INVITE_CALLBACK // Void
CONTEXT_SHARE_CALLBACK // Number
CONTEXT_SHARE_LINK_CALLBACK // Void
CONTEXT_UPDATE_CALLBACK // Void

IAP_GET_CATALOG_CALLBACK // Product[]
IAP_GET_PURCHASES_CALLBACK // Purchase[]
IAP_MAKE_PURCHASE_CALLBACK // Purchase
IAP_CONSUME_PURCHASE_CALLBACK // Void

LEADERBOARD_GET_LEADERBOARD_CALLBACK // Leaderboard
LEADERBOARD_SEND_ENTRY_CALLBACK // LeaderboardEntry
LEADERBOARD_GET_ENTRIES_CALLBACK // LeaderboardEntry[]
LEADERBOARD_GET_PLAYER_ENTRY_CALLBACK // LeaderboardEntry
LEADERBOARD_GET_ENTRY_COUNT_CALLBACK // Number
LEADERBOARD_GET_CONNECTED_PLAYERS_ENTRIES_CALLBACK // LeaderboardEntry[]

NOTIFICATIONS_SCHEDULE_CALLBACK // NotificationScheduleResult
NOTIFICATIONS_GET_HISTORY_CALLBACK // ScheduledNotification[]
NOTIFICATIONS_CANCEL_CALLBACK // Boolean
NOTIFICATIONS_CANCEL_ALL_CALLBACK // Boolean

PLAYER_GET_DATA_CALLBACK // Developer-defined object
PLAYER_SET_DATA_CALLBACK // Void
PLAYER_GET_CONNECTED_PLAYERS_CALLBACK // Player[]
PLAYER_GET_SIGNED_PLAYER_INFO_CALLBACK // Object with id and signature
PLAYER_GET_ASID_CALLBACK // String
PLAYER_GET_SIGNED_ASID_CALLBACK // Object with id and signature
PLAYER_CAN_SUBSCRIBE_BOT_CALLBACK // Boolean
PLAYER_SUBSCRIBE_BOT_CALLBACK // Void

SESSION_GET_ENTRY_POINT_CALLBACK // String
SESSION_ON_ORIENTATION_CHANGE_CALLBACK // Orientation
SESSION_SWITCH_GAME_CALLBACK // Void

TOURNAMENT_GET_CURRENT_CALLBACK // Tournament
TOURNAMENT_GET_ALL_CALLBACK // Tournament[]
TOURNAMENT_POST_SCORE_CALLBACK // Void
TOURNAMENT_CREATE_CALLBACK // Tournament
TOURNAMENT_SHARE_CALLBACK // Void
TOURNAMENT_JOIN_CALLBACK // Void

Demo Project

SDK の呼び出しの実装例があるデモ・パッケージは、 here で確認できます。