게임 로직을 개발하는 과정에서 서버와 클라이언트가 어떤 대화를 나누어야 할지는 최종적으로 여러분이 원하는 대로 정하면 됩니다. 이때 뒤따르는 몇 가지 규칙이 있는데 가장 기본적으로 알아야 하는 것은 다음과 같습니다.
1. 클라이언트에서는 요청을 보냅니다.
2. 서버에서는 그 요청을 받아 결과를 판단합니다.
3. 요청 결과에 영향을 받을 다른 클라이언트가 서버에 있으면 그 클라이언트에 통보합니다.
이 규칙을 염두에 두고 이제 아이템 사용하기 과정을 설계해 봅시다. 아이템, 특히 현금으로 구매한 아이템을 해킹하는 플레이어에게서 보호하는 데 집중해야 합니다. 아이템 사용하기 처리에 관해서는 웬만하면 클라이언트에서는 판단하지 않게 하는 것이 좋습니다. 클라이언트는 서버에 “아이템을 사용하려고 한다.”라는 요청만 보냅니다. 서버에서는 이 요청을 가지고 “정말로 이 플레이어가 해당 아이템을 가지고 있으며, 사용할 준비가 되어 있는가?”를 검사하게 만듭시다. 그리고 서버는 클라이언트에 “너는 아이템을 사용할 수 있다.” 혹은 “너는 아이템을 사용할 수 없다.”를 응답해 주도록 합시다.
1. 클라이언트에서는 사용하는 아이템의 식별자(ID)를 인자로 담은 메시지를 서버에 전송합니다.
2. 서버에서는 해당 아이템을 플레이어가 사용할 수 있는 상태인지 판단해서 아이템 사용 결과를 판정합니다.
3. 그 결과를 클라이언트에 알려 주어 아이템이 사용됨을 고지합니다.