mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-04-10 14:19:03

Cocos2d

Cocos2d-x
파일:external/www.cocos2d-x.org/801?.png
<colbgcolor=#e6e6e6><colcolor=#000> 출시 2010년 11월 29일
유형 게임 엔진
기반 언어 C++, JavaScript, Lua,
HTML, Python, Swift
요금 무료 ( MIT 라이선스)
https://www.cocos.com/

1. 개요2. 역사3. Cocos2d-x
3.1. 마스코트 Grossini3.2. 진입 장벽3.3. Cocos2d-x 기반의 게임들
4. Cocos Creator5. 관련 커뮤니티

[clearfix]

1. 개요

Cocos2d는 오픈 소스 2D 게임 엔진으로 대표적인 2d-x 버전을 비롯한 여러 가지 변종이 있다.

2. 역사

Cocos2d는 Python으로 작성된 게임 엔진이다. 나중에 앱스토어가 설립되고 아이폰 앱 SDK가 배포되자 개발자 한 명인 Ricardo Quesada가 Cocos2d를 Objective-C로 재작성하여 Cocos2d-iPhone을 만들었고, 이것이 나중에 Cocos2d-x의 모태가 되었다. Cocos2d-x 는 C++ 로 포팅되었다.

그 뒤에 중국의 Zhe Wang이 Cocos2d를 포크하여 Cocos2d-x 프로젝트를 시작하였다. Cocos2d-x에서는 하나의 코드로 여러 개의 플랫폼을 대상으로 출력할 수 있었으며, 그 다음에 Ricardo Quesada는 Cocos2d-iPhone 프로젝트에 떠나 Cocos2d-x 프로젝트에 참여했다. 현재 활성화된 Cocos2d-x의 포크는 다음과 같다.

3. Cocos2d-x

기본적으로 Windows, macOS, Linux, Android, iOS 등 다양한 플랫폼을 지원하고 있다. 다만 PC쪽의 플랫폼에 대한 지원은 미비하며[1] 상황이 이렇다 보니 PC로는 프로그램이 터지나 안터지나 확인하면서 디버깅만 하고, 정작 완성 빌드는 iOS나 Android로 내보내는 상황이다.

2019년 12월 출시된 4.0을 마지막으로 사실상 개발이 중단되었다. 이후 Cocos 개발 팀의 대부분은 후술할 Cocos Creator 쪽으로 옮긴 상황.

3.1. 마스코트 Grossini

파일:external/www.cocos2d-x.org/3985?.png
애니메이션

Unity 유니티짱 이 있다면 Cocos2d-x엔 이 아저씨가 있다. Cocos2d 폴더 /build/ 경로에 있는 테크 데모(tech demo)격인 샘플 프로젝트를 여는 순간부터 가장 많이 보게 될, 명실상부한 Cocos의 마스코트. 자체 애니메이션도 있는데, 제자리 걷기를 하다가 목을 돌리는 괴상한 동작이다. 본래 목적은 SpriteAnimation 데모용이지만, 그 밖의 스프라이트가 필요한 곳들에 단골로 들어간다.

3.2. 진입 장벽

기본적으로 코코스를 제대로 활용하려면 자료구조 알고리즘에 대한 대략적인 이해는 해야 하며, STL을 능숙히 사용하여야 하고, C++의 상속 같은 핵심 기술을 모두 알아야 한다. iOS의 경우 Objective-C Swift, 안드로이드의 경우 Java 라이브러리를 쉽게 갖다 쓸 수 있는 장점이 있으나 jni 사용법을 알아야 하는 문제가 있으며, 또 *.h나 *.cpp 파일을 자체적으로 열어서 코어 로직을 읽는 것이 습관화되어 있어야 한다.

프로젝트 세팅 등 수동으로 손봐줘야 하는 부분이 매우 많은 점도 진입 장벽에 크게 기여한다. 코드를 짜보기는커녕 프로젝트 세팅조차 못 하고 나가 떨어지는 경우가 부지기수이다. 여기에 한글 문서도 사실상 전무한 수준일 뿐 아니라, 영어 문서조차 적어 일본어나 중국어 사이트를 번역기로 보면서 버텨야 하는 경우가 많다.

가장 큰 이유는 언리얼 엔진, 유니티 엔진은 상업성을 두고 돈 받으면서 빵빵한 기술지원을 동반한 영업을 하는 반면, 코코스는 오픈 소스 프로젝트인 탓으로 보인다. 다만 경쟁에서 밀렸다곤 해도 현재도 메이저 게임사들에서 한두 개 정도의 프로젝트는 여전히 코코스로 만들고 있는 경우가 있고, 현업에서도 완전히 밀려난 상황은 아니다. 언리얼 · 유니티 두 엔진보다는 훨씬 적지만, 체감상 3위권을 유지하고는 있다. 이는 C++에 익숙한 중견 프로그래머들의 경우 어차피 2D만으로 프로젝트를 진행할거면 기존 워크플로우를 비교적 그대로 유지할 수 있는 코코스로 개발을 하는것이 차라리 더 효율적이기 때문이다.

3.3. Cocos2d-x 기반의 게임들

※ 나무위키에 문서가 만들어진 게임들만 기입해 주십시오.

123-ABC-가나다 순으로 나열한다.

4. Cocos Creator

Cocos의 새로운 버전으로 Unity같은 에디터 중심의 게임 개발을 할 수 있게 되었으며, 사용 스크립팅 언어는 JavaScript 또는 TypeScript이다.

5. 관련 커뮤니티



[1] PC Platform 에서는 3.2버젼부터 지원되는 CocosGui의 VideoPlayer가 전혀 사용할 수 없도록 되어있으며, SimpleAudioEngine의 경우 볼륨 조절 같은 것들을 하나도 지원하지 않는다. 다만 이는 Cocos2d-x의 지속적인 성장에 힘입어 몇 년 사이에 급격히 좋아지긴 했다. 그래도 MP3, Ogg는 재생가능하면서 WAV를 재생 못하는 어이없는 상태가 지속되고있다. [2] 개조된 드빌SDK를 사용한다 [3] 유나 엔진으로 자체 개조