스레딩과 WinSock에 익숙하지 않습니다.C + + 클라이언트 - 서버 멀티 플레이어 게임을위한 우수 사례
대학 프로젝트의 경우 통신용 WinSock과 WinAPI 스레드를 사용하여 C/C++로 작성한 간단한 멀티 플레이어 게임을 작성하여 여러 클라이언트 (최대 4 개)를 처리해야합니다.
게임은 꽤 솔직합니다. 플레이어는 보드를 따라 점을 이동하고 흔적을 남깁니다. 주어진 시간에 가장 큰 지역을 커버 할 수 있었던 플레이어가 게임에서 승리합니다.
클라이언트 측 응용 프로그램에서 2 개의 스레드를 실행 중입니다. 첫 번째는 누른 키에 대한 정보를 서버로 보냅니다. 두 번째 것은 서버 (모든 플레이어의 코디)에서 데이터를 수신하고 세계를 그립니다.
각 클라이언트가 자신의 입력을 수신 할 수 있도록 1 스레드를 실행하는 서버 측 Im에서 서버의 Coords를 업데이트하십시오. 로직을 수행하는 또 다른 스레드가 있습니다 (충돌을 확인하고 플레이어가 화면을 벗어나지 않았는지 확인). 끊임없이 플레이어 코디를 모든 클라이언트에게 보냅니다.
메신저 양쪽에 블로킹 소켓을 사용합니다.
게임을 2 명의 플레이어로 테스트 한 결과, 서버와 클라이언트는 모두 동일한 네트워크의 다른 컴퓨터에 있었으며 플레이어는 눈에 띄지 않는 지연을 경험하고 원활하게 움직이지 않습니다.
내 접근 방식이 완전히 잘못 되었습니까? 멀티 플레이어 게임을위한 서버 및 클라이언트 응용 프로그램을 만드는 가장 좋은 방법은 무엇입니까?
참으로 잠깐 지연이 줄어 듭니다. 감사합니다. –