2012-03-25 2 views
1

나는 멀티 플레이어를 다루고 서버에 연결하는 간단한 안드로이드 게임을 제작 중이다. 이것이 내 게임에 대해 달성하고자하는 것입니다.클라이언트/서버 네트워킹 게임용 디자인 및 로직

클라이언트가 서버로 키 입력을 전송합니다.

서버 상태 및 계산을 업데이트 입력을 받아

클라이언트는 새로운 위치를 얻고 화면을 업데이트 클라이언트에 새 위치를 반환합니다.

이미 코드가 작성되어있어서 내 스레드 중 하나가 서버로 키 입력을 보내고 새 위치를 기다린 다음 화면을 업데이트합니다. 것은 선수의 움직임 사이에 지연이 있다는 것입니다. 나는 그것이 대기 시간과 관련이 있다고 생각한다. 또한 서버에서 데이터를 보내거나 받기 위해 두 개의 스레드를 시도하고 다른 하나는 화면을 업데이트하고 있습니다. 그러나 그것은 내 대기 시간 문제를 해결하지 못했습니다.

누구나 네트워킹 게임을위한 좋은 디자인을 제안 할 수 있습니까?

일찌감치 예측을해야합니까?

데이터 가져 오기 및 화면 렌더링을 위해 별도의 스레드가 필요합니까?

P.Shis는 내가 처음으로 네트워크 게임을 만드는 것이므로 무엇을하고 있는지 전혀 모른다.

답변

0

내가 선호하는 구조는 클라이언트 측에서 그래픽과 로직을 업데이트 한 다음 서버에 데이터를 보내고받는 스레드를 하나씩 가지는 것입니다. 대기 시간에 문제가있는 경우 데이터를 지속적으로 전송하려는 경우이를 해결할 수있는 마법 옵션이 있습니다. 내가 실시간 네트워크를 통해 좌표를 보낼 때이 옵션은 내 대기 시간 문제를 해결

mySocket.setTcpNoDelay(true); 

(적어도 이것은 당신이 자바를 사용하는 경우 구문은).

편집 : 기본적으로 TCP는 전송하기 전에 데이터를 기다리며 묶음으로써 작은 업데이트를 빠르게 보내려는 경우 문제가 될 수 있다고 생각합니다.

관련 문제