Top

[5가지 실전 게임으로 배우는]
코코스2d-x 모바일 2D 게임 개발

  • 원서명Cocos2d-X by Example Beginner's Guide (ISBN 9781782167341)
  • 지은이로저 잉글버트
  • 옮긴이박지유
  • ISBN : 9788960774810
  • 25,000원
  • 2013년 10월 21일 펴냄
  • 페이퍼백 | 288쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

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

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

이 책에서 다루는 내용
  • 파티클 효과를 이용해서 더욱 멋지게 보이는 자신만의 게임 개발
  • 자신의 게임 아이디어를 신속하게 검증해 볼 수 있는 플레이스홀더 스프라이트 제작
  • 게임에 외부 데이터 로드
  • 게임 메뉴와 튜토리얼 제작
  • 알림 기능으로 게임 전체 이벤트 구현
  • 텍스처 처리된 지형을 가진 대시 게임 개발
이 책의 대상 독자

게임 개발에 열정을 가진 사람이라면 이 책의 독자가 될 수 있다. 여러분은 코코스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와 안드로이드를 동시에 겨냥하는 하이브리드 프로젝트를 빌드하는 과정을 안내한다. 개발 환경을 설정하는 방법과 최적의 복수 타깃 개발 기법을 알려준다.

저자/역자 소개

지은이 소개

로저 잉글버트 (Roger Engelbert)

온라인 게임 개발 경력이 10년이 넘는 게임 개발자다. 그는 비디오 게임에 파묻혀 자랐으며, 고전 8비트 게임 타이틀을 예술의 일종이라고 생각한다. 그는 게임 개발과 디자인에 관한 가이드로 가득 찬 블로그 'Done With Computers'의 저자다. 로저는 모든 세대의 사람들에게 자신만의 게임을 만드는 기쁨을 경험할 수 있는 지식과 기회가 주어지는 그런 세상이 머지않아 다가오리라고 진심으로 믿고 있다.

지은이의 말

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

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

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

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

옮긴이 소개

박지유

1990년대부터 IT업계에 종사해 온 실무자이자 기획자로서, IT 산업 전반과 게임 분야에 특히 관심이 많다. 다양한 기사와 도서의 번역가로도 활동 중이며, 번역서로는 에이콘출판사에서 출간한 『오픈소스와 소프트웨어 산업, 상생의 경제학』(2013)이 있다.

옮긴이의 말

모바일 게임 시장의 급성장으로 인해 기존 모바일 게임 개발자들뿐만 아니라, 새로운 개발자들도 모바일 게임 개발을 시작하고 있다. 현재 이들이 선택할 수 있는 가장 보편적인 개발 도구는 코코스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 깜짝 퀴즈 정답

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안