1. XMCocos2D Game Framework Library Introduction
2011.1.26일 공개된 멀티 플랫폼용 2D 게임 프레임워크 라이브러리를 XMKode ( OpenKODE ) 를 사용하여
재 구성된 XMCocos2D Game Framework Library를 소개합니다.
아래의 그림은 오리지널 버전과 XMCocos2D가 어떻게 다른가를 보여 주는 도식화입니다.
간단한, 요지는 엔진에 포함된 각 플랫폼 대응되는 코드를 완전 다른 레이어로 분리하여 향후
또 다른 플랫폼에 이식하는 과정을 엔진 수정없이 가능하도록 하는 것이 주 목적입니다.
쉽게 말해, 엔진의 플랫폼 독립화입니다. 이 분리된 엔진을 여러분들께 함께 공유 하고자 이 글을 올립니다.
라이센스에 대한 이야기를 자세히 하면 완전 상업화같은 느낌이 들어 자세히는 실제로 필요하신 분들께만
공개하겠습니다. 현재 지원하는 플랫폼으로 Windows, WinCE, Linux, Android, iOS, Bada 입니다.
프로그램 최초 시작부터 종료까지 하나의 소스만으로 앱 또는 엔진을 만들어 보세요.
이 글을 공개하는 주 목적은 XMSoft 1인 기업을 소개하고 개발자 문영환을 여러분께 소개하는 것입니다.
따라서, 라이브러리로 이익을 많이 올리려는 생각은 없습니다. 최소한의 개발 유지만을 목적에 두고 있습니다.
XMSoft의 첫 번째 유료 버전이 되겠네요. 공개하는 버전은 트라이얼 버전으로 워터마크가 추가 되어 있습니다.
상용 부분은 순수 XMCocos2D 라이브러리만이며 나머지 멀티 플랫폼 XMKode와 기타 라이브러리 및 물리 엔진은
오픈 소스입니다.
현재 이 라이브러리를 풀 소스 형태로 구매한 고객사가 한 군데 있습니다. 너무 어이 없이 싸다 그러시더군요. ^^;
기업은 최소한의 비용 지출로서, 1년간 온라인 기술 지원 라이센스를 제공하며, 개인 및 학생은 앱 개발 완료
후에 데모 영상만 보내어 주시면 워터 마크를 무료로 풀어 드리겠습니다.
2. Reference & Download Link
• XMCocos2D Game Framework Library
http://xmsoft.tistory.com/229
• Cocos2D
http://www.cocos2d-iphone.org
http://www.cocos2d-x.org
http://www.cocos2d.org
• XMSoft
http://xmsoft.co.kr/reference/r_XMCocos2D.htm ( 데모 동영상 )
http://xmsoft.co.kr/blog/b_XMCocos2D.htm ( 블로그 목차 )
http://xmsoft.co.kr
• XMSoft Blog
http://xmsoft.tistory.com
3. Sample Preview
PS. " 멀티 플랫폼용 소스를 준비하여 소스 재 활용을 이룹시다. - 글로벌 IT 강국 KOREA "
1인 기업 XMSoft를 응원 부탁드립니다.
개발에 열정을 믿어 주십시오.
죄송하지만 이 글에 관심 있으신 분들은 널리 홍보 부탁드립니다.
게시물 추천도 부탁드립니다. 그래야 이 글이 오래 남습니다.
이미 cocos2d-x로 게임 개발을 하고 있는 상황에서 cocos2d 기능 동영상이 과연 XMCocos2D의 기술인가요?
http://xmsoft.tistory.com/229 에 구현된 소스만 봐도 그냥 cocos2dx를 사용하는 것과 뭐가 다른지 모르겠군요...
원소스 멀티 유즈위한 기능들 중에 지금 설명하신 내용들은 이미 다있는 방법들로 생각이 드네요...(물론 bada 플랫폼 지원은 차이점이 있는것 같군요)
태클 거는것 같아 죄송하지만 이미 공짜인 기능을 "XMKode 프레임워크에 플랫폼을 수정 적용만으로 또 다른 플랫폼에 맞는 엔진이 새롭게 추가 될 수 있게 됩니다." 이기능 때문에 돈을 주고 산다는 메리트가 떨어질것 같네요.
언급을 하였습니다. 그리고 단순한 기능 첨가만으로 유료화를 하려고 생각을 하겠습니까? 그리고 이러한 판단도 하시지 않고 구매자분들이
저를 선택 하시겠습니까? 그리고, 이러한 태클도 하나의 의견이니 괜찮습니다. 그렇지만 너무 단순한 측면을 보지 말아주세요. XMCocos2D를 제외한 나머지 XMKode 및 기타 라이브러리들은 소스가 오픈되어 있으니 보시고 판단 하십시오. 좋은 측면으로 관련 기술을 공유하고자 글을 올렸던건데. 이런분들도 있구나 다시금 생각을 해 보게 되는군요. ^^;
그러면 기업에게 라이센스가 클까요? 유료에 대한 비용을 말씀드리면 너무 광고성 같아 자세히는 말씀 드리지 않습니다. 그리고 라이브러리
판매 장사꾼 아닙니다. ㅠㅠ 마지막으로 제품 판매가 유료가 아닙니다 기술 지원입니다.
제가 좀 직설적으로 말한것 같군요;; 절대 작업하신 결과물에 대해 비판하려는 의도는 아니였는데 죄송합니다;;
어떻게 생각하느냐에 따라 다르겠지만 제가 단 댓글의 의도는 native code를 활용하여 멀티 플랫폼에 적용시킬 수 있는 기술과 cocos2d 엔진에 대한 기능외에 XMCocos2D의 장점에 대한 설명이 충분하지 않아서 그런것 이였습니다.
저는 이미 cocos2dx를 사용하여 마켓에 게임을 3개 출시를 해놨는데요 오히려 잘모르시는 분들은 다양한 플랫폼에 cocos2d 를 활용할 수 있어 좋구나 정도로 이해 할 수도 있을것 같습니다.
사실 제가 저위에 프레임 구조나 동영상만으로 XMSoft님이 말씀하시는 점을 이해할 수 없어서요.
그래서 소개글을 보고 몇가지 궁굼증이 생겼었습니다.
궁굼한 점은 네이티브 코드를 어떤 기능을 이용하여 플랫폼 변경을 하는지 궁굼하네요
그리고 native code로 작업을 하다보면 실제 플랫폼의 기능을 사용하기 위해 플랫폼 별로 특화된 코드를 짜는 경우가 많은데 XMCocos2D를 사용하면 그러한 부분이 해소가 가능할까요?
ex)
#if defined(CCX_PLATFORM_UPHONE)
#elif defined(CCX_PLATFORM_WIN32)
#elif defined(CCX_PLATFORM_IPHONE)
#elif defined(CCX_PLATFORM_ANDROID)
#else
#error
#endif
저보다 훨씬 뛰어나신분 같은데 글을 잘못써서 기분 상하게 해드린것 같아서 죄송하네요;;
저의 XMCocos2D를 사용 하시는 업체 관계자분은 이러한 평가를 내리시더군요. Cocos2D-x완 다른 거라고 합니다.
그러나 그런건 아닌거 같습니다. 어쨋든 Cocos2D의 고유 게임 엔진은 그대로 계승한 거니깐요.
그냥 단순히 생각해 주세요. 중국판 버전을 조금 업그레이드된 한국판 Cocos2D 버전이라고요.
예를 들면 Cocos2D의 Deshion 같은 것입니다. 이 클래스들은 플랫폼에 매우 종속적인 코드들입니다.
이러한 코드 별도의 이식성 라이브러리가 도맡는 것입니다. 이것이 XMKode입니다.
XMKode는 예를 들어 간단히 설명하면 플랫폼마다 매우 다른 API 세트로 쓰레드 및 파일 패스가 있습니다.
이러한 구조를 단일화 함으로써 개발자는 플랫폼 이식성에 대해서 해방 될 수 있는 것입니다.
더욱 직설적인 예를 들면 프로그램에서 사용되는 stdlib.h와 같은 헤더는 사용 하지 않습니다.
다만 xm_kode.h 헤더만 사용합니다. 이 헤더에 나오는 함수 수는 대략 200개 정도 이며
모바일 기준에서 충분히 이식성들을 보장 하는 함수들입니다.
조금더 확대하면 XMCocos2D는 Cocos2D-OpenKODE라 말할 수 있으며, 이러한 과정을 통해 예를 들어
Cocos2D는 고유의 엔진 기능만 담당하며 특별히 플랫폼화 코드는 없습니다.
그리고, 100 퍼센트 소스 이식 통일은 어렵습니다. 가령 자바 언어가 크로스 플랫폼 언어 기반이라 하더라도
실제로 단말기마다 이식이 안 되는 원리와 비슷하다면 그렇게 말할 수 있습니다.
그리고 제가 현재 배포하고 있는 것은 XMCocos2D, XMKode 두 가지입니다. 이 둘을 활용해서 소스 이식성을
해방 하려고 계속적으로 노력 중에 있습니다.
현재 지금 업체와 진행 중인 프로젝트는 소셜 네트워크 게임으로서 몇 가지 이식성 문제가 발생 되었습니다.
이것은 업체도 알고 있고 앞으로 해결해 나가야 할 문제입니다. 예를 들어 네트워크 소켓 통신, 버추얼 키패드 호출
구글맵 연동.
간단하게 말씀드려 필요 없는 코드 및 기능 강화 해야 할 코드들이 재 구성하면서 눈에 띄는 부분이 많습니다.
그러한 부분을 작업을 한 것입니다. 따라서 위의 예를 들어 if defined 구문으로 플랫폼 마다의 특별화 코드를
전부 제거하고 이러한 플랫폼 이식 작업들은 전부 XMKode가 도맡아 합니다.