일본에 있으면서.. 슬슬 어학과정도 끝나고해서, 이전의 프로그래밍 감각을 살려볼까 하는 취지에
만들었습니다.

이전 학교에서 턴프로젝트로 만들었던 리눅스 epoll 소스를 사용해서 (덕분에 DB는 MySQL을 사용했습니다)
윈도우 IOCP 서버 구축에 1주일,
클라이언트 제작에 3일.. 서로 데이터 동기화에 3일
총 2주 걸렸네요 orz

일단 결과물 입니다..
<서버 화면>

별볼일 없는 콘솔 화면 입니다..
현재 서버 시간을 1초 마다 갱신하게 만들었습니다.
위의 /last 같은것은 명령어 입니다.


다음 클라이언트 화면 입니다.
3D를 하는것이 좋긴 하지만, 그런거 빠지다간 끝이 없기때문에,
간단하게 현재 서버가 잘 작동되는지 눈으로 확인 가능한 2D GUI 클라이언트 입니다.
DirectX 2D 조차 쓰지 않은 순전 MFC 입니다.. @_@
맵도 원래는 바둑판처럼 가이드선을 그을려고 했는데
재미 없을꺼 같아서 소프트맥스의 창세기 외전2 템페스트의 세계 지도를 가져와 멋대로 붙였습니다.

밑에 서버 IP, port 입력하고 (디폴트 127.0.0.1:9000) connect 하면 서버에 연결됩니다.

ID와 암호를 채팅창으로 입력하면
플레이어 (마리오), 주변의 적(쿠퍼) 들이 뜹니다.

월드의 전체 크기는 5000x3200 으로 적은 렌덤으로 1000개가 뿌려지게 했습니다.
그리고 내 주변의 적들의 위치(거리 약 400), 방향, 타입, 등등의 위치를 recv 받아서 근처에 뿌려줍니다.

물론 다른 플레이어(클라이언트)도 마리오 형상으로 띄어줍니다.
단, 마리오 머리 위에 해당 클라이언트의 ID를 띄어놓게 했습니다.

채팅서버가 기본이므로. 채팅이 제대로 되는지 확인하기 위해 3개의 클라이언트를 띄었습니다.
클라이언트의 채팅은, 자기 주변 (약 200)안의 것들만 통신이 되게 했습니다.

1번 클라이언트 Miss.Ninja의 화면


2번 클라이언트의  Miss.Kim의 화면


3번 클라이언트 Miss.Rin의 화면


채팅내용을 잘 살펴보시면
가운데 닌자 클라이언트는 Kim과 Rin의 이야기를 다 듣지만, 다른 클라이언트는 닌자 클라이언트만 통신이 됩니다.


+ Recent posts