Cocos2d

Cocos2d는 2차원 게임의 장면과 스프라이트·애니메이션을 구현하기 위한 공개 게임 엔진·프레임워크 계열이다. 초기 Python용 Cocos2d에서 출발해 Objective-C 기반 Cocos2d-iphone 등 여러 구현으로 확대됐으며, 모바일과 데스크톱 게임 제작에 필요한 2D 객...

분류게임 엔진 또는 게임 개발 도구
개발 주체Ricardo Quesada 및 Cocos2d 개발 공동체
작성 언어Python, Objective-C 등 구현 계열별
게임 개발 언어Python·Objective-C 계열
주요 기술2D 스프라이트·장면·액션·애니메이션
지원 플랫폼Python·iOS 등 분기별
라이선스MIT License 등 분기별
공식 자료프로젝트 자료
기술 계보Cocos2d-x, Cocos Creator
원형Python 2D 프레임워크
장면Scene·Layer·Sprite
특징Action·Scheduler
소스 모델공개 개발

Cocos2d는 2차원 게임의 장면과 스프라이트·애니메이션을 구현하기 위한 공개 게임 엔진·프레임워크 계열이다. 초기 Python용 Cocos2d에서 출발해 Objective-C 기반 Cocos2d-iphone 등 여러 구현으로 확대됐으며, 모바일과 데스크톱 게임 제작에 필요한 2D 객체 관리 방식을 널리 보급했다. 각 구현 계열은 개발 언어와 플랫폼·유지보수 조직이 서로 다르다.[1]

기본 구조는 Scene 안에 Layer와 Sprite를 배치하고 Action·Scheduler를 이용해 객체의 위치와 상태를 변경하는 방식이다. 스프라이트 이미지는 텍스처를 이용해 화면에 그리며, 액션 시스템은 이동·회전·크기 변경 및 시간에 따른 애니메이션을 표현한다. 입력·사운드와 장면 전환을 공통 API에서 사용할 수 있게 하는 것이 특징이다.

초기의 Python 구현은 pyglet 등의 그래픽스 기술과 결합해 2D 게임 제작을 지원했다. 뒤이어 등장한 Objective-C 계열은 iPhone·iPad의 터치 입력과 OpenGL ES 그래픽스 환경을 대상으로 발전했다. 이러한 다양한 구현을 단일한 실행 라이브러리 하나로 취급하면 작성 언어·플랫폼과 버전 정보를 혼동할 수 있다.

2D 콘텐츠 제작자는 스프라이트 시트와 텍스처·애니메이션, 타일 맵과 UI 요소를 코드로 구성한다. 실행 루프는 장면 갱신과 렌더링을 호출하고, 게임별 객체의 충돌·규칙은 자체 코드나 추가 모듈과 결합할 수 있다. 개발 언어의 특징에 따라 엔진 구조와 네이티브 API 접근 방법이 달라진다.

Cocos2d-x는 이 계열에서 C++을 중심으로 새롭게 발전한 크로스 플랫폼 프로젝트이고, Cocos Creator는 시각적 편집기와 C++·TypeScript 런타임을 통합한 후속 제작 제품이다. Cocos2d의 역사는 이들 기술의 공통된 배경이지만 세 엔진의 실제 소스 코드·툴체인과 라이선스 구조는 각각 구별해야 한다.

역사

개발 조직과 기술 계보

런타임과 내부 아키텍처

그래픽스와 렌더링

게임 객체·장면과 UI

프로그래밍·스크립팅

자산과 제작 도구

물리·애니메이션·시뮬레이션

지원 플랫폼

라이선스와 개발 상태

활용 프로젝트와 관련 엔진

관련 문서

  1. Python Cocos2d 프로젝트 ↩