더북(TheBook)

스타시즈: 트라이브스(Starsiege: Tribes, 1998)를 구현할 때 사용한 네트워크 아키텍처는 오늘날 액션 게임을 구현할 때도 애용된다. 이는 클라이언트-서버 모델의 토폴로지로, 모든 플레이어가 게임을 관장하는 서버 하나에 접속해서 플레이한다. 가장 밑단의 플랫폼 패킷 모듈은 네트워크상 패킷 전송 작업을 추상화한다. 그 위의 연결 관리자는 플레이어와 서버 사이의 연결을 관리하며 배달 여부 통지 또한 발행한다. 스트림 관리자는 상위 수준 여러(이벤트, 고스트, 이동 등) 관리자의 데이터를 받아서 각각을 우선순위에 따라 처리하여 내보낼 패킷을 가공한다. 이벤트 관리자는 ‘플레이어가 사격함’ 등의 중요 이벤트를 관할하여 관련 시스템이 이를 반드시 받을 수 있게 보장한다. 고스트 매니저는 객체 상태의 업데이트를 처리하며 특정 플레이어에게 유의미한 객체 집합이 어떤 것인지 판별한다. 이동 관리자는 각 플레이어의 가장 최신 이동 정보를 송신한다.

에이지 오브 엠파이어(Age of Empires, 1997)는 결정론적 락스텝 모델을 구현했다. 게임에 참여하는 모든 컴퓨터는 다른 모든 컴퓨터에 P2P, 즉 피어-투-피어 토폴로지로 연결된다. 이 방식의 게임에선 개개의 유닛에 대한 정보를 네트워크로 보내는 대신 명령들을 각 피어로 보낸다. 각 피어는 받은 명령을 서로 독립적으로 실행한다. 여러 기기를 같은 상태로 동기화하기 위해, 내려지는 명령을 즉시 보내지 않고 일정 시간 동안 턴 타이머를 이용해 모아 두었다가 보낸다. 이들 명령은 두 번의 턴이 지나고 나서야 수행된다. 이 정도 시간이면 각 피어가 턴 명령을 송수신하는데 충분한 시간이 확보된다. 추가로 중요한 사항은 각 피어가 결정론적으로 시뮬레이션을 진행해야 한다는 점으로, 이를 위해 유사 난수 발생기를 피어 간에 동기화시키는 등 방법을 써야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.