1월, 2013의 게시물 표시

cocos2d-x 또는 Unity3D용 게임에 쓸 Server Engine Research

이미지
회사 차기 프로젝트에 서버까지 해야할 듯 싶네요. 이젠 정말 다시 클라이언트 게임 개발자가 게임 서버 프로그래밍도 해야 하는 길을 가야할 때가 다시 온 것이죠. MMO나 MO처럼 큰 건 아니고 캐쥬얼 게임정도 처리를 하면 될 듯한데 Client Engine은 cocos2d-x아니면 Unity3D로 갈 듯해서 이와 궁합이 잘 맞는 서버로 작업을 진행해볼까 합니다. 서버 완전 제일 밑단부터 만들거나 하진 않을 거구요, 그래서 서버 엔진들을 리서치 해봤습니다.

 여기서 잠시 제 네트워크 개발 관련 지식 수준을 까발려보자면,

2003년 게임스쿨 다닐시 EventSelect 방식의 채팅 프로그램RF 온라인 클라이언트 개발하면서 서버와 패킷 주고받기ACE Framework 리서치ACE기반인 HalfNetwork 리서치 및 1년 정도 사용국산 서버 엔진인 ProudNet 리서치
 이게 다 입니다. 네트워크 Core 딴부터 개발하는 뭐 그런거 없는 전 클라이언트 프로그래머에요~ 막막하네요, 서버 엔진을 찾아도 DB는 또 어쩔.....; 각설하고 간단하게 찾은 종류만 정리해봅니다.

Server Comparison Chart를 누군가가 정리해 놨더군요. 요즘 유니티3D와 같이 많이들 사용한다는 photon serverSmartFox Server 등이 보이는군요. 차트에는 없지만 RakNet이라는 녀석도 있죠. 각 서버에 대한 자세한 설명은 링크를 통해 확인하면 될 듯하고 일단 유료는 배제합니다.

 무료 서버 엔진중에 뭐가 있을까 보니 차트에 Lidgren라는게 보입니다. XNA 프로젝트에 사용되던 엔진인 듯합니다. C#으로 되어있구요.


 XNA에 Lidgren을 써서 만든 테스트 게임들 영상입니다.

 현재는 Unity3D도 지원해주고 있네요.

 리서치를 해보니 이미 C#에서 네트워크 말단 부분을 어느정도 모듈화가 되어 있다고 하는데 거기다가 Lidgren이라는 녀석으로 인해 게임에서 사용할 수 있는 Framework 정도로 보면 될 듯합니다. 역사도 깊고? 아직도 꾸준히 업…

자율신경을 알면 건강이 보인다

이미지
우리몸은 기본적으로 125세까지 살 수 있게 만들어져 있다고 한다. 큰 사고는 어쩔수 없겠지만, 그게 아닌 살면서 온갖 스트레스나 외부 바이러스나 잘못된 식습관 등에 의해 자기 자신의 몸을 제대로 관리하지 못하여 몸의 면역력이 떨어지고 그로 인해 암이나 기타 질병, 합병증에 걸리게 된다고 한다.

 이런 저런 병이나 그에 의한 합병증은 우리가 잘 모르는 우리 몸의 제일 말단인 자율신경계와 관련이 있고 이것을 유지하고 복구하면 그에따라 면역력도 정상을 되찾아 건강한 삶을 살 수 있다고 한다. 또한 지금 약이라고 있는 것들은 다 근본적인 병의 치료를 해주는 것이 아니라고 한다.

 충분한 수면과 제대로 된 식습관, 적절한 운동을 통해 꾸준히 자율신경계자 잘 작동하도록 노력해서 건강하게 살아보자.

cocos2d-x Win32에서 작업한 Android 프로젝트 Mac OSX용 Android로 포팅?

이미지
먼저 간략하게 그동안의 개발과정을 정리해보면, 일단 개발환경이 Windows7 64bit, Visual Studio 2010에 cocos2d-x 2.0.1 win32로 개발하다가 Windows에 cocos2d-x 안드로이드 개발 환경을 만들었었고, iOS는 컴파일 때문에 어쩔수 없이 Mac OSX에 Xcode에서 개발 환경을 설정했었죠. 즉, Android는 Windows에서 빌드, iOS는 Mac OSX에서 빌드한 것이죠.

 포스팅들을 보면 아시겠지만, 별 문제 없었습니다. 온갖 에러들을 다 해결해가고 Framework static lib도 Android와 iOS용으로도 만들어가면서 또 온갖 외부 모듈 붙여가면서 잘 했었죠. 근데 요근래 이상한 일이 생겼습니다. 팀원분이 제가만든 프레임워크 모듈을 가져다 쓰는데 있어서 빌드 이슈가 생긴것이죠. 차이점이라면 팀원분은 iOS, Android모두 Mac OSX 환경에서 작업했다는 것...

 제가 만든 iOS lib는 가져다 쓰는데 이상이 없었는데, Android lib는 자꾸 h파일을 못 찾겠다고 심술을 부리더군요. 그래서 아예 프레임워크 소스까지 커밋 후, 소스를 공유해서 직접 빌드를 해보라고도 했지만 여전히 빌드가 안되더군요. 아, 이것이 상용 유니티3d엔진과 오픈소스 cocos2d-x의 어쩔 수 없는 빌드 차이인건가? 하면서 저도 Mac OSX에 안드로이드 환경을 만들어 봤습니다.

 그런데, 저도 빌드가 안되었습니다. 그래서 정리 들어갑니다. 재미 없을 수도 있으니 귀찮으시면 제일 밑에 결론만 보시면 됩니다.

NDK_ROOT=/Volumes/MacintoshHD2/Android/android-ndk-r8d
COCOS2DX_ROOT=/Volumes/MacintoshHD2/Program/Engine/cocos2d-2.1beta3-x-2.1.0
GAME_ROOT=$COCOS2DX_ROOT/../../Projects/MyTestGame
GAME_ANDROID_ROOT=$GAME_ROOT/proj.android
R…

Nebula Device 3 Engine 오랜만에 리서치 해보니...

이미지
요즘 오픈소스에 조금씩 관심을 가져볼까 하던중에 2009년에 잠시 회사 프로젝트 때문에 살짝 맛을 본 네뷸라 디바이스 3 SDK가 오랜만에 생각나서 리서치 해봤습니다.

 먼저 간단하게 소개를 하자면, 원래 오픈소스로 공개되었던 Nebula 3 SDK는 공식 버전이 2009년 버전인 N3SDK_Apr2009 를 마지막?으로 Radon Labs이 BigPoint에 인수되면서 끝이 났었죠.

 그리고는 2011년에 네뷸라3를 사용해서 드라켄상 온라인이라는 부분유료 웹 게임을 출시했었죠.

네뷸라3 원작자?의 블로그에 가보면 네뷸라3 기반으로 자바 스크립트, WebGL의 웹쪽 기술이나 NaCl등과 관련해서 계속 포스팅을 하시고 계시네요. 회사가 인수되면서 오픈소스로 할 수 없을 뿐 계속해서 네뷸라3를 발전시키고 있나봅니다. 위 스샷은 웹에서 실행 된 모습입니다. 한 번 실행해보실 분은 링크를 클릭하세요. 방향키로 모델이나 에니를 변경할 수 있습니다.


 네뷸라3에 대한 ppt 내용입니다. 좀 더 다양한 내용은 한국에서 네뷸라3쪽으로 유명하신 kimsama님 블로그에 가보시면 포스팅이 있으니 참고하시기 바랍니다.

 음, 2009년에 잠시 사용하면서 느낀점을 간략 요약하면 그때 당시 Render Layer는 전멸이고 Application과 Foundation Layer만 조금 이해한 상태였지만 멀티코어(병렬처리)와 Component based Entity Game System을 지원하는 괜찮은 아키텍쳐의 게임엔진이라는 점입니다. 지금도 구글 코드를 통해서 2008년 버전인 듯 하지만 받을 수는 있습니다.

 그런데 검색해보니 예전 D3D 강좌?로 유명하셨던? 이준곤(LeeChen)님의 블로그에서 Nebula3 SDK Mar2010 업데이트 내용 정리라는 글을 찾았습니다. 이거뭐지? 업데이트가 되고 있었던건가? 링크를 따라가보면 2009와 2010 버전 차이점을 정리해주셨더군요. 심지어는 2011 SDK 내용도 있는데, 중국에서 바톤을 넘겨받아 작업을 진행중이라는군요.

 구글링…

cocos2d-x Mac OSX에 Android 개발 환경 설정하기

이미지
맥에 안드로이드 개발 환경을 세팅했고 역시나 맥에 cocos2d-x기반 iOS 개발 환경까지 설정했었습니다. 이 기반에서 맥에 cocos2d-x 안드로이드 개발 환경을 세팅을 정리해보겠습니다. 2가지 링크가 다 되어 있어야 합니다. 또한, 이슈가 몇개 있어서 내용이 다소 복잡할 수 있습니다.


1. 안드로이드 프로젝트 생성

 먼저 cocos2d-x 디렉터리에 있는 create-android-project.sh를 수정해야합니다. NDK_ROOT_LOCAL과 ANDROID_SDK_ROOT_LOCAL을 자신의 디렉터리에 맞게 변경해줍니다. 예전에는 vi .profile 해서 bash 프로파일을 수정했는데 이젠 그렇게 안해도 되나보군요.

NDK_ROOT_LOCAL="/Volumes/Macintosh HD 2/Android/android-ndk-r8d"
ANDROID_SDK_ROOT_LOCAL="/Volumes/Macintosh HD 2/Android/android-sdk-macosx"

 제 설정은 위와 같습니다. 이제 터미널에서 ./create-android-project.sh를 실행해보면,

 제대로 만들어지지 않았습니다. 먼저 Permission denied가 나올 수 있는데 chmod 777 create-android-project.sh 를 해줍니다.

./create-android-project.sh: line 16: [: too many arguments
./create-android-project.sh: line 111: [: too many arguments
mkdir: /Volumes/Macintosh: File exists
mkdir: 2/Program/Engine/cocos2d-2.1beta3-x-2.1.0: No such file or directory
Error: Argument '2/Program/Engine/cocos2d-2.1beta3-x-2.1.0/helloworld/proj.android' i…

Free Bitmap Font Generator - BMFont Tool

이미지
게임을 만들다 보면 이쁜 폰트가 필요할 때가 있습니다. 보통 채팅창 같은 경우는 시스템 폰트 또는 TTF를 사용해서 폰트를 출력을 하고 기타 나머지 글자는 이미지 폰트를 사용하는 경우가 많죠. 디자이너가 만들어주거나 툴로 생성한 비트맵(이미지) 폰트를 이용하거나 아니면 폰트 자체를 만들거나 해서 한결 이쁜 폰트를 게임에 적용할 수 있겠죠. 이번 포스팅에서는 디자이너를 거치지 않고 비트맵 폰트를 만들 수 있는 툴에 대해 정리해봅니다.

 본격적인 소개에 앞서 몇가지 비트맵 폰트 툴을 간략히 소개해봅니다.
Hiero - JAVA로 만들어짐. 저는 오류로 실행이 안됨.fonteditorGlyph Designer - Mac OSX, 유료bmGlyph - Mac OSX, 유료LabelAtlasCreator - Mac OSX본격적으로 소개할 비트맵 폰트 생성 툴은AngelCode의 BMFont 입니다. 위에 것은 유료이거나 Mac OSX만 지원하지만, BMFont는 Windows를 지원하고 무료입니다. 2004년부터 꾸준히 업데이트 되고 있네요. Special thanks to에 유명한 코드마스터즈와 너티독등이 있는 걸로 봐서는 이곳에서도 사용하는 툴인 듯 싶네요.

1. 설치

BMFont 사이트에서 Downloads에 있는 링크를 클릭해 다운로드 합니다. 1.13 기준으로 진행합니다.

 적당한 곳에 압축 해제 후, 설치파일을 실행합니다. Continue를 클릭합니다.

 설치 위치를 지정 후, Install을 클릭합니다.

 기본적인 설치 컴포넌트를 체크 된 상태로 둔 후 Next를 클릭합니다.

 설치가 완료됩니다. Close를 눌러 종료합니다.


2. 비트맵 폰트 만들기

 이번에는 툴을 사용해서 간단한 비트맵 폰트를 만들어보겠습니다. 그전에 cocos2d-x에 이미 만들어져 있는 폰트를 살펴보면,

 많은 샘플 폰트들이 이미 준비되어 있습니다. 참고로 결과물이 fnt와 png로 만들어지는데 fnt는 꼭 cocos2d-x에서만 사용되어 지는게 아니라 간단한 텍스트 파일 형식이라 다른…

cocos2d-x Mac OSX iOS 개발 환경 설정하기

이미지
맥의 Xcode에 cocos2d-x 개발환경 세팅과 간단하게 프로젝트 하나 생성하는 것을 정리해봅니다.

1. cocos2d-x 설치

cocos2d-x 사이트에 가셔서 다운로드 받습니다. 최신 Stable 버전은 2.1.0입니다.

 적당한 곳에 압축을 해제합니다. 이제 xcode용 템플릿을 설치해야합니다. 혹, 구버전 cocos2d-x를 사용중이셨다면 구버전 템플릿을 삭제 후 시도하시기 바랍니다.

터미널에서 cocos2d-x가 있는 경로로 이동 후 sudo ./install-templates-xcode.sh 를 실행합니다. 혹시라도 command not found 가 나오면서 설치가 안되거나 그러면 링크를 참고하시기 바랍니다.

 이런식으로 설치 로그가 나오면 성공한 것입니다. 이제 터미널은 종료시키고 Xcode를 실행합니다.


2. cocos2d-x HelloWorld 프로젝트 생성

 File -> New -> Project 또는 Xcode 처음 실행시 보이는 창에서 Create a new Xcode project를 선택합니다.

 cocos2d-x 템플릿이 추가된 것이 보입니다. 간단한 Hello World 프로젝트를 생성할 것이므로 cocos2dx를 선택하고 Next를 클릭합니다.

 프로젝트 이름등을 설정하고 Next를 클릭합니다.

 원하시는 디렉터리에 Create해줍니다.

 프로젝트 생성이 되었습니다.

 빌드 후 실행하시면 이상없이 실행이 될 것입니다. 이제 살을 붙여나가시면 됩니다.