Skip to content

PlayCanvas용 Wortal SDK

설치하기

  1. Wortal 스크립트를 게임에 추가한다: 1. Wortal SDK demo project에 포함된 폴더 2. 사용 가능한 GitHub
  2. wortal.jsLoading TypeAfter Engine으로 설정하기

Loading Type Settings

초기화

  • 게임 초기화 코드의 가능한 빠른 단계에서 wortal.initializeAsync()를 호출하고, 게임 로딩이 완료되어 플레이할 수 있는 상태가 되면 wortal.startGameAsync()를 호출한다.
  • 초기화 코드에서 게임 로딩 진행 상황을 보고한다. 진행률이 100%가 될 때까지 게임이 시작되지 않습니다.

사용방법

광고

API 레퍼런스

인터스티셜 광고는 레벨을 달성하거나 전환하는 사이사이에 표시할 수 있습니다.

// 플레이어가 레벨을 달성.
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 콜백을 통해서만 보상을 받을 수 있습니다.

애널리틱스

API 레퍼런스

Wortal의 애널리틱스 API를 활용하여 게임 이벤트를 추적하고 플레이어의 게임 내 활동을 파악할 수 있습니다. 이 데이터는 Wortal의 대시보드에서 확인할 수 있습니다.

// 레벨 시작을 기록합니다.
wortalAnalyticsLogLevelStart('Level 3');

// 레벨의 끝을 기록합니다. 이름이 일치하면 게임 시간을 기록한다.
// logLevelStart()의 마지막 호출명
wortalAnalyticsLogLevelEnd('Level 3', '100', true);

// 플레이어의 게임 내 선택 행동을 기록합니다. 게임의 밸런스를 맞추는 데 도움이 됩니다.
// 그리고 플레이어가 많이 이용하는 콘텐츠를 파악할 수 있습니다.
wortalAnalyticsLogGameChoice('Character', 'Blue');

업적

API 레퍼런스

Achievements API는 플레이어의 게임 내 진행 상황을 추적하는 데 사용됩니다. 플레이어가 특정 작업을 완료하거나 특정 마일스톤에 도달했을 때 보상을 제공하는 데 사용됩니다.

// 업적 잠금 해제하기.
wortalAchievementsUnlockAchievementAsync('achievementID')
    .then(() => console.log("Achievement unlocked!"));

// 플레이어의 업적 진행상황을 조회할 수 있습니다.
wortalAchievementsGetAchievementsAsync()
    .then(achievements => console.log(achievements));

컨텍스트

API 레퍼런스

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));

인앱결제

API 레퍼런스

인앱 결제(IAP) API는 플랫폼에서 게임 내 트랜잭션이 발생할 때 사용됩니다. 이 프로세스는 플레이 중인 플랫폼에 따라 다르지만, IP는 동일합니다.

// 플레이어가 구매할 수 있는 아이템 목록 확인.
wortalIAPGetCatalogAsync()
    .then(products => console.log(products));

// 아이템 구매하기.
wortalIAPMakePurchaseAsync({
    productID: 'my_product_123',
}).then(purchase => console.log(purchase));

리더보드

API 레퍼런스

리더보드 API를 활용하면 플랫폼의 리더보드 기능에 접근할 수 있습니다. 플레이어들의 점수를 추적하고 순위를 매길 수 있습니다

// 상위 10위 안에 든 리더보드를 획득할 수 있다.
wortalLeaderboardGetEntriesAsync('global', 10)
    .then(entries => console.log(entries));

// 플레이어의 점수를 리더보드에 추가합니다.
wortalLeaderboardSendEntryAsync('global', 100);

알림

API 레퍼런스

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);
    });

플레이어

API 레퍼런스

현재 플레이어에 대한 자세한 내용은 Player API에서 확인할 수 있습니다.

// 플레이어의 이름을 가져옵니다.
wortalPlayerGetName();

// 플레이어의 친구 중 게임을 해본 적이 있는 사람들의 목록을 가져옵니다.
wortalPlayerGetConnectedPlayersAsync({
    filter: 'ALL',
    size: 20,
    hoursSinceInvitation: 4,
}).then(players => console.log(players.length));

세션

API 레퍼런스

현재 세션 상태에 대한 자세한 내용은 Session API에서 확인할 수 있습니다.

// 게임이 시작된 진입점을 얻는다.
wortalSessionGetEntryPointAsync()
        .then(entryPoint => console.log(entryPoint));

// 초대 및 공유를 통해 진입점 데이터를 가져옵니다.
// 이 기능은 플레이어가 어디에서 왔는지 추적하는 데 도움이 됩니다.
// 초대받은 플레이어에게 보상을 제공합니다.
const data = wortalSessionGetEntryPointData();
console.log(data);

통계

API 레퍼런스

Stats API는 플레이어의 게임 내 통계를 추적하는 데 사용됩니다.

// 각 레벨마다 플레이어의 최고 점수를 획득합니다.
wortalStatsGetStatsAsync("level1")
    .then(stats => console.log(stats.value));

// 게임의 최고 점수를 설정합니다.
wortalStatsPostStatsAsync("level1", 1000)
    .then(() => console.log("High score set!"));

토너먼트

API 레퍼런스

Tournament API는 게임의 토너먼트를 생성하고 관리하는 데 사용됩니다.

// 토너먼트 생성하기.
const payload = {
    initialScore: 100,
    config: {
        title: "Level 1 Tournament",
    },
    data: {
        level: 1,
    },
};

wortalTournamentCreateAsync(payload)
    .then(tournament => console.log(tournament.payload["level"]));

// 토너먼트에서 점수를 기록한다.
wortalTournamentPostScoreAsync(200)
    .then(() => console.log("Score posted!"));