게임 서버 프로그래밍 입문 (11) - 더미 클라이언트 만들기
지금까지 서버 프로그램을 만들고 서버끼리 데이터를 주고받는 것까지 테스트하였습니다.
하지만 실제 온라인 게임이라 하지는 못하죠.
온라인 게임을 만드는데 서버만으로는 만들 수 없습니다.
당연히 클라이언트 프로그램도 만들어야겠죠.
그래서 여기서는 간단한 더미 클라이언트를 만들어 보는 시간을 가지려 합니다.
여기서 더미(Dummy)는 가짜라는 말입니다.
일반적으로 온라인 게임에서는 더미 클라이언트랑 클라이언트를 따로 만들게 됩니다. 왜냐구요?
실제 서버 프로그래밍에서도 성능 개선 등을 할 때, 수백, 수천 대의 클라이언트를 접속할 방법이 없으므로, 로직이 같은 간단한 더미 클라이언트를 수백 개 띄어 서버에 접속시켜 테스트하는 방법을 주로 사용합니다.
물론 이를 완벽하게 신뢰하기에는 네트워크 특성상 불가능하니 여력이 되는 온라인 게임은 공개 테스트 서버 등에 먼저 업데이트를 해서 추가될 내용에 이상이 없는지 확인 작업을 진행합니다.
그런데 테스트를 위해서 클라이언트를 2개 만들어야 한다니, 클라이언트 프로그래머는 야근하라는 걸까요? 물론 그렇지 않습니다. 그래픽 출력 부분만 잘 만들어 위의 Log처럼 전략적으로 구동방식을 교체할 수 있도록 하면 좋은 구조겠죠.
보통 클라이언트 프로그램은 아래와 같은 큰 모듈들의 조합으로 이루어졌습니다.
그럼 이제부터 클라이언트를 만들도록 해봅시다.
테스트 용도로 만드니까 클라이언트는 C#으로 제작하려고 합니다.
MFC나 WinAPI를 사용해서 만드셔도 상관은 없지만, 제 생각으로는 이종(異種)언어들간의 패킷을 주고받게 하는 것을 만들어 보는 것도 나중에 모바일 게임 작성 등에 좀 더 공부가 될 거로 생각하기 때문에 C#을 선택했습니다.
소스를 참고하셔서 클라이언트를 C 이외의 언어, Java나 Objective-C, Swift로 만들어 보시는 것도 큰 공부가 될 것으로 생각합니다.
위 내용은 제가 집필한 "게임 서버 프로그래밍 입문" 책의 내용중 일부 부분에 대한 내용입니다.
전체 소스 코드와 책 구입에 대해서는 http://rosagigantea.tistory.com/589 에 링크 시켰습니다.