서브메뉴

본문

코코스2d x 모바일 2D 게임 개발 (5가지 실전 게임으로 배우는)
코코스2d x 모바일 2D 게임 개발 (5가지 실전 게임으로 배우는)
저자 : 로저 잉글버트
출판사 : 에이콘출판
출판년 : 2013
ISBN : 9788960774810

책소개

acorn+PACKT 시리즈 제54권. 안드로이드와 iOS에 동시 대응할 수 있는 코코스2d-x는 국내 모바일 2D 게임 개발에서 실질적인 표준 도구가 됐다.



이 책은 단계별로 5가지 실전적인 게임 예제를 따라 하면서, 최근 인기를 끌고 있는 모바일 2D 캐주얼 게임 개발의 핵심요소를 배울 수 있도록 구성되어 있다. 예제 게임들은 알기 쉬우면서도, 현재 트렌드에 부합되며, 꼭 필요한 핵심요소들을 군더더기 없이 보여준다. 외국에서 출간된 코코스2d-x 도서 중에서도 단연 가장 좋은 평가를 받고 있는 최신간 도서.
[알라딘에서 제공한 정보입니다.]

출판사 서평

★ 요약 ★

안드로이드와 iOS에 동시 대응할 수 있는 코코스2d-x는 국내 모바일 2D 게임 개발에서 실질적인 표준 도구가 됐다. 이 책은 단계별로 5가지 실전적인 게임 예제를 따라 하면서, 최근 인기를 끌고 있는 모바일 2D 캐주얼 게임 개발의 핵심요소를 배울 수 있도록 구성되어 있다. 예제 게임들은 알기 쉬우면서도, 현재 트렌드에 부합되며, 꼭 필요한 핵심요소들을 군더더기 없이 보여준다. 외국에서 출간된 코코스2d-x 도서 중에서도 단연 가장 좋은 평가를 받고 있는 최신간 도서.

★ 이 책에서 다루는 내용 ★

■ 파티클 효과를 이용해서 더욱 멋지게 보이는 자신만의 게임 개발
■ 자신의 게임 아이디어를 신속하게 검증해 볼 수 있는 플레이스홀더 스프라이트 제작
■ 게임에 외부 데이터 로드
■ 게임 메뉴와 튜토리얼 제작
■ 알림 기능으로 게임 전체 이벤트 구현
■ 텍스처 처리된 지형을 가진 대시 게임 개발
■ 여러 개의 레벨을 가진 박스2D 퍼즐 게임 제작
■ iOS와 안드로이드 하이브리드 프로젝트 생성

★ 이 책의 대상 독자 ★

게임 개발에 열정을 가진 사람이라면 이 책의 독자가 될 수 있다. 여러분은 코코스2d(프레임워크의 오브젝티브C 버전)를 이미 다뤄 본 적이 있으며, C++ 이식 버전을 배우고 싶어할 수도 있다. 아니면 자바, PHP, 오브젝티브C 등 C 기반 언어에 대해서 어느 정도 알고 있어서, 2D 게임을 C++로 개발하는 방법을 배우고 싶어할 수도 있다. 아니면 이미 C++ 개발자로서 코코스2d-x가 도대체 무엇인지 궁금해 할 수도 있다. 여러분이 이 중 하나에 해당된다면, 환영한다!

★ 이 책의 구성 ★

1장, 설치에서는 코코스2d-x 프레임워크를 다운로드하고 설치하는 방법을 안내한다. 아울러 기본적인 코코스2d-x 애플리케이션의 세부 사항을 살펴본다.

2장, C++와 코코스2d-x에서는 프레임워크의 주요 요소들을 설명한다. 또한 C++로 개발할 때의 문법적인 차이점과 코코스2d-x로 개발할 때의 메모리 관리 차이점도 다룬다.

3장, 첫 번째 게임: 에어 하키에서는 코코스2d-x를 활용해서 에어 하키 게임을 제작하는 것으로 게임 개발 안내를 시작한다. 스프라이트용 이미지를 로드하는 방법, 텍스트 표시 방법, 터치 처리 방법, 게임 사운드 추가 방법을 배운다.

4장, 재미있는 스프라이트에서는 코코스2d-x에서 액션의 위력을 선보이고, 액션을 이용해서 전체 게임을 구축하는 방법을 보여준다. 아울러 스프라이트시트의 개념과 다양한 화면 해상도를 지원하는 유니버설 앱을 구축하는 데 필요한 과정을 소개한다.

5장, 위기일발: 로켓 조종에서는 게임 개발 도구에 2가지 새로운 요소를 추가해 준다. 선, 곡선, 원 같은 원시 도형을 그리는 방법과 게임의 외관을 향상시키기 위한 특수 효과로 파티클 시스템을 활용하는 방법이 그것이다.

6장, 쉽고 빠른 스프라이트: 빅토리안 러시아워에서는 향후 검증과 개발용으로 코코스2d-x를 이용해서 플레이스홀더 스프라이트로 신속하게 게임 프로토타입을 구축함으로써 빠른 시간 안에 게임 아이디어를 구현해 보는 방법을 보여준다. 아울러 이 장에서 활용된 게임 예제에서는 횡스크롤 플랫폼 게임을 개발하는 방법도 배우게 된다.

7장, 외관 꾸미기: 빅토리안 러시아워에서는 이전 장의 프로젝트를 계속하면서, 메뉴와 플레이 가능한 튜토리얼을 비롯한 마지막 손질을 한다.

8장, 물리 구현: 박스2D에서는 물리 구현용으로 인기 있는 박스2D API를 소개하면서, 풀 게임을 개발하는 데 박스2D를 이용하는 과정을 안내한다. 바디를 생성하고 바디들의 상호작용을 관리하는 방법을 배운다.

9장, 마지막 게임: 에스키모에서는 게임 레벨용으로 외부 데이터를 로드하는 방법, 게임 관련 데이터를 로컬에 저장하는 방법, 그리고 복수의 씬으로 게임을 구조화하는 방법을 알려준다. 두 번째 박스2D 게임을 이용해서 이런 주제들을 설명하고 추가로 게임 내에서 알림의 활용법 같은 몇 가지 새로운 개념들을 소개한다.

10장, 코드 재활용에서는 코코스2d-x를 활용해서 안드로이드 프로젝트 및 iOS와 안드로이드를 동시에 겨냥하는 하이브리드 프로젝트를 빌드하는 과정을 안내한다. 개발 환경을 설정하는 방법과 최적의 복수 타깃 개발 기법을 알려준다.

★ 저자 서문 ★

코코스2d-x는 현재 시중에 나와 있는 가장 대중적이고 검증된 2D 게임 프레임워크를 활용한다는 장점에 C++의 강력함과 이식성을 더한다. 결국 최선의 선택인 셈이다. 코코스2d-x의 프레임워크는 사용하기 쉬우면서도 빠른 구현이 가능하도록 구축되어 있을 뿐만 아니라, 여러 개의 시스템에 올릴 수 있는 코드를 만들어 준다.

이 책에서는 이러한 프레임워크를 활용해서 우리의 아이디어를 짧은 시간 안에 구현하고, OpenGL의 온갖 난해한 요소들을 코코스2d-x가 알아서 처리하게 함으로써, 개발자들이 스프라이트가 점프하고 서로 충돌하게 만드는 것 같이 재미있는 부분에만 집중할 수 있도록 해주는 방법을 보여준다.

이 책에는 5가지 게임을 기반으로 한 6가지 예제가 실려 있는데, 이 중 두 가지는 박스2D(Box2D)를 이용하는 물리 기반 게임이다. 각 예제를 통해, 프레임워크에 대해 좀더 깊이 이해하고 짧은 시간 안에 우리들의 게임에 파티클 효과, 애니메이션, 사운드, UI 요소를 비롯한 온갖 멋진 요소들을 추가해주는 매력적인 기법들을 배울 수 있다.

뿐만 아니라, iOS와 안드로이드 양쪽 기기에 올리는 방법과 아울러, 여러 가지 화면 사이즈에 대응하는 방법까지 배우게 될 것이다.

★ 옮긴이의 말 ★

모바일 게임 시장의 급성장으로 인해 기존 모바일 게임 개발자들뿐만 아니라, 새로운 개발자들도 모바일 게임 개발을 시작하고 있다. 현재 이들이 선택할 수 있는 가장 보편적인 개발 도구는 코코스2d-x나 유니티3D일 것이다. 한 때 코코스2d가 제법 사용됐으나, iOS와 안드로이드를 동시에 대응할 수 있다는 장점 때문에 코코스2d-x는 빠른 시간 안에 국내 2d 모바일 게임 개발의 실질적 표준이 됐다.

3D 게임이 시각적으로 인상적이지만, 실제로 구글플레이 스토어나 애플 앱스토어를 보면 상위권 게임은 상당수가 2D 게임이다. 모바일의 특성상 앞으로도 이런 2D 강세는 유지되리라고 생각한다.

물론 2D 게임을 유니티3D로도 만들 수 있고, 유니티3D가 좀 더 편리한 개발환경을 제공하는 것은 사실이지만, 코코스2d-x는 비교적 저수준의 접근을 제공하므로 개발자가 컨트롤할 수 있는 부분이 많아서 나름대로의 장점이 있으며, 이러한 이유로 상당 기간 동안 2D 게임을 만들 때 유효한 개발 도구가 될 것이다.

그러나 모바일 게임 시장 변화가 워낙 급격하게 일어나다 보니 현업에서 코코스2d-x에 대한 수요에 비해, 국내뿐 아니라 전세계적으로도 코코스2d-x를 전문적으로 다루는 책들이 극히 드물어서, 새로운 시장 기회에 도전하려는 개발자들에게 많은 애로가 되어 왔다. 미국에도 코코스2d-x를 다루는 책이 드물었는데, 이 책은 외국에서도 몇 달 전에 출간된 따끈따끈한 신간으로 그간 출간된 코코스2d-x 도서 중에서 단연 가장 좋은 평가를 받고 있다.

무엇보다 이 책의 가장 큰 장점은 단계별로 실전적 예제를 통해 코코스2d-x의 활용법을 알기 쉽게 설명한다는 점이다. 예제로 다루는 5가지 게임들은 최근 국내외에서 인기를 끌고 있는 모바일 캐주얼 게임 개발에 필요한 핵심 요소들을 군더더기 없이 잘 배울 수 있도록 구성되어 있다. 따라서, 독자들은 이 책의 예제들을 따라 하다 보면 크게 어렵지 않다는 느낌이 들면서도, 어느새 코코스2d-x 게임 개발의 핵심 요소들을 익히게 될 것이다.

참고로, 모바일 쪽이 워낙 기술 변화가 빨리 일어나다 보니, 원서가 출간된 지 불과 몇 개월밖에 지나지 않았는데, 그 사이 코코스2d-x가 몇 차례 버전업이 됐다. 원서는 2.0.4 버전을 기준으로 집필됐는데, 현재 안정화된 코코스2d-x의 최신 버전은 2.1.5다. 따라서, 예제 코드 일부가 제대로 동작하지 않을 수 있다. 이런 문제를 피하려면, 코코스2d-x 2.1.5 버전 기준으로 새로운 프로젝트를 생성한 다음, 이 책의 예제 프로젝트에서 게임 로직에 관련된 폴더의 내용물(예를 들어 resources 폴더와 src 폴더의 내용들)을 새로 만든 프로젝트로 옮기면 된다.

이 책이 코코스2d-x를 도구로 삼아 모바일 게임 시장에 도전하려는 개발자의 시작을 도와주는 좋은 길잡이가 되리라고 기대한다.
[교보문고에서 제공한 정보입니다.]

목차정보

1장 설치

___다운로드와 설치

___실습 예제: 코코스2d-x의 다운로드와 설치

___Hello-x World-x

___실습 예제: 애플리케이션 생성

______폴더 구조

_________iOS 연결 클래스

_________AppDelegate 클래스

_________HelloWorldScene 클래스

_________누가 누구를 낳는가

___추가 정보___

___실습 예제: 테스트 샘플 실행

___그 밖의 도구들

___요약



2장 C++와 코코스2d-x

___코코스2d-x 소개

______컨테이너

______디렉터와 캐시

______기타

______하지만 C++를 모른다면?

___인터페이스

___실습 예제: 인터페이스 생성

___구현

___실습 예제: 구현 생성

___인스턴스화와 메모리 관리

______선택 1: 정적 메소드 사용

______선택 2: C++ 코코스2d-x 스타일

___CCObject의 역할

___요약



3장 첫 번째 게임: 에어 하키

___게임 환경 설정

___실습 예제: 게임 프로젝트 생성

___실습 예제: 규칙 설정

___레티나 디스플레이 지원

___실습 예제: 이미지 파일 추가

___실습 예제: 레티나 지원 추가

___사운드 효과 추가

___실습 예제: 사운드 파일 추가

___CCSprite 확장

___실습 예제: GameSprite.cpp 추가

___실습 예제: GameSprite 구현

___실제 게임 씬

___실습 예제: GameLayer 인터페이스 작성

___실습 예제: init() 구현

___실습 예제: 멀티터치 처리

___실습 예제: 메인 루프 추가

___실습 예제: 점수 갱신

___요약



4장 재미있는 스프라이트: 스카이 디펜스

___스카이 디펜스 게임

______게임 설정

______시작 프로젝트

______유니버설 앱을 위한 화면 지원 추가

______배경음악 추가

______게임 초기화

___코코스2d-x의 스프라이트시트 활용

______스프라이트의 배치 드로잉

___실습 예제: CCSpriteBatchNode 생성

___코코스2d-x의 비트맵 폰트

___실습 예제: 비트맵 폰트 레이블 생성

___실습 예제: 최종 화면 스프라이트 추가

___실습 예제: 오브젝트 풀 생성

___CCAction 요약

___실습 예제: 코코스2d-x 액션 생성

___코코스2d-x의 스프라이트 애니메이션

___실습 예제: 애니메이션 생성

___게임을 작동할 때!

___실습 예제: 터치 처리

___실습 예제: 게임 시작과 재시작

___실습 예제: 게임 업데이트

___실습 예제: 풀에서 오브젝트 반환하기

___플레이 게임!

___요약



5장 위기일발: 로켓 조종

___로켓 조종 게임

______게임 설정

______플레이 먼저, 학습은 나중에

______스타트 프로젝트

______화면 설정

___파티클이란 무엇인가?

___실습 예제: 파티클 시스템 생성

___그리드 생성

___코코스2d-x 원시도형 그리기

___실습 예제: 뭔가 그려보자!

___로켓 스프라이트

___실습 예제: 로켓 업데이트

___실습 예제: 터치 처리

___게임 루프

___실습 예제: 메인 루프 추가

___죽음과 재설정

___실습 예제: 재설정과 죽음 추가

___요약



6장 쉽고 빠른 스프라이트: 빅토리안 러시아워

___빅토리안 러시아워 게임

___게임 설정

___코코스2d-x를 이용한 신속 프로토타이핑

___실습 예제: 플레이스홀더 스프라이트 생성

___플레이어 오브젝트

___블록 오브젝트

___지형 오브젝트

___실습 예제: 플레이어 코딩

___실습 예제: 블록 오브젝트의 코딩

______지형 클래스 계획

______지형 오브젝트 구축

___실습 예제: 지형 클래스 초기화

___실습 예제: 블록 초기화

___실습 예제: 이동과 재설정

___플랫폼 충돌 로직

___실습 예제: 충돌 탐지 추가

___컨트롤 추가

___실습 예제: 터치 처리

___실습 예제: 메인 루프 코딩

___요약



7장 외관 꾸미기: 빅토리안 러시아워

___빅토리안 러시아워 게임

______새로운 스프라이트

______애니메이션

___CCSprite를 이용한 건물 텍스처 처리

___실습 예제: 빌딩의 텍스처 처리

___컨테이너 안의 컨테이너

___패럴랙스 효과 생성

___실습 예제: 패럴랙스 효과 생성

___게임 메뉴 추가

___실습 예제: CCMenu와 CCMenuItem 생성

___게임 튜토리얼 추가

___실습 예제: 튜토리얼 추가

___요약



8장 물리 구현: 박스2D

___코코스2d-x 박스2D 프로젝트 생성

___실습 예제: 기본 템플릿 준비

___물리 엔진이란 무엇인가?

______박스2D 소개

______월드 소개

______시뮬레이션 실행

______CCObject가 없는 박스2D

______바디 소개

___미니풀 게임

______게임 설정

______CCSprite + b2Body = b2Sprite

______풀 테이블 생성

______변 생성

______공 오브젝트 생성

______충돌 필터 생성

______큐 공 생성

______콘택트 리스너 생성

______게임 컨트롤

___실습 예제: 터치 이벤트 추가

______메인 루프

___실습 예제: 메인 루프 추가

______게임 타이머 추가

___실습 예제: 타이머 생성

___요약



9장 마지막 게임: 에스키모

___에스키모 게임

______게임 설정

______게임의 구성

___코코스2d-x CCScene 활용

___실습 예제: CCScene 전환 생성

___실습 예제: 싱글턴 CCLayer를 이용한 전환 생성

___.plist 파일에서 외부 데이터의 로드

___실습 예제: .plist 파일 생성

______레벨 데이터 로드

___실습 예제: .plist 파일에서 데이터 반환

___게임 데이터 저장

___실습 예제: 완료된 레벨의 저장

___게임 알림 활용

___실습 예제: CCNotificationCenter 활용

___가속도계 활용

___실습 예제: 가속도계 데이터 읽기

___b2Body 재사용

___실습 예제: b2Body 픽스처 변경

___요약



10장 코드 재활용

___우선, 버전과 요구조건에 대해

______요구사항

______선택 과정

___실습 예제: 코코스2d-x 안드로이드 프로젝트 생성

___실습 예제: 코드 컴파일

___이클립스 활용

___실습 예제: C++ 컴파일러 설치

___실습 예제: 이클립스에 코코스2d-x 라이브러리 추가하기

___실습 예제: 이클립스에서 프로젝트 열기

______애플리케이션 실행

___이클립스에서 C++ 코드 컴파일하기

___실습 예제: C++ 코드 컴파일하기

___하이브리드 프로젝트 생성

___실습 예제: 하이브리드 코코스2d-x 프로젝트 생성

___박스2D 하이브리드 프로젝트 생성

___실습 예제: 박스2D 프로젝트 생성

___하이브리드 게임 개발

___요약



부록A 코코스2d-x 벡터 계산

___벡터란 무엇인가?

______벡터 메소드

___ccp 헬퍼 메소드 활용

______점을 중심으로 한 로켓 회전

______벡터의 내적 활용

______픽셀 기반 속도에서 각도 기반 속도로의 이동



부록B 깜짝 퀴즈 정답
[알라딘에서 제공한 정보입니다.]