Skip to content

Wortal SDK for Cocos Creator 2.x

설치하기

  • Cocos Store에서 확장 프로그램 설치하기

빌드하기

Wortal SDK를 사용하려면 웹-모바일 템플릿으로 빌드해야 합니다. 이 템플릿은 익스텐션에 포함되어 있으며, 필요한 모든 설정을 처리합니다.

초기화

  1. 게임 초기화 코드의 가능한 빠른 단계에서 wortal.initializeAsync()를 호출하고, 게임 로딩이 완료되어 플레이할 수 있는 상태가 되면 wortal.startGameAsync()를 호출한다.

  2. 초기화 코드에서 게임 로딩 진행 상황을 보고한다. 진행률이 100%가 될 때까지 게임이 시작되지 않습니다

wortal.initializeAsync().then(() => {
    // SDK 사용 가능.
    // 게임 로딩이 완료될 때까지 기다린다.
    wortal.setLoadingProgress(100);
    wortal.startGameAsync();
});

사용방법

광고

API 레퍼런스

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

// 플레이어가 레벨을 달성.
wortal.ads.showInterstitial('next', 'NextLevel', pauseGame, resumeGame);

// 플레이어가 게임을 일시 중지했습니다.
wortal.ads.showInterstitial('pause', 'PausedGame', pauseGame, resumeGame);

// 플레이어가 인앱 결제 페이지에 접속합니다.
wortal.ads.showInterstitial('browse', 'BrowseShop', pauseAudio, resumeAudio);

리워드 광고는 플레이어가 동영상 광고를 끝까지 시청하는 등의 조건을 충족할 경우 보상을 제공하는 광고 유형입니다. 반드시 플레이어에게 알리고 허락을 받은 후 표시해야 합니다.

// 이 예시에서는 광고 조건 달성 여부와 상관없이 게임이 진행됩니다.
// 예: 플레이어는 광고를 시청하여 보너스 코인을 획득할 수 있지만, 그 결과와 상관없이 게임은 계속 진행됩니다.
wortal.ads.showRewarded('BonusCoins', pauseGame, resumeGame, skipBonus, addBonusCoins);

// 이 예시에서는 광고 조건 달성 여부와 관련하여 게임이 진행됩니다.
// 예: 게임오버 시 플레이어는 광고를 시청하여 부활할 수 있지만, 광고를 건너뛰면 해당 레벨을 잃게 됩니다.
wortal.ads.showRewarded('ReviveAndContinue', pauseAudio, resumeAudio, endGame, continueGame);

참고: 플레이어는 adViewed 콜백을 통해서만 보상을 받을 수 있습니다.

애널리틱스

API 레퍼런스

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

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

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

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

업적

API 레퍼런스

Achievements API는 플레이어의 게임 내 진행 상황을 추적하고, 과제 완료에 대한 보상을 제공하는 데 사용됩니다.

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

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

컨텍스트

API 레퍼런스

컨텍스트 API는 플레이어끼리 연결하여 게임 섹션 참여, 콘텐츠 공유, 메시지 교환 등에 활용할 수 있습니다.

// 친구를 게임에 초대합니다. 플레이어의 현재 컨텍스트를 전환하지 않는다.
wortal.context.inviteAsync({
    image: 'data:base64Image',
    text: 'Invite text',
    cta: 'Play',
    data: { exampleData: 'yourData' },
}).then(() => console.log("Invite sent!"))

// 이 게임의 활동을 친구들과 공유하세요.
wortal.context.shareAsync({
    image: 'data:base64image',
    text: 'Share text',
    cta: 'Play',
    data: { exampleData: 'yourData' },
}).then(result => console.log(result));

인앱결제

API 레퍼런스

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

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

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

리더보드

API 레퍼런스

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

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

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

알림

API 레퍼런스

Notifications API는 플레이어에게 알림을 보내는 데 사용됩니다. 플레이어에게 게임 내 이벤트를 알리거나 다시 플레이하도록 유도하는 데 사용할 수 있습니다.

// 플레이어에게 보낼 알림을 예약합니다.
wortal.notifications.scheduleAsync({
    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);
});

// 예약된 알림을 취소합니다.
wortal.notifications.cancelAsync('notification-id-123')
    .then((result) => {
        console.log(result);
    });

플레이어

API 레퍼런스

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

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

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

세션

API 레퍼런스

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

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


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

통계

API 레퍼런스

Stats API는 플레이어의 통계를 추적하고 높은 점수를 기록하는 데 사용됩니다.

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

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

토너먼트

API 레퍼런스

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

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

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

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