=================================
=================================
=================================
출처: http://www.androidside.com/bbs/board.php?bo_table=B25&wr_id=13
자바로된 pc 온라인겜 캐주얼 서버를 작성해 봤습니다. 현재 상용온라인 게임 서비스 중이구요.
예전에 개발한거라,
요새 SNG서버로 자바를 이용해 개발을 하더군요. 처음이신 분이라면 도움이 되기 바랍니다.
질답에 올리려 했는데 권한이 안되네요.
c++ 서버에 관련된 것도 이런것들이 좀 올라왓으면 좋겠습니다.
추천 가이드 및 라이브러리
- NIO를 사용한 Apache MINA 라이브러리 사용할것 (세계최고의 개발자들이 만듬, 성능 입증된것임, 네티보다 추천)
- log4j 를 통한 로깅 관리
- apache commons 라이브러리를 이용하고 쓸데없는 코딩 줄일것 (개인적으로 boost 보다 강력하다고 봄)
- DB접근은 commons 내의 pool,dbcp를 이용해 커넥션 풀링 할것 (자동재연결,max,min 세부 조정 모두 가능)
- gmtool 개발은 Java swing으로 개발하면 됨
- sql query 는 사용하지 말고 db proc로 작업할것(느림) :
apache dbutil 추천, 쓸데없이 preparedStatement 로 코딩하지 말것, 이 라이브러리 하면 3줄이면 됨
- 나머지는 모두 일반 c++ 서버와 동일함
(인증/분산,게임,관리,릴레이,DB-Proc서버 등등)
- 팁! Java 최대의 강점인 엔터프라이즈 프레임웍 기술을 이용해 전서버 동일한 캐쉬정보 로딩을 통한 세션 공유화가 가능
(Grid 연결방식의 무한 확장이 가능) : 이건 저도 기술 구현만 해놓고 적용은 못해봄
- 소스 관리: SVN 이나 Mercurial 추천함 ( 왠만하면 Mercurial 사용하시길)
- 자동빌드 관리: ant 기술을 이용하면 됨, 패키징까지 완료,
- 윈도우 서비스 등록관리: 왠만하면 런쳐툴 만들고 JavaService 라는 오픈소스가 있음, 이걸 이용해 서비스 관리를 할것
- 타 서버(c++)와 연동작업시: 빅/리틀 엔디안 확인 잘하실것
- 서버구동시 네트웍 IO 스레드는 항상 미리 생성해놓고 대기할것 (생성시 느림)
- 동기화(이건 머 어디서나 중요하죠)처리 정말 신경써서 하실것, 성능 잡아먹음
- UI 개발은 Eclipse에 Google의 WindowsBuilder 플러그인 깔아 쓰면됨( Google이 사서 오픈해 버린 프로젝트임 )
- 엑셀 관련 import/export는 apache poi 라이브러리 사용하시면 됨 ( gmtool 에 이런기능 꼭넣으실것, 운영사에서 좋아함)
- JUnit을 이용한 모듈별 TestCase 꼭 작성할것(작성안하는 개발자있으면 혼내시길)
장점:
- 편리한 Eclipse 개발툴 사용 ( 이걸 사용하다보면 비주얼 스튜디오가 쓰레기로 보임 )
- 엄청나게 많은 오픈 소스 API 사용가능
- Google Apps로 작성된 다른 플랫폼과 라이브러리 연동 가능성
- c#같이 편리한 코딩이 가능
- java의 멋진 구조를 바탕으로 효율적인 프레임웍 구성 가능
단점:
- 개발자 전무, 교육에 반을 투자 해야함(경력/신입 밑바닥 부터 교육시켜야함)
- C++ 보다는 느림(그러나 체감하지 못함)
- SNG 를 제외한 일반 MMO/캐주얼 게임 쪽으로는 이직 힘듬(그러나 개인나름)
- java라고 대충짜면 메모리 뻑남, 특성상 자바개발자를 조금더 뽑는데 개념을 확실하게 심어줘야함
=================================
=================================
=================================
'프로그래밍 관련 > 게임프로그래밍' 카테고리의 다른 글
네이버 게임게발자 질문/답변 서버 패킷 안보내질때 (0) | 2020.09.13 |
---|---|
매니지드 언어(Java, C# 등등) 로 MMORPG 만들기 어떤가요? (0) | 2020.09.13 |
리눅스에서 게임서버 만든다면 ... 어떤 언어 사용 하시나요??? 관련 (0) | 2020.09.13 |
Game Loop (0) | 2017.11.13 |
다이렉트X 비디오 메모리 구하기 (0) | 2016.05.26 |