온라인 게임 서버 분석 다운받기
[목차]
I. 온라인 게임 서버군의 디자인 구조
가. 중앙 집중식 인증 구조 디자인
나. 분산식 인증 구조 디자인
II. 게임 서버 구조
1. 일반적인 게임 서버구조
가. NPC서버의 분리
나. 동기화 서버의 분리
2. 분산 게임 서버의 구조
III. 네트워크 프로토콜
1. TCP
2. UDP
3. 게임에서 사용하는 TCP/UDP
IV. 패킷과 암호화
1. 패킷의 특성
가. MTU
나. Nagle 알고리즘
2. 패킷 구조 정하기
가. ‘길이+헤더+데이터’ 패킷 구조
나. ‘길이+헤더+데이터+엔드마커’ 패킷 구조
3. 엔디안 문제와 마샬링
가. 엔디안 문제
나. 마샬링
서버군을 선택할 때는 서버군 정보 리스트만 따로 보내주는 서버를 통해 서버를 선택하는 방법과 클라이언트에서 직접 서버군을 선택함으로써 클라이언트가 처음 구동 될 때마다 패치 서버에 접속하기 때문에 서버군 정보 리스트를 항상 최신정보로 유지할 수 있다.
Ⅱ. 게임 서버 구조
게임 서버는 실질적인 게임을 진행하는 역할을 담당. 유저의 동기화, NPC의 인공지능, 아이템 시스템 등 게임 시스템의 총집합. 게임 진행에 필요한 모든 게임 요소를 총괄하여 진행하기 때문에 가장 많은 일을 한다.
※ NPC(Non-Player Characters)
: 게임에서 유저 캐릭터가 아닌 서버에 의해 조종되는 캐릭터를 총칭. ex) 상점 주인, 경비병, 몬스터.
1. 일반적인 게임 서버 구조
가. NPC의 분리
: 구성에 따라 게임 서버에 많은 부하를 줄 수 있는 것이 NPC의 인공지능 부분이다. 게임에서 사용하는 NPC의 인공지능은 상당히 단순해 보이지만, 수많은 NPC의 인공지능을 구성하는 코드는 상당히 복잡하며, 처리량도 만만치 않다. 따라서 NPC의 인공지능 부분을 따로 분리하여 게임 서버에서 부하를 줄이게 된다.
① 게임 서버: 객체만 생성.
② NPC 서버: NPC 객체의 인공지능 처리.
〓> NPC 서버에서는 인공지능 부분만 처리하여 게임 서버에 있는 NPC 객체에게 소켓 통신등을 이용하여 명령한다. 게임 서버 입장에서는 소켓 통신 비용을 지불하는 대신 서버 리소스를 절약할 수 있다. NPC 서버에서는 인공지능 부분을 전담하기 때문에 더욱 복잡하고 똑똑한 인공지능을 만들어 낼 수 있다...
(이미지를 클릭하시면 확대/미리보기를 볼 수 있습니다.)