업적과 순위표
순위표
순위표 생성
본 섹션에서는 신규 게임 또는 기존 게임에 순위표를 생성하는 방법을 설명합니다. 최대 20개까지 생성할 수 있으며, 각 게임 내 순위표 ID는 고유해야 합니다.
게임에 순위표를 생성하려면 해당 게임에 해당하는 GameRank 관리 페이지로 이동한 후,[확장 > Add]를 선택하고 순위표 생성 버튼을 클릭하십시오.
그런 다음,이 순위표에 필요한 정보를 입력하기만 하면 됩니다.
점수 형식
숫자 순위표는 점수를 숫자 형식으로 표시합니다. 이러한 점수는 정수 또는 부동 소수점으로 표시할 수 있으며,예를 들어
3.14159
、3141.59
또는314159
입니다. 숫자의 값이 너무 크지 않도록 주의해야 하며,현재 단정밀도만 지원합니다.시간 순위표는 시간/분/초/100분의 1초 형식으로 점수를 표시하거나,전통적인 시계 형식(예: HH:MM:SS)으로 표시합니다. 예를 들어
66032
、1:06:3
입니다.형식화된 점수는 사용자 정의 형식으로 점수를 표시합니다. 통화 단위의
$19.95
를 단위로 점수를 제출합니다. 예를 들어$19.95
입니다.
배경 이미지 가이드
순위표의 배경 이미지는 1024 x 1024 크기의 JPEG 파일로 제작해야 합니다. 선택 사항으로,업로드하지 않으면 플랫폼의 기본 이미지를 사용합니다. 모든 언어 지역에서 동일한 배경 이미지를 사용하므로,이미지에 텍스트 또는 현지화된 내용을 추가하지 않는 것이 좋습니다.
순위표 조정
순위표 목록에 대해 개발자는 이상 행동을 하는 플레이어에 대해 다음과 같은 처리를 할 수 있습니다:
- 삭제: 플레이어의 현재 표시된 순위표 데이터를 제거합니다.
- 블랙리스트 추가: 이후 해당 플레이어가 현재 게임의 모든 순위표에 참여할 자격을 취소합니다. 블랙리스트에 추가한 후,모든 순위표에서 추가된 블랙리스트 계정 목록을 확인할 수 있으며,플레이어 계정을 블랙리스트에서 제외할 수 있습니다.
- 데이터 편집: 클릭하여 순위표 편집 페이지를 엽니다.
- 순위표 삭제: 클릭하여 지정된 순위표 목록을 삭제합니다.
순위표 데이터
플레이어의 게임 내 데이터가 정의된 순위표에 진입한 경우,순위표 데이터 제출 인터페이스를 호출하여 해당 순위표 데이터를 Jogos 백엔드 서비스에 제출할 수 있으며,플레이어는 Jogos 플랫폼에서 순위표 창을 열어 게임의 순위표와 자신의 순위를 확인할 수 있습니다.
참고: 인터페이스 매개변수中的 순위표 이름과 순위표 데이터는 반드시 개발자 센터에서 정의한 이름과 데이터 유형과 일치해야 합니다.
개발자 백엔드에서는 다음 세 가지 유형의上报 데이터 유형을 생성할 수 있습니다:
- 숫자 점수: number
- 시간 점수: time
- 형식화된 점수: 사용자 정의
上报 데이터는 키-값 쌍이며,값은 숫자、문자열、날짜 중 하나만 가능하며,개발자 센터에서 구성한 데이터 형식과 일치해야 합니다.
순위표 데이터 제출
순위표 데이터 제출: JOGOS_SDK.game.commitRankingData
== HTML5
/**
* 순위표 데이터 제출
*
* @param rankingName 순위표 ID
* @param data 순위표 데이터
*/
await window.JOGOS_SDK.game.commitRankingData(rankingName: string, data: { [key: string]: any });
== Cocos
/**
* 순위표 데이터 제출
*
* @param rankingName 순위표 ID
* @param data 순위표 데이터
*/
await JOGOS_SDK.game.commitRankingData(rankingName: string, data: { [key: string]: any });
== Unity
/// <summary>
/// 순위표 데이터 제출
/// </summary>
/// <param name="rankingName"></param> 순위표 ID
/// <param name="rankingData"></param>上报 데이터
/// <param name="action"></param>上报 성공 여부 콜백
public void CommitRankingData(string rankingName, string rankingData, Action<bool> action)
//예시:
JsonObject json = new JsonObject();
json["number"] = 1;
JogosSDK.Game.CommitRankingData("LevelRank", json.ToString(), (isSucc) =>
{
Debug.Log("CommitRankingData isSucc:"+ isSucc);
});
:::
순위표 인터페이스 열기:
순위표 인터페이스 열기: JOGOS_SDK.game.openRankingDialog 특정 순위표(모든 순위표가 아닌)를 표시하려는 경우,이 메서드에 순위표 이름(개발자 백엔드에서 생성한 이름과 일치하는)을 전달할 수 있습니다.
== HTML5
/**
* 순위표 창 열기
*
* @param rankingName 순위표 이름
*/
await window.JOGOS_SDK.game.openRankingDialog(rankingName: string);
== Cocos
/**
* 순위표 창 열기
*
* @param rankingName 순위표 이름
*/
await JOGOS_SDK.game.openRankingDialog(rankingName: string);
== Unity
/// <summary>
/// 순위표 인터페이스 열기
/// </summary>
/// <param name="rankingName"></param> 순위표 이름
/// <param name="action"></param> 인터페이스 열기 콜백
public void OpenRankingDialog(string rankingName, Action<bool> action)
//예시:
JogosSDK.Game.OpenRankingDialog("LevelRank", (isSucc) =>
{
Debug.Log("OpenRankingDialog isSucc:" + isSucc);
});
:::
업적接入
플레이어가 특정 업적을达成한 경우,플레이어 업적 데이터 제출 인터페이스를 호출하여 해당 데이터를 Jogos 백엔드 서비스에 제출할 수 있으며,플레이어는 Jogos 플랫폼에서 플레이어 업적 창을 열어达成한 업적을 확인할 수 있습니다.
참고: 인터페이스 매개변수中的 업적 이름은 개발자 센터에서 정의한 이름으로,반드시 일치해야 합니다.
업적이 단계별 업적이 아닌 경우:
- 해당 업적을达成했을 때만上报해야 하며,즉 업적에는 진행률 표시가 없고,上报하면 업적达成을 의미합니다.
- 업적이 단계별 업적으로 설정된 경우: 진행률 progress는 해당 단계 ID에 맞게上报해야 하며,즉 단계 2를 완료하면 progress = 2로上报합니다.
업적 생성
개발자 백엔드의 GameService 서비스 - 업적 페이지에서 업적 생성을 선택하십시오.
업적 추가 페이지에서 양식을 작성하십시오.
각 업적에는 다음과 관련된 기본 요소가 있습니다:
- 업적 ID: 게임 플레이어의上报와 웹사이트에서 업적을 표시하기 위해 사용되는 영숫자 조합을 지원합니다. 이 값은 동일한 게임 내에서 고유해야 합니다.
- 이름: 업적의 이름(예: "Pieman")입니다.
- 업적 조건: 업적 조건 설명입니다. 일반적으로 이 값은 플레이어에게 업적을达成하는 방법을 알려줍니다.
- Icon: 업적과 관련된 정사각형 아이콘입니다. 잠금 해제되지 않은 이미지와 잠금이 해제된 이미지를 업로드해야 합니다.
- 업적 유형(*Achievement Types),3가지 유형을 지원하며,단일 선택이며,프론트엔드에서는 유형 순서에 따라 업적 목록을 분리하여 표시합니다:
- 초급 탐험 업적(Beginner's Exploration Achievements),최대 900개 생성할 수 있습니다.
- 중급 도전 업적(Intermediate Challenge Achievements),최대 50개 생성할 수 있습니다.
- 고급 영예 업적(Advanced Glory Achievements),최대 10개 생성할 수 있습니다.
상태: 업적은 다음 세 가지 다른 상태 중 하나에 있을 수 있습니다:
- 숨겨진 업적은 업적의 세부 정보가 플레이어에게 숨겨짐을 의미합니다. Jogos 게임 서비스는 숨겨진 상태의 업적에 대해 일반적인 자리 표시자 설명과 아이콘을 제공합니다. 특정 업적에 게임 스포일러(예: "당신이 항상 유령이었다는 것을 발견하세요!")를 너무 일찍 표시하고 싶지 않은 경우,숨겨진 상태로 설정하는 것이 좋습니다.
- 공개된 업적은 플레이어가 해당 업적을 알고 있지만 아직达成하지 않았음을 의미합니다. 대부분의 업적은 처음부터 공개된 상태에 있습니다.
- 达成된 업적은 플레이어가 해당 업적을 성공적으로达成했음을 의미합니다. 플레이어는 오프라인 상태에서도 업적을达成할 수 있습니다. 게임이 온라인 상태가 되면,Jogos 게임 서비스와 동기화되어 업적的达成 상태가 업데이트됩니다.
단계별 업적
- 업적을 표준 또는 단계별 업적으로 지정할 수 있습니다. 일반적으로 단계별 업적은 플레이어가 긴 시간에 걸쳐 점차达成해야 하는 업적을 의미합니다. 플레이어가 단계별 업적에서 진전을 이루었을 때,Jogos 게임 서비스에 플레이어가 완료한 진행률을 보고할 수 있습니다.
- Jogos 서비스는 진행률 정보를 추적하며,플레이어가 업적达成에 필요한 조건을 충족했을 때 게임에 알리고,플레이어에게 목표达成까지 남은 거리를 알려줍니다.
아이콘 가이드
아이콘은 512 x 512 크기의 PNG、JPEG 또는 JPG 파일로 제작해야 합니다.达成된 업적의 아이콘만 제공하면 됩니다. 사용자가 표시된 업적과达成된 업적을 구분할 수 있도록 업적 아이콘에 색상 요소를 포함하는 것이 좋습니다. 모든 언어 지역에서 동일한 아이콘을 사용하므로,아이콘에 텍스트 또는 현지화된 내용을 추가하지 않는 것이 좋습니다.
업적上报接口
== HTML5
/**
* 플레이어 업적 데이터 제출
*
* @param name 업적 ID
* @param progress 완료 진행률
* @param hidden 숨김 표시
*/
await window.JOGOS_SDK.game.commitAchievementsData(name: string, progress: number, hidden: boolean);
== Cocos
/**
* 플레이어 업적 데이터 제출
*
* @param name 업적 ID
* @param progress 완료 진행률
* @param hidden 숨김 표시
*/
await JOGOS_SDK.game.commitAchievementsData(name: string, progress: number, hidden: boolean);
== Unity
/// <summary>
/// 플레이어 업적 데이터 제출
/// </summary>
/// <param name="name"></param> 업적 ID
/// <param name="progress"></param> 진행률
/// <param name="hidden"></param> 숨겨진 업적인지 여부
/// <param name="action"></param>上报 성공 여부 콜백
public void CommitAchievementData(string name, int progress, bool hidden, Action<bool> action)
//예시:
JogosSDK.Game.CommitAchievementData("level", 1, false,(isSucc)=>
{
Debug.Log("CommitAchievementData level,isSucc:"+ isSucc);
});
업적이 단계별 업적으로 설정된 경우: 해당 단계별 업적上报:
JogosSDK.Game.CommitAchievementData("Event", 1, false,null);
해당 단계별 업적을上报하면서 총 업적 진행률도上报해야 하는 경우: 진행률 progress: 단계별 업적 수가 3개이고,이미 완료한 수가 2개인 경우,진행률은 2로 보고하며,순서는 상관없습니다.
JogosSDK.Game.CommitAchievementData("Root", 2, false,null);
:::
업적 인터페이스 열기:
Jogos 플랫폼은 플레이어 업적 창을 열 수 있는 기능을 제공하며,필요한 경우 게임 내에서 인터페이스를 호출하여 플레이어 업적 창을 열 수도 있습니다.
== HTML5
// 플레이어 업적 창 열기
await window.JOGOS_SDK.game.openAchievementsDialog();
== Cocos
// 플레이어 업적 창 열기
await JOGOS_SDK.game.openAchievementsDialog();
== Unity
/// <summary>
/// 업적 인터페이스 열기
/// </summary>
/// <param name="action">인터페이스 열기 콜백</param>
public void OpenAchievementsDialog(Action<bool> action)
//예시:
JogosSDK.Game.OpenAchievementsDialog((isSucc) =>
{
Debug.Log("OpenAchievementsDialog isSucc:"+ isSucc);
});
:::