[GPG 3 글 5.2] 네트워크 동기화에 대해 질문입니다.

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

네트워크 동기화에 대해 질문입니다.

Post by 비회원 »

혼자서 게임 프로그래밍을 하려고 하니 애로사항이 많이 있네요.
gpg3권의 네트워크 동기화 부분을 봐도 잘 이해가 되지 않네요.

서버에서 턴을 진행하고 클라이언트에서 서버로 부터 턴을 받아서 진행하는 것으로 되어있습니다.
프레임 잠금을 약간 보정한 것이라고 하는데 여기서 궁금한 점이 있습니다.

1.
서버에서 턴을 진행하라고 클라이언트에게 보낸다고 하는데
이 턴을 진행하라고 하는것은 턴을 진행하라는 것뿐만 아니라 다른 클라이언트에서 받은 내용들도
같이 보내는 것이 맞는거죠?
턴이라는게 클라이언트들로 부터 받은 입력으로 게임상태를 업데이트 하고 다시 클라이언트에게 뿌려주는 것이죠?

2.
서버에서 초당 4~6번 정도를 턴을 보낸다고 하는데
그 사이 사이에 유저의 입력을 어떻게 보내는거죠? 입력이 있을때마다 바로 바로 서버로 쏘아주는 건가요?
지금 서버로 받은 턴이 12턴이라면 12턴받은 후에 어떤 이벤트 발생 쏘아주나요? 아니면 턴을 받을때까지
모아뒀다가 전부 전송하나요?

3. 만약 전송 속도가 느려서 서버는 13턴인데 클라이언트에서 보낸 패킷이 12턴 후에 발생한 것이라면
그냥 무시하나요??

4. 패킷 구성은 어떻게 하죠? tcp인데 헤더 내용이렇게 두개 해서 여러개로 보냅니까?
아니면 한개로 모아서 한꺼번에 보내나요?

두서없이 적어서... 계속 머리속에서 생각중인데... 머리만 아파와서 이렇게 도움을 구합니다.
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

'턴을 진행하라'는 이를테면 '클럭 펄스'인 것 같습니다. 그 이후에 사용자 입력들이 따로 전달되고요.

게임 세계의 상태는 클라이언트들이 서버에서 받은 사용자 입력을 가지고 각자 갱신합니다. 물론 모든 게임에서 이렇게 해야 한다는 것은 아니겠고요.

나머지 질문들은 '개선' 절(특히 지연 감추기)과 예제 코드에서 어느 정도 답을 찾을 수 있을 것 같습니다...
Post Reply