Cocos2d

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Cocos2d는 2차원 게임 개발을 위한 오픈 소스 프레임워크이다. 스프라이트, 씬, 애니메이션, GUI, 물리 엔진, 오디오, 스크립팅 지원 등 다양한 기능을 제공하며, C++, Objective-C, 자바스크립트, Lua 등 여러 프로그래밍 언어를 지원한다. Cocos2d는 다양한 플랫폼으로 이식되었으며, Cocos2d-x, Cocos2d-html5, Cocos2d-ObjC 등 여러 파생 프레임워크가 존재한다. 2008년 리카르도 케사다에 의해 처음 개발되었으며, 이후 여러 개발자에 의해 발전되어 왔다.

Cocos2d - [IT 관련 정보]에 관한 문서
개요
종류소프트웨어 프레임워크
Cocos2d-x
원저자왕저 (Wang Zhe)
개발자Chukong Technologies
출시일2010년 12월 1일
프로그래밍 언어C++
플랫폼크로스 플랫폼
라이선스MIT 라이선스
웹사이트cocos2d-x.org
저장소https://github.com/cocos2d/cocos2d-x
Cocos2D-ObjC
원저자리카르도 케사다 (Ricardo Quesada)
개발자안드레이 볼로딘 (Andrei Volodin) 및 라스 비르케모세 (Lars Birkemose)
출시일2008년 6월 25일
최신 버전3.5.0
최신 버전 출시일2016년 4월 3일
프로그래밍 언어Objective-C
플랫폼크로스 플랫폼
라이선스MIT 라이선스
웹사이트https://web.archive.org/web/20180811094414/http://cocos2d-objc.org/
저장소https://github.com/cocos2d/cocos2d-objc
Cocos2d (Python)
원저자리카르도 케사다 (Ricardo Quesada), 루치오 토레 (Lucio Torre)
출시일2008년 2월 29일
최신 버전0.6.10
최신 버전 출시일2023년 7월 17일
프로그래밍 언어파이썬
플랫폼크로스 플랫폼
라이선스3-clause BSD
웹사이트https://los-cocos.github.io/cocos-site/
저장소https://github.com/los-cocos/cocos
📚 더 읽어볼만한 페이지
  • 오브젝티브-C로 작성된 자유 소프트웨어 - 월드와이드웹
    월드와이드웹은 팀 버너스리가 개발한 최초의 웹 브라우저이며, 1993년 CERN이 소스 코드를 공개하여 웹 기술 발전에 기여했다.
  • 오브젝티브-C로 작성된 자유 소프트웨어 - 파이어폭스 포커스
    파이어폭스 포커스는 모질라에서 개발한 모바일 웹 브라우저로, 웹 추적기를 차단하여 개인 정보를 보호하고 브라우징 속도를 향상시키며, iOS에서는 사파리와 통합되어 콘텐츠 차단기로, 안드로이드에서는 자체 엔진을 사용하여 작동한다.
  • 비디오 게임 개발 소프트웨어 - 앨리스 (소프트웨어)
    앨리스는 교육용 프로그래밍 소프트웨어로, 드래그 앤 드롭 방식을 통해 객체 지향 프로그래밍을 배우도록 설계되었으며, 스토리텔링을 활용하여 다양한 사용자들이 프로그래밍에 접근하도록 돕는다.
  • 비디오 게임 개발 소프트웨어 - 픽셀 게임 메이커 MV
    픽셀 게임 메이커 MV는 2D 액션 게임 제작 전용 츠쿠르로, 프로그래밍 없이 인디 게임 개발을 쉽게 할 수 있도록 설계되었으며, 2018년에 얼리 액세스 버전이 출시되어 2019년 Steam에 정식 출시되었다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.

2. 주요 특징

Cocos2d는 다음과 같은 주요 특징을 가진다.

* 스프라이트와 씬: 스프라이트를 사용하여 씬을 구성한다. 스프라이트는 2차원 이미지 또는 다른 스프라이트의 컨테이너 역할을 하며, 이벤트, 액션, 애니메이션을 통해 조작할 수 있다.
* 애니메이션: 액션과 타이머를 사용하여 스프라이트에 애니메이션 효과를 적용할 수 있다. 크기, 스케일, 위치 등을 조작하거나 파티클 효과, 셰이더를 이용한 이미지 필터링도 가능하다.
* GUI: 게임 장면에 텍스트 상자, 레이블, 메뉴, 버튼 등 다양한 GUI 요소를 표현할 수 있다.
* 물리 엔진: Box2D, Chipmunk와 같은 2D 물리 엔진을 지원한다.
* 오디오: OpenAL 등의 라이브러리를 통해 오디오 기능을 제공한다.
* 스크립팅 지원: 자바스크립트, Lua 등 다양한 스크립트 언어 바인딩을 지원한다. 예를 들어, Cocos2d JavaScript Binding (JSB)은 모질라 스파이더몽키를 사용하여 네이티브 코드와 자바스크립트 코드 간의 래핑을 제공한다.

2.1. 스프라이트와 씬

Cocos2d의 모든 버전은 스프라이트를 사용한다. 스프라이트는 단순한 2차원 이미지로 생각할 수 있지만, 다른 스프라이트를 위한 컨테이너로 간주될 수도 있다. Cocos2d에서 스프라이트는 게임 레벨이나 메뉴와 같이 씬을 만들기 위해 함께 정렬된다. 스프라이트는 이벤트, 액션, 또는 애니메이션의 일부로 코드에서 조작할 수 있으며, 이동, 회전, 크기 조절, 그림 변경 등을 할 수 있다.

2.2. 애니메이션

Cocos2d는 액션과 타이머 집합을 사용하여 스프라이트 상에서 작업할 수 있는 기본 애니메이션 프리미티브를 제공한다. 이들은 더 복잡한 애니메이션을 만들기 위해 함께 연결, 합성할 수 있다. 대부분의 Cocos2d 구현체들은 사용자가 스프라이트의 크기, 스케일, 위치, 기타 효과를 조작할 수 있게 한다. 일부 버전의 Cocos2d는 파티클 효과, 셰이더를 통한 이미지 필터링 효과(워드, 리플 등)를 할 수 있게 한다.

2.3. GUI

Cocos2d는 게임 장면에 텍스트 상자, 레이블, 메뉴, 버튼 및 기타 일반적인 GUI 요소를 나타내는 기본 요소들을 제공한다.

2.4. 물리 엔진

Cocos2D의 많은 구현체는 Box2D 및 Chipmunk와 같은 일반적인 2D 물리 엔진을 지원한다.

2.5. 오디오

Cocos2d의 다양한 버전은 OpenAL 또는 다른 라이브러리를 래핑하는 오디오 라이브러리를 갖추고 있어, 완전한 오디오 기능을 제공한다. 기능은 Cocos2d의 구현에 따라 다르다.

2.6. 스크립팅 지원

Cocos2d는 자바스크립트, Lua 및 기타 엔진에 대한 바인딩을 지원한다. 예를 들어, C/C++/Objective-C용 Cocos2d JavaScript Binding (JSB)은 모질라의 스파이더몽키를 사용하여 네이티브 코드와 자바스크립트 코드 사이에 위치하는 래퍼 코드이다. JSB를 사용하면 쉽고 유연한 자바스크립트로 게임을 작성하여 개발 프로세스를 가속화할 수 있다.

Cocos2d-javascript는 Cocos2D for iPhone 기반의 자바스크립트 이식판이다.

Cocos2d-html5는 Cocos2D-X 기반의 웹용 자바스크립트 이식판이다. 자바스크립트 바인딩을 사용하여 Cocos2d-X 및 Cocos2d for iPhone에서 작동하는 것과 유사한 코드를 사용할 수 있도록 하는 것을 목표로 한다.

3. 지원 플랫폼 및 언어

👆
좌우로 밀어서 보기
분기대상 플랫폼API 언어
Cocos2d윈도우, OS X, 리눅스파이썬 2.6, 2.7 또는 3.3 이상, 오브젝티브-C
Cocos2d-xiOS, 안드로이드, 타이젠, 윈도우, 윈도우 폰 8, 리눅스, Mac OS XC++, Lua, 자바스크립트
Cocos2d-ObjCiOS, Mac OS X, tvOS오브젝티브-C, 스위프트
Cocos2d-html5HTML5 지원 브라우저자바스크립트
Cocos2d-xna윈도우 폰 7 & 8, 윈도우 7 & 8, Xbox 360C#
Cocos Creator안드로이드, iOS, HarmonyOSC#, C++, TypeScript, 자바스크립트

4. 파생 프레임워크

Cocos2d는 다양한 프로그래밍 언어와 플랫폼으로 이식되었다. 주요 파생 프레임워크는 다음과 같다.

* ShinyCocos: 루비로 작성되었다.
* Cocos2d-Android: 안드로이드용 자바로 작성되었다.
* Cocos2d-windows: 윈도우 XP윈도우 7C++로 작성되었다.
* CocosNet: 모노 기반의 C#로 작성되었다.
* Cocos2d-javascript: 웹 브라우저용 자바스크립트로 작성되었다.
* Cocos2d-XNA: 윈도우 폰 7을 지원하기 위해 cocos2d-x 커뮤니티에서 시작되었지만, 현재는 C#과 모노를 사용하여 여러 플랫폼에서 실행되는 독립적인 프로젝트이다. Totally Evil Entertainment의 Jacob Anderson이 이 분기를 이끌고 있다.
* Cocos3d: Objective-C로 작성되었으며 cocos2d-iPhone의 확장 기능으로 작동한다. Brenwill Workshop Ltd의 Bill Hollings가 이 분기를 이끌고 있다.
* Axmol Engine: 모바일 장치, 데스크톱 및 Xbox용으로 설계된 오픈 소스 C++ 멀티 플랫폼 엔진으로, 2D 게임 개발에 적합하다. 2019년 11월 Cocos2d-x v4.0에서 파생되어 출시되었다.

4.1. C++

Cocos2d-x는 Cocos2d for iPhone을 기반으로 C++로 작성된 멀티 플랫폼 이식 버전이다. iOS, 안드로이드, 윈도우 폰 8, 윈도우, macOS, 마멀레이드, 리눅스, Bada, 블랙베리 10에서 작동한다. 또한, Lua와 자바스크립트 스크립트 바인딩도 제공한다. 2010년 11월, 중국의 개발자인 Zhe Wang은 Cocos2d를 기반으로 Cocos2d-x를 분기했다. Cocos2d-x는 MIT 라이선스 하의 자유 소프트웨어 엔진으로, 하나의 코드 베이스로 여러 플랫폼에서 컴파일하고 실행할 수 있다.

👆
좌우로 밀어서 보기
대상 플랫폼API 언어
iOS, 안드로이드, 타이젠, 윈도우, 윈도우 폰 8, 리눅스, Mac OS XC++, Lua, 자바스크립트

4.2. C#

Cocos2d-XNA(또는 Cocos2d-X for XNA)는 Cocos2d-X 기반의 XNA 및 MonoGame용 C# 이식판이다. Cocos2d-XNA는 윈도우 폰 7을 지원하기 위해 cocos2d-x 커뮤니티에서 시작되었지만, 현재는 C#과 모노를 사용하여 여러 플랫폼에서 실행되는 독립적인 프로젝트로 분리되었다. Totally Evil Entertainment의 Jacob Anderson이 이 분기를 이끌고 있다.

👆
좌우로 밀어서 보기
분기대상 플랫폼API 언어
Cocos2d-xna윈도우 폰 7 & 8, 윈도우 7 & 8, 엑스박스 360C#

4.3. Go

gocos2d는 Cocos2d 기반의 Go 이식판이다.

4.4. Java

Cocos2d는 여러 프로그래밍 언어와 다양한 플랫폼으로 이식되었다. 그중 자바와 관련된 내용은 다음과 같다.

* Cocos2d-Android: 안드로이드용 자바로 작성되었다. Cocos2d for iPhone을 기반으로 한 안드로이드용 자바 이식판이다.

4.5. JavaScript

Cocos2d는 자바스크립트, Lua 바인딩을 지원한다. C/C++/Objective-C용 Cocos2d JavaScript Binding (JSB)은 모질라 스파이더몽키를 사용하여 네이티브 코드와 자바스크립트 코드 사이에 위치하는 래퍼 코드이다. JSB를 사용하면 쉽고 유연한 자바스크립트로 게임을 작성하여 개발 프로세스를 가속화할 수 있다.

Cocos2d-javascript는 Cocos2D for iPhone 기반의 자바스크립트 이식판이다.

Cocos2d-html5는 Cocos2D-X 기반의 웹용 자바스크립트 이식판이다. 자바스크립트 바인딩을 사용하여 Cocos2d-X 및 Cocos2d for iPhone에서 작동하는 것과 유사한 코드를 사용할 수 있도록 하는 것을 목표로 한다.

4.6. Objective-C

Cocos2d는 Objective-C로 작성된 여러 버전의 브랜치를 가지고 있다.

👆
좌우로 밀어서 보기
브랜치대상 플랫폼API 언어
Cocos2d-ObjCiOS, 맥 OS X, 안드로이드Objective-C, 스위프트


애플(Apple Inc.)의 앱 스토어의 잠재력에 매료된 Quesada는 2008년 6월 Objective-C로 Cocos2d를 다시 작성하여 이후 Cocos2d 계열의 전신인 "Cocos2d for iPhone" v0.1을 출시했다.

Cocos2d for iPhone(혹은 Cocos2d-iphone)은 원본 프레임워크와 디자인 및 컨셉을 동일하게 사용하는 iOS 및 macOS용 Objective-C 이식 버전이다. API는 Box2D, Chipmunk 물리 엔진과 통합되어 있다. Cocos2d는 App Store에서 출시된 많은 게임에서 사용되고 있다.

Cocos3DObjective-C로 작성된 Cocos2D용 3D 확장 기능이다. Cocos3D는 3D 메시 모델, 투시 투영 카메라, 재질, 라이트닝 등을 지원하는 3D 모델링 공간 기능을 추가한다.

Cocos2D-ObjC(이전에는 Cocos2D-iPhone 및 Cocos2D-SpriteBuilder로 알려짐)는 Lars Birkemose가 관리한다.

5. 에디터 지원

Cocos2d는 개발자들이 편리하게 게임을 제작할 수 있도록 다양한 에디터를 지원한다.

지원 종료된 에디터

* SpriteBuilder: 이전에는 CocosBuilder로 알려졌으며, Cocos2D-SpriteBuilder 앱을 위한 IDE이었다. 무료로 제공되었고, Apportable에서 개발을 후원했으며, Objective-C를 지원했다.
* CocoStudio: Cocos2d-x 기반의 독점 툴킷으로, UI 편집기, 애니메이션 편집기, 장면 편집기, 데이터 편집기를 포함하는 완전한 시스템이었다. Chukong Technologies에서 개발했고 C++를 지원했다. 2016년 4월에 사용이 중단되었으며, Cocos Creator로 대체되었다.

현재 지원되는 에디터

* Cocos Creator: Cocos2d-X를 위한 독점 소프트웨어 통합 게임 개발 도구로, 자바스크립트타입스크립트를 지원한다.
* SpriteBuilderX: macOS에서만 실행되는 Cocos2d-X용 자유 소프트웨어 장면 편집기로, C++를 지원한다.
* X-Studio: Windows에서만 실행되는 Cocos2d-X용 독점 소프트웨어 장면 편집기로, Lua를 지원한다.
* CCProjectGenerator: Xcode용 Swift 또는 Objective-C 프로젝트를 생성하는 Cocos2d-ObjC 3.5용 프로젝트 생성기이다.

5.1. 지원 종료

SpriteBuilder는 이전에는 CocosBuilder로 알려졌으며, Cocos2D-SpriteBuilder 앱을 위한 IDE이다. SpriteBuilder는 무료이며 Apportable에서 개발을 후원했고, Apportable은 또한 무료 Cocos2D-SpriteBuilder, Cocos3D 및 Chipmunk physics 프로젝트를 후원했다. Mac App Store에서 무료 앱으로 제공되었다. 공식 최신 버전은 1.4이다. 비공식 최신 버전은 cocos2d-objC 3.4.9와 호환되는 1.5이다. Objective-C를 지원한다.

CocoStudio는 Cocos2d-x 기반의 독점 툴킷으로, UI 편집기, 애니메이션 편집기, 장면 편집기, 데이터 편집기를 포함하며, 이들은 완전한 시스템을 형성한다. 전자는 주로 아티스트를 위한 도구이고, 후자는 주로 디자이너를 위한 도구이다. 이는 Chukong Technologies에서 개발한 독점 프로젝트이다. 최신 버전은 cocos2d-X 3.10과 호환되는 3.10이다. C++를 지원한다. 2016년 4월에 사용이 중단되었으며 Cocos Creator로 대체되었다.

5.2. 현재 지원

* Cocos Creator는 Cocos2d-X를 위한 독점 소프트웨어 통합 게임 개발 도구이다. 2017년 8월 기준으로 자바스크립트타입스크립트만 지원하며, C++나 Lua는 지원하지 않는다. 이는 자유 소프트웨어인 Fireball-X를 기반으로 한다. Creator에 대한 C++ 및 Lua 지원은 2017년 4월부터 알파 단계로 개발 중이다.
* SpriteBuilderX는 C++를 지원하며, macOS에서만 실행되는 Cocos2d-X용 자유 소프트웨어 장면 편집기이다.
* X-Studio는 Lua를 지원하며, Windows에서만 실행되는 Cocos2d-X용 독점 소프트웨어 장면 편집기이다.
* CCProjectGenerator는 Xcode용 Swift 또는 Objective-C 프로젝트를 생성하는 Cocos2d-ObjC 3.5용 프로젝트 생성기이다.

6. 역사

2008년 2월, 아르헨티나 코르도바 인근 로스 코코스 마을에서 게임 개발자인 리카르도 케사다와 루시오 토레는 여러 명의 개발자 친구들과 함께 파이썬용 2D 게임 엔진을 만들었다. 그들은 개발의 시초가 된 장소의 이름을 따서 이를 "로스 코코스"라고 명명했다. 한 달 후, 이 그룹은 버전 0.1을 출시하고 이름을 "Cocos2d"로 변경했다.

애플(Apple Inc.)의 새로운 앱 스토어의 잠재력에 매료된 케사다는 2008년 6월 Objective-C로 Cocos2d를 다시 작성하여 이후 Cocos2d 계열의 전신인 "Cocos2d for iPhone" v0.1을 출시했다.

Cocos2D-ObjC(이전에는 Cocos2D-iPhone 및 Cocos2D-SpriteBuilder로 알려짐)는 Lars Birkemose가 관리한다. 영국의 디자이너 마이클 힐드(Michael Heald)는 Cocos2d의 새로운 로고를 디자인했다(Cocos2d 로고는 이전에는 달리는 코코넛이었다).

2010년 11월, 중국의 개발자인 Zhe Wang은 Cocos2d를 기반으로 Cocos2d-x를 분기했다. Cocos2d-x는 MIT 라이선스 하의 자유 소프트웨어 엔진으로, 하나의 코드 베이스로 여러 플랫폼에서 컴파일하고 실행할 수 있다.

2013년, 케사다는 cocos2d-iPhone을 떠나 cocos2d-x 팀에 합류했다. 2017년 3월, 케사다는 Chukong사에서 해고되었다. 2015년에는 4개의 cocos2d 분기가 활발히 유지 관리되었다.

Cocos2d-x 및 Cocos2d-html5는 ChuKong Technologies의 개발자에 의해 유지 관리 및 후원된다. Chukong은 또한 Cocos2d-x 및 Cocos2D-html5용 WYSIWYG 편집기인 CocoStudio와 Cocos3D 프로젝트의 포크인 자유 소프트웨어 Cocos3d-x를 개발하고 있다.

7. Cocos2d로 개발된 게임

* 팜빌
* Plague Inc.
* Geometry Dash (cocos2d-x)
* Legendary Wars
* 미토모 (cocos2d-x)
* 배드랜드 (cocos2d-iphone)
* Shadow Fight 2 (cocos2d-x)
* 쿠키런: 오븐브레이크
* 파이어 엠블렘 히어로즈
* 마기아 레코드
* 해리 포터: 호그와트 미스터리 (cocos creator)
* FlyMe2theMoon (cocos2d)