연동방식 소개
개요¶
- 미라클플레이에서 제공하는 게임 개발자 미라클플레이 API 연동 가이드를 간략하게 소개합니다.
연동 개요¶
- 미라클플레이 API는 게임 내의 스코어/업적/각종 액션 등의 특정 데이터를 RestFul 포맷의 WebAPI 통신에 사용됩니다.
- 미라클플레이에서 다양한 경기 방식으로 활용할 수 있도록 제공됩니다.
연동 구조¶
- 게임 내 데이터가 데이터베이스에 저장되면 미라클플레이는 Join API, GameData API 2가지를 이용해 경기에 필요한 데이터를 연동합니다.
- 이때 필요한 2개의 API는 애널리틱스를 이용해 별도의 API 구축없이 미라클플레이에 제공할 수 있습니다.
경기 룰¶
- 경기 방식: Ranking Battle, Tournament Battle 2가지 방식이 존재합니다.
- Ranking Battle: 참가자의 랭킹에 따라 상금을 부여
- Tournament Battle: 개인/팀과 배틀을 통해 승자가 다음 라운드로 진출
- 집계 방식: 탑 스코어, 토탈 스코어, 평균 스코어를 싱글/팀 2개로 구분하여 집계합니다.
API 연동 구현¶
- Join API: 경기 참여시, 계정 유무 체크를 위한 API
- UUID, NickName 필드가 반드시 필요
- 애널리틱스로 로그를 전송하면 애널리틱스가 제공하는 ‘데이터 확인’ API로 Join API 대체 가능
- 애널리틱스에 UUID, NickName 필드로 구성된 새로운 로그를 정의하거나, 사전에 정의된 ‘콘텐츠 로그’의 playerId, userId 필드로 UUID, NickName 정보 대체 가능
(25.04.07 기준) Join API 설계 예시
구분 | 설명 | 용도 | 타입 | 구성 |
---|---|---|---|---|
UUID | 해당 유저의 유니크ID | MiraclePlay 매칭 체크 | POST | 필수 |
NickName | 존재 유무를 true/false 호출 | 실제 게임 내 존재하는지 체크 | POST | 필수 |
ClientVer | 클라이언트 버전 정보 | 참가자의 게임 최소 버전 일치 | POST | 선택 |
AccessKey | 데이터보안을 위한 AccessKey | API호출 시 필수 입력 필드값 추가 (제작사마다 방식이 다를 수 있음) | POST | 선택 |
API URL |
- GameData API: 경기 결과를 기록하기 위한 API
- UUID 필드가 반드시 필요
- 이 외 필드는 게임과 경기에 따라 다름
- 애널리틱스로 로그를 전송하면 애널리틱스가 제공하는 ‘데이터 조회’ API로 GameData API 대체 가능
- 애널리틱스에 UUID와 API에 필요한 필드로 구성된 새로운 로그를 정의하거나, 사전에 정의된 ‘콘텐츠 로그’의 playerId 필드로 UUID 정보를 대체할 수 있고, 이 외 콘텐츠 관련된 정보로 GameData API에 필요한 필드 대체 가능
(25.04.07 기준) DataData API 설계 예시
구분 | 설명 | 용도 | 타입 | 구성 |
---|---|---|---|---|
UUID | 해당 유저의 유니크ID | MiraclePlay 매칭 체크 | POST | 필수 |
NickName | - | (미라클플레이의 닉네임 사용) | POST | 선택 |
ClientVer | 클라이언트 버전 정보 | 참가자의 플레이시 버전 체크 | POST | 선택 |
Starttime | 게임을 시작한 시간 (GMT) | 경기 결과 집계 | POST | 게임별 |
Endtime | 게임이 종료된 시간 (GMT) | 경기 결과 집계 | POST | 게임별 |
Score | 기록된 결과 데이터 | 경기 결과 집계 | POST | 게임별 |
playTime | 총 플레이 시간 | 경기 결과 집계 | POST | 게임별 |
AccessKey | 데이터보안을 위한 AccessKey | API 호출 시 필수 입력 필드값 추가 (제가사마다 방법이 다를 수 있음) | POST | 선택 |
기타¶
- 클라이언트에 권장하는 기능 또는 보안 정책 준수가 필요하며, 이는 미라클플레이 가이드를 참조 필요: 클라이언트 권장 기능 사항, 보안 정책