퀘스트는 준비된 과제 시스템입니다. 보상이 있는 일일, 주간, 1회성 퀘스트, 상자가 있는 포인트 트랙, 과제 묶음을 끝내면 받는 보너스. 퀘스트는 모든 새 프로젝트에 들어 있습니다. 진행도와 보상은 서버가 계산하고, 게임은 플레이어가 한 일을 알리고 결과를 보여 줄 뿐입니다.
플레이어가 보는 것
- 탭으로 된 주기: 일일, 주간, 업적, 다음 주기까지의 타이머.
- 과제마다 진행 바와 모든 목표가 나오는 상세 창.
- 끝난 과제를 위한 "모두 받기" 버튼.
- 포인트가 쌓이면 상자가 열리는 포인트 트랙.
- 끝난 과제가 기다릴 때 탭의 배지.
퀘스트의 구조
- 주기: 일정이 있는 과제 묶음. 일일, 주간, 상시 또는 기간 한정 이벤트. 주기는 단계별로 이어질 수 있습니다. 예를 들어 8주짜리 시즌에서 주마다 자기 과제와 포인트 트랙이 있습니다.
- 퀘스트: 각자 카운터가 있는 목표 하나 이상("몬스터 20마리 처치")과 보상. 퀘스트는 다른 퀘스트를 먼저 끝내도록 요구할 수 있고, 그렇게 연속 퀘스트를 만듭니다.
보상은 세 가지이며 모두 동시에 작동합니다:
- 퀘스트 보상: 모든 목표를 끝냈을 때.
- 포인트 트랙의 상자: 받은 퀘스트가 주기 포인트를 더하고, 필요한 합계에서 상자가 열립니다.
- 그룹 보너스: 한 그룹의 퀘스트를 정해진 수만큼 끝냈을 때.
진행도는 어디서 오나
| 출처 | 예 | 해야 할 일 |
|---|---|---|
| 게임이 알림 | 몬스터 처치, 레벨 클리어 | 일이 일어나는 곳에 코드 한 줄 |
| 서버가 셈 | 상점 구매, 다른 퀘스트 받기 | 없음, 이벤트만 고르기 |
| 서버 스크립트 | 클라우드 코드의 나만의 규칙 | 스크립트에서 호출 |
단계 01주기 만들기
대시보드를 열고 프로젝트를 고른 뒤 라이브 운영 → v2 → 퀘스트로 가세요. 주기 탭에서 주기를 만드세요. 예를 들어 일일 주기를 만들고, 원하면 상자가 있는 포인트 트랙을 추가하세요.
단계 02과제 추가하기
퀘스트 탭에서 퀘스트를 만드세요: 이름, 주기, 목표, 보상. 목표마다 진행도가 어디서 오는지 고르세요. 게임이
센다면 카운터 이름을 고르세요. 예: monsters_defeated.
페이지의 AI 버튼은 어시스턴트를 엽니다: "승리, 상점 구매, 영웅 강화에 대한 일일 퀘스트 세 개를 만들어 줘". 변경을 제안하면 확인한 뒤 저장을 누르세요.
단계 03게임이 진행도를 알리게 하기
게임이 세는 목표는 AI 코더에게 요청하세요: "몬스터를 처치할 때마다 monsters_defeated를 세 줘". 코드의 알맞은 곳에 호출을 넣어 줍니다. 방치형 RPG 템플릿은 이미 클리어한 스테이지와 영웅 강화를 알립니다.
개발자용
퀘스트는 @idosgames/core의 client.quest로 작동합니다. 진행도는 퀘스트가 아니라 카운터 이름으로 보냅니다. 서버가
그 카운터를 듣는 모든 진행 중인 과제에 전달합니다.
// 일이 일어나는 곳: 몬스터를 처치함
await client.quest.addQuestProgress('monsters_defeated', 1)
// 퀘스트 화면: 플레이어의 진행도, 주기는 알아서 넘어갑니다
const state = await client.quest.getUserQuestState()
// 끝난 퀘스트의 보상 받기
const claim = await client.quest.claimQuestReward('daily_win_20', 'daily')
if (!claim.ok) return showError(claim.error)addQuestProgress는 출처가 게임인 목표만 움직입니다. 서버가 직접 세는 목표는 거부됩니다.- 값을 "혹시 몰라서" 보내지 마세요. 목표에 호출당 최대치가 있으면 넘었을 때 플레이어 계정이 차단됩니다.
- 지급된 보상은 SDK 캐시의 잔액에 이미 반영되어 있어 다시 불러올 필요가 없습니다.
모든 필드는 SDK의 MCP 서버가 제공하는 quest-system 스킬에 설명되어 있습니다.
자주 묻는 질문
프로젝트에 퀘스트를 추가해야 하나요?
아니요. 퀘스트는 모든 새 프로젝트에 들어 있습니다. 대시보드에서 퀘스트가 하나라도 설정되면 퀘스트 탭이 플레이어에게 보입니다.
게임은 과제가 끝난 걸 어떻게 아나요?
진행도는 서버가 셉니다. 어떤 과제는 서버가 직접 세고(구매, 다른 퀘스트), 몬스터 처치 같은 게임 속 행동은 게임이 코드 한 줄로 서버에 알립니다.
배틀 패스를 만들 수 있나요?
주기의 포인트 트랙이 비슷한 메커니즘을 줍니다. 받은 퀘스트마다 포인트가 쌓이고, 트랙의 상자는 플레이어가 필요한 포인트에 이르면 열립니다.
함께 보기
- 게임 내 상점: 진열대, 상품, 가격iDos Games의 준비된 상점이 작동하는 방식: 상품이 바뀌는 진열대, 게임 재화나 실제 돈으로 매기는 가격, 무료 선물, 구매 한도, 그리고 대시보드에서 코드 없이 설정하는 방법.
- 게임 내 리더보드: 순위, 라운드, 보상iDos Games의 준비된 리더보드가 작동하는 방식: 라운드가 있는 보드, 순위와 점수에 따른 보상, 부풀린 점수 방지, 그리고 대시보드에서 설정하는 방법.
- 방치형 RPG 템플릿: 영웅, 웨이브, 보스iDos Games의 완성된 방치형 RPG 템플릿: 영웅이 몬스터 웨이브와 보스와 스스로 싸우고, 플레이어가 없을 때도 골드가 쌓이고, 능력치는 골드로 강화합니다. 무엇이 들어 있고 내 게임으로 어떻게 바꾸는지.
- 새 프로젝트에 포함된 것iDos Games의 모든 새 프로젝트는 로그인, 로비, 준비된 시스템 여섯 개로 시작합니다. 상점, 리더보드, 이벤트, 멀티플레이 같은 시스템은 앱에 필요할 때 추가됩니다.
나만의 게임을 만드세요
아이디어를 한 문장으로 설명하면 AI 코더가 만들어 주고, 게임은 고유 링크로 바로 공개됩니다.