PlayDrop logoPlayDrop Studio
만들기플레이 교환수익배우기커넥터에셋커뮤니티지원
PlayDrop logoPlayDrop Studio
만들기플레이 교환수익배우기커넥터에셋커뮤니티지원
로그인
업적
문서

시작하기

개요첫 게임 만들기PlayDrop 게임자주 묻는 질문

Cloud로 만들기

Cloud 제작요금제 및 생성 횟수

AI 앱 연결하기

전체 커넥터ClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

게시와 공유

AI 앱에서 게시하기간단한 HTML 게임패키징과 .play게시와 가져오기게임 파일공개 범위와 노출등록 정보 아트와 동영상장르와 태그현지화인스턴트 게임

게임 경험

로딩, 일시 정지, 오디오전체 화면과 안전 영역클라우드 저장로컬 파티와 컨트롤러

함께 플레이하기

공유, 친구, 초대순위표업적온라인 파티와 음성 채팅실시간 게임 서버

수익 얻기

수익화크레딧 및 보상

에셋

게임 에셋AI 에셋 생성사용자 지정 형식과 플레이어 창작물

참조

클라이언트 SDK서버 SDKcatalogue.json오류와 복구문제 해결
문서업적
함께 플레이하기

PlayDrop 게임의 업적

catalogue.json에 아이콘이 있는 일반 업적과 누적 업적을 선언하고, sdk.achievements로 잠금 해제하고 진행 상황을 기록하세요.

업적은 게임 안의 목표를 나타내며, 플레이어가 PlayDrop에서 보는 아이콘과 설명이 함께 표시됩니다. 게스트와 로그인한 플레이어 모두 사용할 수 있습니다.

업적 선언하기

json
{
  "achievements": [
    { "key": "first-win", "displayName": "First flag", "description": "Reach the flag once",
      "kind": "STANDARD", "icon": "achievements/first-win.png" },
    { "key": "collector", "displayName": "Collector", "description": "Collect 100 stars",
      "kind": "INCREMENTAL", "maxProgress": 100, "icon": "achievements/collector.png" },
    { "key": "secret-room", "displayName": "Secret room", "description": "Find the hidden room",
      "kind": "STANDARD", "hidden": true, "icon": "achievements/secret-room.png" }
  ]
}
  • key는 순위표 키와 같은 형식을 따릅니다.
  • kind는 STANDARD(한 번 잠금 해제) 또는 INCREMENTAL(진행도가 양의 정수인 maxProgress에 도달하면 잠금 해제)입니다.
  • icon은 패키지 안의 PNG 파일입니다. 작은 크기에서도 잘 보이는 선명한 정사각형 이미지를 사용하세요.
  • hidden: true를 설정하면 잠금 해제될 때까지 이름과 설명이 공개되지 않습니다.

게시된 키는 삭제할 수 없으며 kind, maxProgress, hidden도 바꿀 수 없습니다. 업적을 더 이상 쓰지 않으려면 "status": "RETIRED"로 종료하세요.

잠금 해제와 진행 상황 기록하기

js
await sdk.achievements.unlock("first-win");
await sdk.achievements.setProgressAtLeast("collector", starsCollected);

const { achievements } = await sdk.achievements.list();
const { achievement } = await sdk.achievements.get("collector");
  • setProgressAtLeast에는 증가량이 아니라 지금까지의 누계 값을 넘기세요. 진행도는 늘어나기만 하고 maxProgress가 상한이며, 거기에 도달하면 잠금 해제됩니다.
  • 두 호출 모두 { accepted, changed, unlocked, progress, unlockedAt, achievement }를 반환합니다. 새로 바뀐 것이 없으면 changed가 false이므로 직접 만든 알림을 한 번만 보여 줄 수 있습니다.
  • list({ includeHiddenDefinitions: true, includeRetired: true })는 숨김 업적과 종료된 업적의 정의도 포함합니다.

잠금 해제는 실제 플레이 중에만 하고, 미리 보기나 캡처 중에는 절대 하지 마세요. 플레이어 세션이 전혀 없으면 호출은 완료되지만 저장되지 않습니다.

좋은 업적 만들기

게임을 익히게 해 주는 초반 업적과 장기 목표를 섞으세요. 보상이 아니라 행동을 이름으로 붙이세요. "피해를 입지 않고 승리하기"는 무엇을 해야 하는지 알려 줍니다. 잘 고민한 업적 10여 개가 사소한 업적 100개보다 낫습니다.

관련 가이드

  • 순위표catalogue.json에 순위표를 선언하고, sdk.leaderboards로 점수를 제출하고, 상위 순위와 플레이어 주변 순위를 보여 주세요. 점수 유형, 제한, 업데이트 규칙도 담았습니다.
  • 클라우드 저장sdk.me.appData와 sdk.me.updateAppData로 게스트와 로그인한 플레이어의 진행 상황을 저장하고 불러오세요. 쓰기, 미리 보기, 오프라인 플레이 규칙도 담았습니다.
  • catalogue.jsonPlayDrop 게임이 쓰는 catalogue.json 필드: 식별 정보, 등록 정보, 플레이 방식, 화면, 로그인, 인스턴트, 미리 로드, 미디어, 번역, 점수, 서버.
이전PlayDrop 게임의 순위표다음PlayDrop 게임의 온라인 파티와 음성 채팅
Markdown 보기
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

이 페이지의 내용

업적 선언하기잠금 해제와 진행 상황 기록하기좋은 업적 만들기
Markdown 보기