PC SDK는 스토브 플랫폼의 게임지원서비스를 게임에 통합할 수 있도록 API를 제공합니다. PC SDK가 지원하는 게임지원서비스로는 스탯, 업적, 리더보드가 있습니다. 각각의 서비스는 아래와 같이 정의합니다.

PC SDK 게임지원서비스 API를 사용하기 위해서는 스튜디오를 통한 게임지원서비스의 메타데이터 등록이 선행되어야 합니다.

메타데이터 관리에 대한 내용은 게임지원서비스 스튜디오 가이드을 참고하시기 바랍니다.

1. Callback 설정

게임지원서비스 API를 사용하여 PC SDK와 커뮤니케이션 하기 위하여, 게임에서는 아래 StovePCCallbak 클래스의 콜백에 연결할 델리게이트 메서드를 정의해야 합니다.

public class StovePCCallback
{
    public StovePCErrorDelegate OnError;
    public StovePCInitializationCompleteDelegate OnInitializationComplete;
    public StovePCTokenDelegate OnToken;
    public StovePCUserDelegate OnUser;
    public StovePCOwnershipDelegate OnOwnership;

    // GetStat 처리가 완료됐을 때 호출되는 콜백
    public StovePCStatDelegate OnStat;

    // SetStat 처리가 완료됐을 때 호출되는 콜백
    public StovePCSetStatDelegate OnSetStat;

    // GetAchievement 처리가 완료됐을 때 호출되는 콜백
    public StovePCAchievementDelegate OnAchievement;

    // GetAllAchievement 처리가 완료됐을 때 호출되는 콜백
    public StovePCAllAchievementDelegate OnAllAchievement;

    // GetRank 처리가 완료됐을 때 호출되는 콜백
    public StovePCRankDelegate OnRank;
}

연동하기 메뉴의 2. Config, Callback 설정에서와 같이 StovePCCallback 클래스의 콜백에 델리게이드를 연결합니다.

// StovePCCallback 클래스 instance 생성
this.callback = new StovePCCallback
{
    OnError = new StovePCErrorDelegate(this.OnError),
    OnInitializationComplete = new StovePCInitializationCompleteDelegate(this.OnInitializationComplete),
    OnToken = new StovePCTokenDelegate(this.OnToken),
    OnUser = new StovePCUserDelegate(this.OnUser),
    OnOwnership = new StovePCOwnershipDelegate(this.OnOwnership),

    // 게임지원서비스
    OnStat = new StovePCStatDelegate(this.OnStat),
    OnSetStat = new StovePCSetStatDelegate(this.OnSetStat),
    OnAchievement = new StovePCAchievementDelegate(this.OnAchievement),
    OnAllAchievement = new StovePCAllAchievementDelegate(this.OnAllAchievement),
    OnRank = new StovePCRankDelegate(this.OnRank)
};

OnStatOnSetStatOnAchievementOnAllAchievementOnRank 콜백을 반드시 구현할 필요는 없습니다.

게임에서 사용하는 게임지원서비스에 맞게 필요한 콜백 메서드만 구현하여 연결하면 됩니다.

2. 사용자 스탯 업데이트 하기

StovePC.SetStat 메서드로 로그인한 사용자의 해당 게임에 대한 특정 스탯을 업데이트 합니다.

// 입력 파라미터
// string statId : 스튜디오에서 등록한 스탯 식별자
// int statValue : 업데이트할 스탯값
StovePCResult result = StovePC.SetStat("STAT_ID", STAT_VALUE);
if(result == StovePCResult.NoError)
{
    // 성공 처리
}

StovePC.SetStat 메서드가 정상적으로 처리되면 OnSetStat 콜백이 호출됩니다.

콜백에 전달되는 StovePCStatValue 구조체에는 현재 스탯값과 업데이트 상태를 나타내는 플래그 및 에러메세지가 포함되어 있습니다.

스탯값이 완전하게 반영되어 업데이트 되었다면 Updated 필드는 true, ErrorMessage 필드는 빈문자열이 포함되며, 스탯값이 부분적으로 업데이트 되었다면 Updated 필드는 true, ErrorMessage 필드는 "integer overflow" 와 같은 문자열이 포함됩니다.

예를들어 INCREMENT 유형 스탯의 현재값이 2,147,483,000라고 가정하고 StovePC.SetStat API를 통해 1,000을 합산하려 한다면 Int32 타입이 가질 수 있는 값의 범위를 벗어나게 되므로 업데이트를 요청한 값(1,000)의 일부만 반영되어 현재값이 Int32 타입의 최대값인 2,147,483,647로 업데이트 되는 경우 ErrorMessage 필드에 "integer overflow" 와 같은 문자열이 포함됩니다.