What is GameServer ?이름 : 최흥배E-mail : jacking75@gmail.comHomePage: jacking75.cafe24.comBlog: http://blog.naver.com/jacking75
2.
1. 온라인 게임서버의OS 플랫폼Windows한국에서 게임서버를 만드는 경우 가장 일반적으로 선택하는 OS 이다.게임 개발자들에게 가장 익숙한 OS.
3.
Linux비 Windows OS중에서 가장 대중성을 가지고 있는 OS 이다.Windows 보다는 덜 익숙하지만 점점 대중성 및 관련 자료를 늘리고 있다.
4.
FreeBSDUnix 계열의 OS로서 Linux와 거의 비슷함.Linux에 비해 대중성은 약하지만 Unix를 사용하였던 사람들로부터 지지를 받음.온라인 게임서버가 실행되는 OS 플랫폼은 거의 대부분이 Windows, Linux, FreeBSD 이 셋 중의 하나이다.이중 Windows 플랫폼용이 가장 많다.
3D 환경의경우 지형 처리 및 NPC의 길 찾기가 중요 해진다.3. 온라인 게임서버 제작을 위한 기술 및 개발 환경3. 1. 각 OS의 비 동기 IO 방식Windows IOCP.Windows 2000 이상부터 지원.참고 자료 : MSDN
16.
Linuxepoll.2.5.x 커널에 추가되기 시작하였으며 2.6.x 커널 대에서는 기본으로 탑재.참고 자료 : http://www.xevious7.com/tag/epoll
17.
FreeBSDKqueue.Windows, Linux에 비해일찍부터 비동기 I/O 지원.참고 자료 : http://jacking75.cafe24.com/Network/FreeBSD_Index.htm3. 2. Multi-Thread 일반 PC와 달리 서버 PC는 이전부터 단일 CPU 보다는 듀얼 CPU 이상의 CPU를 사용 했으므로 Thread를 도입한 경우가 많으며 서버 프로그래머들이 많은 관심을 가지고 있는 분야이다.
18.
현재 출시되는CPU는 듀얼코어 이상의 CPU가 출시되고 있으므로 이전보다 더욱 더 Thread 기술이 중요해지고 있음.
Boost의 Thread라이브러리를 사용하면 OS 독립적인 Thread 기술 사용 가능. Intel에서 스레딩 빌딩 블록(TBB) 라는 Thread 관련 라이브러리 공개( 단 유료로 구입한 경우에만 기술 지원을 받을 수 있음).http://blog.naver.com/jacking75/140040961225
21.
Thread 사용시에는 동기화와 성능 분산이 중요하다.일반적으로 과도한 동기화는 Thread 컨텍스트스위칭에 따른 비용 증가로 오히려 성능이 더 내려 갈 수도 있다.
22.
Thread 관련툴을 사용하면 좋다.인텔에서 제공하는 Thread Checker, Thread Profiler 등이 있다.
23.
Thread 사용은 이익과위험이 따른다. 보수적인 관점에서 접근을 해야 된다.특히 서버의 로직 처리 부분을 Multi-Thread로 할 때에는 트랜잭션 처리에 아주 조심해야 된다.3. 3. Database(DB) 온라인 게임 서버에서 중요한 것 중의 하나가 DB 이다.
24.
일반적으로 규모가큰 회사 등은 DBA가 있어서 이들을 통해서 DB 작업을 하지만 아직까지는 대다수가 서버 프로그래머가 DBA의 역할까지 한다.
25.
일반적으로 많이사용되는 DB는 MS SQL, MySQL, Oracle 등이다.보통 게임서버가 운용되는 OS에 따라가는 편이므로 MS SQL을 많이 사용한다.
26.
DB 프로그래밍시 MS SQL의 경우는 ODBC, DO, OLE DB 중에서 하나를 사용,My SQL 및 Oracle은 네이티브 라이브러리를 주로 사용한다.