게임 상태 관리
Model full game state on a backend server to enforce rules and validation, and prevent cheating.
읽는 시간 1분최근 업데이트: 한 달 전
서버 권한을 구현하기 위해 백엔드 서버에서 전체 게임 상태를 모델링할 수 있습니다. 즉, 각 플레이어 클라이언트는 뷰 포트 역할을 하는 반면, 서버는 규칙과 확인, 속임수 방지를 시행합니다. 게임이 클라이언트 전반에서 지속되고 어느 지점에서나 게임을 재개할 수 있도록 Cloud Save에 게임 상태 데이터를 저장할 수 있습니다. 서버 게임 상태 관리는 비동기 멀티플레이어 게임을 빌드하는 효과적인 방법입니다. 클라이언트에서 프레젠테이션을 처리하는 동안 사용자는 클라우드 서버를 신뢰할 수 있는 소스로 활용하기 때문입니다. 클라이언트는 유연한 UI와 시각화에 중점을 두고, 서버는 게임플레이와 무결성, 동기화를 관리할 수 있습니다.
체스 예제
체스와 같은 게임의 경우 Cloud Code와 Cloud Save에서 서버는 권한이 있는 보드와 기물 위치를 유지할 수 있습니다. 플레이어가 움직이면 해당 클라이언트는 다음의 파라미터를 사용해 Cloud Code 함수에 요청을 전송합니다.- 게임 ID
- 이동한 기물
- 시작 위치
- 종료 위치
- 게임 ID를 사용하여 Cloud Save에서 현재 게임 상태를 로드합니다.
- 올바른 플레이어의 차례인지 확인합니다.
- 시작 위치의 기물이 요청과 일치하는지 확인합니다.
- 기물이 종료 위치로 움직이는 것이 규칙에 맞는지 확인합니다.
- 기물의 이동에 따라 보드 상태를 업데이트합니다.
- 기물이 상대편 기물을 포획하는지 계산합니다.
- 체크메이트를 확인하고 참이면 게임을 종료합니다.
- Cloud Save에 업데이트된 보드 상태를 저장합니다.
- 푸시 메시지를 통해 실시간 업데이트를 발생시켜 상대의 이동을 알립니다.
- Cloud Code가 이동을 처리했다는 응답을 플레이어의 클라이언트에 반환합니다.