커스텀 게임 대시보드 스키마
마켓플레이스 게임은 각 맞춤화 프리셋이 어떤 필드를 설정할 수 있는지 선언하는 caputchin.json 매니페스트를 냅니다. 커스텀 게임에는 매니페스트가 없으니, 대신 당신이 그 필드 스키마를 대시보드에서 선언합니다. 당신은 커스텀 게임마다, 축마다 그것을 한 번 정의한 다음, 그것을 상대로 프리셋을 작성합니다; 거기서부터 그것은 같은 요금제 등급에서 마켓플레이스 게임과 정확히 똑같이 해소되어 적용됩니다.
이 페이지는 그 스키마의 레퍼런스입니다. 게임 자체를 작성하는 것은 자체 호스팅 게임 빌드하기를; 고객 측 등록 흐름은 커스텀 게임을 보세요.
축마다 하나의 스키마
커스텀 게임의 스키마는 축마다 선언되고, 세 축은 독립적입니다:
| 축 | 무엇을 맞춤화하는가 | 스키마 |
|---|---|---|
| 로케일 | 게임의 번역된 문자열. | 암묵적: 로케일 필드는 늘 평이한 텍스트라, 선언할 것이 없습니다; 문자열 프리셋을 직접 작성합니다. |
| 스킨 | 색상, 시각 자산, 그리고 표현 손잡이. | 스킨 프리셋이 설정할 수 있는 색상, 자산, 스칼라(토글 / 숫자 / 범위 / 선택) 필드를 선언합니다. |
| 구성 | 게임플레이 옵션(난이도, 카운트, 토글). | 구성 프리셋이 설정할 수 있는 옵션 필드를 선언합니다. |
당신은 게임이 실제로 쓰는 축에만 스키마를 정의합니다. 스키마가 없는 축은 그저 그 종류의 맞춤화 가능한 필드가 없습니다.
필드 타입
스키마는 이름 붙은 필드 묶음이며, 각각 타입을 가집니다. 필드 타입은 나머지 맞춤화가 쓰는 것과 같은 묶음입니다; 맞춤화 스키마 레퍼런스가 모든 타입과 그것이 받는 값의 권위 있는 설명입니다. 요약하면:
| 타입 | 값 |
|---|---|
string | 자유 텍스트. |
boolean | true 또는 false. |
number | 임의의 유한한 숫자. |
range | 최솟값과 최댓값 안의 숫자. |
list | 고정된 옵션 묶음 중 하나. |
link | http/https URL. |
color | hex 또는 rgb() 색상. |
image | 이미지 URL 또는 업로드. |
audio | 오디오 URL 또는 업로드. |
video | 비디오 URL 또는 업로드. |
로케일은 string만 씁니다(그리고 해소기는 로케일 스키마를 전혀 검증하지 않습니다). 스킨과 구성은 작성된 값을 당신이 선언한 스키마를 상대로 검증하고 그 타입에 맞지 않는 값을 떨굽니다.
범위: 스키마가 사는 곳
커스텀 게임 스키마는 재정의와 같은 범위 모델인 팀 또는 사이트 키 범위에서 설정됩니다. 팀과 그 사이트 키 중 하나가 같은 게임과 축에 대해 스키마를 선언하면, 그 축에 대해 사이트 키의 스키마가 팀의 것을 대체합니다(필드별 병합이 아니라 축 전체 대체). 이것은 나머지 맞춤화가 가장 구체적인 것이 이깁니다로 해소되는 방식을 비춥니다.
자산은 절대적입니다
플레이 가능한 게임을 당신이 직접 호스팅하므로, 상대 자산 경로를 상대로 해소할 플랫폼 번들이 없습니다. 스킨 프리셋의 어떤 image, audio, video 값이든 절대 URL이어야 합니다. (마켓플레이스 게임은 번들 상대 경로를 쓸 수 있습니다; 커스텀 게임은 못 씁니다.)
프리셋이 게임에 닿는 방식
스키마와 프리셋이 존재하면, Caputchin은 각 방문자에 대해 축마다 하나의 프리셋을 해소하고(사이트 키, 팀, 당신의 기본값에 걸쳐 가장 구체적인 것이 이깁니다) 해소된 값을 게임 팩토리의 컨텍스트를 통해 당신의 게임에 전달합니다: ctx.locale, ctx.skin, ctx.config. 당신의 게임은 그 객체들에서 자기 자신의 필드 이름을 읽습니다. 스키마는 대시보드 편집기가 맞는 입력을 보이게 하고, 값이 방문자에 닿기 전에 그것을 검증하는 것입니다.
함께 보기
- 맞춤화 스키마 레퍼런스: 모든 필드 타입과 그 받는 값, 전부.
- 커스텀 게임: 커스텀 게임 등록과 그 스키마 정의하기.
- 자체 호스팅 게임 빌드하기: 팩토리 컨텍스트에서 해소된 프리셋 읽기.
- 팀 재정의: 스키마가 따르는 범위 모델.