# PlayDrop의 인스턴트 게임과 일반 게임

PlayDrop 게임이 인스턴트가 되는 조건: 세로 플레이, 게스트 접근, 최대 10 MiB의 시작 파일, 2초 안에 시작. 일반 게임과의 차이도 알아보세요.

Source: https://www.playdrop.ai/ko/create/learn/instant-games

인스턴트 게임은 PlayDrop 휴대폰 앱의 인스턴트 피드에 나오는 짧은 세로형 게임입니다. 플레이어가 화면을 넘기면 다음 게임이 이미 실행되고 있습니다. 그 밖의 모든 게임은 게임 페이지, 검색, 링크에서 여는 일반 게임입니다. 둘 다 같은 방식으로 게시되며, 인스턴트는 버전의 속성입니다.

## 인스턴트와 일반

| | 인스턴트 | 일반 |
|---|---|---|
| 플레이되는 곳 | 인스턴트 피드, 그리고 일반 게임이 플레이되는 모든 곳 | 홈, 검색, 게임 페이지, 링크 |
| 화면 방향 | 세로 우선 | 선언한 모든 화면 |
| 로그인 | 게스트도 플레이 가능 | 모든 `authMode` |
| 시작 | 2초 안에 플레이 가능 | 제한은 없지만 빠를수록 좋음 |
| 시작 파일 | 최대 10 MiB | 시작 제한 없음 |
| 배지 | 번개 배지 | 없음 |

인스턴트 기준을 충족하지 못한 게임도 일반 게임으로 게시됩니다.

## 요구 사항

```json
{
  "primarySurface": "MOBILE_PORTRAIT",
  "surfaceTargets": { "desktop": true, "mobileLandscape": false, "mobilePortrait": true },
  "authMode": "OPTIONAL",
  "instant": true,
  "prefetch": { "required": ["game.js", "atlas.png"], "optional": ["music.mp3", "levels/world-2.json"] }
}
```

- `primarySurface`가 `MOBILE_PORTRAIT`이고 게임이 세로 방향 휴대폰을 지원해야 합니다.
- 게스트가 플레이할 수 있도록 `authMode`가 `OPTIONAL` 또는 `NONE`이어야 합니다.
- 시작 파일은 최대 10 MiB입니다. 시작 페이지와 `prefetch.required`를 합친 크기이며, 아무것도 나열하지 않으면 업로드한 모든 파일이 해당됩니다.
- `instant: true`로 인스턴트를 신청합니다.

업로드할 때 크기를 검사하며, 업로드 결과의 `instant`와 `instantReason`이 결과를 알려 줍니다. 출시 후에는 PlayDrop이 앱에서의 실제 시작 시간을 측정합니다. 한 버전이 내려받은 파일로 20회 이상 시작되었고 그중 4분의 1 넘게 2초 이상 걸렸다면 배지를 잃습니다. 새 버전은 다시 자격을 얻을 수 있습니다.

## 빠르게 시작하기

- 이후 레벨, 음악, 부가 요소는 `prefetch.optional`에 넣고 `ready()` 뒤에 불러오세요.
- 첫 프레임이 끊기지 않도록 `ready()`를 호출하기 전에 셰이더를 컴파일하고 미리 준비하세요.
- 게임 플레이를 바로 보여 주세요. 첫 조작 전에 타이틀 화면, 메뉴, 로그인 장벽이 없어야 합니다.
- 처음 몇 초만으로 텍스트 없이도 게임을 이해할 수 있게 하세요.
- 등록 정보용 세로 게임 플레이 동영상을 녹화하세요. 피드에서 이 동영상을 사용합니다.

미리 로드는 [로딩, 일시 정지, 오디오](https://www.playdrop.ai/ko/create/learn/lifecycle)를, 세로 레이아웃은 [전체 화면과 안전 영역](https://www.playdrop.ai/ko/create/learn/viewport)을 참고하세요.

## 관련 가이드

- [로딩, 일시 정지, 오디오](https://www.playdrop.ai/ko/create/learn/lifecycle): PlayDrop SDK를 초기화하고, 첫 플레이 가능 프레임에서 준비를 알리고, 깔끔하게 일시 정지·재개하고, 호스트 오디오 정책을 따르고, 네이티브·오프라인 플레이용 파일을 미리 로드하세요.
- [전체 화면과 안전 영역](https://www.playdrop.ai/ko/create/learn/viewport): PlayDrop 게임이 화면을 꽉 채우게 하고, SDK가 측정한 reservedCorners로 HUD를 CSS 안전 영역 안에 두고 호스트 컨트롤과 겹치지 않게 하세요.
- [등록 정보 아트와 동영상](https://www.playdrop.ai/ko/create/learn/listing-assets): PlayDrop 게임에 넣을 수 있는 등록 정보 이미지와 동영상의 경로, 형식, 방향, 그리고 피드, 검색, 링크 미리 보기에서 잘 보이는 아트를 만드는 방법을 알아보세요.
- [catalogue.json](https://www.playdrop.ai/ko/create/learn/catalogue-json): PlayDrop 게임이 쓰는 catalogue.json 필드: 식별 정보, 등록 정보, 플레이 방식, 화면, 로그인, 인스턴트, 미리 로드, 미디어, 번역, 점수, 서버.
