프로그래밍 강의/프로그래밍 정보

멀티플레이 프로그래밍의 이해를 위한 자료.

wnsrn3436 2012. 1. 25. 13:44

 

멀티플레이는 패킷과 패킷과의 통신입니다.

이게 무슨 말이냐면, 실제 상대방 컴퓨터에서 행해지는 모든 행동이 내 컴퓨터로 들어오는 것이 아니라는 말이죠.

그 행동 중에 일부만 캡쳐하여 패킷으로 보내게 하는 것이 멀티플레이 프로그래밍의 역할입니다.

 

위 사진은 영화 '새벽의 저주' 의 한 장면입니다.

좀비가 지상을 점령하고, 살아남은 옥상에서의 생존자가 맞은편 옥상의 생존자와 체스를 하는 장면인데요.

 

상대방은 퀸을 B2 구역으로 옮기라고 지시하고 있습니다.

실제 멀티플레이도 이런 하나의 '메시지' 에 의해 이루어집니다.

상대방 체스판을 볼 수는 없지만, 상대방의 메시지는 들을 수가 있는 것이죠.

 

위 사진에서 Q와 B2는 변수의 전달이라고 볼 수 있습니다만, -> 는 '이동'하라는 명령을 의미합니다.

명령은 패킷에서 헤더 역할을 하게 됩니다.

헤더에 0, 1, 2 와 같은 숫자를 적어 보내면, 클라이언트는 0은 이동, 1은 체크메이트, 2는 다시 하기와 같은 해석으로 받아들이죠.

 

 

TCP 프로토콜은 상대방 메시지를 정확히 읽습니다.

 

 

퀸을 B2 구역으로….

 

 

그럼 킹이 죽어버리는군요.

 

 

이제 변수는 보내지 않고, 헤더에 '다시 하기'를 넣어 보냅니다.

그럼 상대방 클라이언트는 헤더를 해석해서 게임을 다시 하게 되겠죠.

 

 

원본 영상.

 

이 포스트는 멍멍이(qw5628)님의 http://cafe.naver.com/gmopensource/434 글을 토대로 작성되었습니다.

Comments