XNA를 이용한 Windows Phone 7 게임

프로그래밍

*저자: 이승훈, 김대호, 김응두, 임준철, 정병근

*출판사: 비제이퍼블릭

*출간일: 2011328()

*정가: 25,000

*페이지: 430p

*판형: 190 x 245

*ISBN: 978-89-94774-01-5(13560)

 

 

 

*책 소개

 

“누구나 쉽게 게임을 개발하고 공유하는 것이 XNA

철학이다.

 

- Microsoft

 

2004 XNA 처음 언급되었을 , Microsoft “누구나 쉽게 게임을 개발하고 공유한다.”가 XNA 철학이라고 소개했다. 2006 XNA 1.0 처음 발표된 , XNA 4.0부터는 PC Xbox 360, Windows Phone 7 이르는 다중 환경 게임개발의 기회를 제공하고 있다.

 

책에서, 다년간 XNA 대한 강의 게임제작 경험을 가지고 있는 저자들은 Microsoft에서 제공하는 자료와 게임개발 경험을 바탕으로 초보자가 XNA Windows Phone 이해하고 활용할 있도록 샘플 코드를 통해 자세하게 설명하고 있으며, Windows Phone 7 게임을 개발하는 필요한 기초적인 내용부터 실제 적용에 대한 부분까지 자세하게 다루고 있다.

 

책의 전반부에서는 기본적인 그래픽처리와 문자 출력 등에 대한 기초적인 부분과 터치, G 센서, 진동 등의 입력 장치와 네트워크 기능 구현 제작 방법들에 대한 부분까지도 자세히 다루고 있다. 후반부에서는 실제 Windows Phone 7 게임 제작 사례를 중심으로 기초 이론에 대한 적용을 설명하고, 최종적으로 성능향상을 위해 필요한 최적화에 대한 여러 가지 방법들에 대해 설명한다.

 

 

주요 내용

 

n  Windows Phone 7 개발환경 XNA Game Studio 중요 개념의 이해

n  게임 제작을 위한 기반 지식과 이론, 구현 방법에 대한 학습

n  그래픽, 사운드, 문자 출력에 대한 기반 지식과 실제 사용 방법

n  터치, G 센서, 진동 등의 입력장치 활용 방법

n  네트워크 기능 구현 제작 방법

n  성능 향상을 위한 다양한 최적한 방법에 대해 학습

n  예제 게임 제작을 통해 이론을 복습하고 실제 사용 방법에 대한 학습

 

 

최대한 많은 부분을 다루기 위해 노력했지만, 이번에 다루지 못한 부분 또는 책 내용에 대한 질문은 저자 블로그(blog.naver.com/mswhite73)를 통해 추가적인 정보를 얻을 수 있다.

 

 

 

 

*예약 구매

[YES 24]  [강컴]  [알라딘] [인터파크] [교보문고] [11번가]

 

 

 

*출판사 리뷰

 

기존 스마트폰들이 디자인이나 UI 등 기본적인 구성을 AppleiPhone과 유사하게 구성하는 것에 비해, MicrosoftWindows Phone 7은 차별화되는 새로운 디자인과 UI, 사용자의 경험을 기반으로 하는 UX 구성으로 아이콘을 중심으로 정적인 형태의 인터페이스를 제공하는 틀에서 벗어나 Live-tiles 인터페이스와 6개의 Windows Phone Hubs를 통한 화면 구성으로 보다 쉽고 편리하게 스마트폰을 사용할 수 있는 환경을 제공한다. 또한 운영체제 수준에서 제공하는 소셜 네트워크 기능은 다른 스마트폰과 가장 차별화 되는 기능이라고 할 수 있다.

 

이 책을 통해 설명하고자 하는 게임에 대한 부분이 Windows Phone 7이 가지는 가장 큰 강점이라고 할 수 있다. Microsoft2006년부터 누구나 쉽게 게임을 개발하고 공유한다는 철학을 바탕으로 XNA를 배포하고 있다. 200612XNA 1.0 버전 발표를 시작으로 XNA 3.0에서는 PC, Xbox 360, Zune 등 크로스플랫폼(Corss Platform) 게임 개발 기술을 제일 먼저 지원했고, XNA 4.0부터는 Windows Phone 7의 게임 개발 환경을 지원하고 있다. 또한 Xbox Live를 내장하고 있는데, AppleAppStore에 등록된 App80%가 게임이라는 것을 감안할 때 앞으로 모바일 시장에서 Windows Phone 7이 경쟁력을 확보하는 데 있어 중요한 역할을 할 것이다.

 

이 책은 XNA를 활용하여 Windows Phone 72D 게임을 한 학기 또는 하나의 과정에서 사용할 수 있도록 총 14개의 장들로 내용을 구성하고 있다. 중간고사 또는 전반부에는 1장에서 7장을 통해 XNA에 대한 기초 이론과 Windows Phone 7의 디바이스 등의 사용에 대한 부분을 예제를 중심으로 소개하고 있으며, 기말고사 또는 후반부의 8장에서 14장을 통해 실제 2D 게임에 적용할 수 있는 모든 기능들을 따라 하기 형태로 자세하게 설명하고 있다.

 

 

 

 

 

*저자소개


이승훈

()한국게임개발자협회 회장 XNA/DirectX MVP 활동하며 게임개발 기술에 대한 교류와 아마추어 개발자 지원에 많은 관심을 가지고 있다. 2008 XNA Game Studio 3.0 발표 때부터 대학 교육기관에서 “누구나 쉽게 게임을 개발하고 공유한다”는 XNA 철학을 전달하기 위해 노력하고 있다. XNA 활용해 Windows Phone 7 게임을 개발할 있도록 작성한 책을 통해 더욱 새로운 경험과 재미를 전달할 있는 많은 게임들이 만들어지기를 기대한다.

 

김대호

대학 시절 공모전 참가를 위해 만나게 Windows Phone 7 매력에 빠진 것이 계기가 되어 지금은 셀빅인터렉티브에서 스마트폰 기획자로 일하고 있다. Windows Phone 7 게임개발에 필요한 핵심 내용들을 중심으로 책을 집필하였으며, 게임개발을 꿈꾸는 모든 이에게 많은 도움이 되기를 바란다.

 

김응두

넥슨모바일에서 프로그래머로 근무하고 있으며, The Fool[어느 바보 이야기](http://blog.thefool.kr)라는 블로그를 운영 중이다. 대학시절 게임제작 동아리 『하눌신폭』에서 멀티플랫폼이라면 사족을 쓰던 엉뚱한 개발자이다. 스마트폰용 소셜네트워크 게임인 SwingQ 제작 이후 스마트폰에 빠져버렸다. 아마 지금 순간에도 모니터 앞에 스마트폰을 놓고 언제 어디서나 PC 스마트폰에서 함께 즐길 있는 그런 게임을 꿈꾸며 열혈코딩 중일지 모른다.

 

임준철

넥스토릭에서 기획자로 일하고 있으며, 지난 1년간 Windows Phone 7 게임을 제작하며 겪은 여러 역경을 이겨낸 경험을 중심으로 책을 집필하였다. 앞으로 많은 사람들이 관심을 가지게 분야라고 확신하지만, 아직 Windows Phone 7 출시되지 않았고 관련 정보나 기술들이 공개되지 않아 어디서 어떻게 시작해야할지 모르는 것이 현실이다. 이러한 상황에서 한권의 책이 아직 방향을 잡지 못하고 헤매는 독자들에게 새로운 플랫폼을 접하는 과정의 등대가 되어주길 바란다.

 

정병근

휴대용 게임기 개발회사인 ()지피에이치에서 CAANOO 플랫폼 기반 게임 및 애플리케이션을 개발하는 회사와 개인 개발자에 대한 기술 지원 업무를 담당하고 있다. 네오위즈 아카데미에 근무 당시 XNA 교재 개발 및 강의를 담당한 경험이 있으며, 아마추어 게임 개발자를 위한 세미나 및 특강 등에서 강사로 활동하고 있다.

 

 

 

*목차

 

추천의 글

저자의 글

 

1. Windows Phone 7

1.1 Windows Phone 7 소개

1.1.1 Windows Phone 7 사양

1.1.2 Windows Phone 7 특징

1.1.3 Windows Phone 플랫폼 아키텍처

1.1.4 Windows Phone 7 프레임워크

1.1.5 App Hub Marketplace

1.2 Windows Phone 7 개발환경 구축

1.2.1 Windows Phone 7 개발환경 소개

1.2.2 Windows Phone 7 개발환경 설치

1.2.3 Windows Phone 7 개발환경 업데이트 및 패치

 

2. XNA Game Studio 4.0

2.1 XNA Game Studio 소개

2.1.1 XNA 프레임워크 라이브러리

2.1.2 XNA Game Studio 템플릿

2.1.3 XNA Framework Game Loop

2.2 HelloWP7 프로젝트 따라하기

2.2.1 프로젝트 생성

2.2.2 문자열 출력 코드 입력

 

3. 그래픽 출력

3.1 화면 좌표계

3.1.1 화면 좌표계란?

3.1.2 화면좌표계에 영향을 미치는 요소

3.1.3 화면 해상도 설정

3.1.4 SupportedOrientations 설정

3.1.5 FullScreen 모드 설정

3.2 리소스

3.2.1 이미지 리소스 등록

3.2.2 지원 이미지 포맷

3.2.3 이미지 리소스 속성

3.2.4 이미지 리소스 로드

3.3 스프라이트(Sprite) 그리기

3.3.1 SpriteBatch.Begin 메서드

3.3.2 SpriteBatch.Begin 메서드 사용

3.3.3 SpriteBatch.End 메서드

3.3.4 SpriteBatch.Draw 메서드 동작 방식

 

4. 문자 출력

4.1 True Type Font

4.1.1 SpriteFont 파일 생성

4.1.2 SpriteFont 파일 작성

4.2 Bitmap Font

4.2.1 Bitmap Font 제작

4.2.2 Bitmap Font 등록

4.2.3 Bitmap Font 설정

4.3 SpriteFont

4.3.1 SpriteFont 로드

4.3.2 DrawString 메서드 동작 방식

4.4 Localization

4.4.1 문자 범위 변경

4.4.2 Localization Pipline

 

5. 사운드

5.1 사운드

5.1.1 사운드 생성

5.1.2 사운드 처리

5.1.3 사운드 리소스 등록

5.1.4 사운드 리소스 설정

5.2 Sound Effect

5.2.1 사운드 로드

5.2.2 사운드 재생

5.2.3 사운드 재생 변형

5.3 SoundEffectInstance

5.3.1 사운드 로드

5.3.2 사운드 재생

5.3.3 사운드 재생 변형

5.4 Song

5.4.1 사운드 로드

5.4.2 사운드 재생

5.4.3 사운드 재생 변형

5.5 3D 사운드 효과

5.5.1 3D 사운드 이해

5.5.2 3D 사운드 사용

 

6. 입력 장치

6.1 키보드

6.1.1 하드웨어 키보드

6.1.2 소프트웨어 키보드

6.2 터치 스크린

6.2.1 TouchLocation

6.2.2 GestureSample

6.3 카메라

6.4 G 센서

6.5 GPS

6.6 진동

 

7. 네트워크

7.1 WCF

7.1.1 WCF?

7.1.2 WCF 구조

7.1.3 WCF ABC

7.1.4 종점의 개념

7.1.5 서비스 호스트와 클라이언트

7.1.6 WCF 방식 예제

7.2 HttpWebRequest

7.2.1 HttpWebRequest?

7.2.2 HttpWebRequset 방식 예제

7.3 WebClient

7.3.1 WebClient?

7.3.2 WebClient의 메서드

7.3.3 WebClient방식의 예제

7.4 Cross-Domain 정책 파일 정책

7.4.1 Cross-Domain 정책 파일 정책 이란?

7.5 Push Notification

7.5.1 Push Notification이란?

7.6 Push Notification 방식 예제

7.6.1 서버 구성

7.6.2 클라이언트 생성

 

8. 배경 화면 제작

8.1 배경화면 클래스

8.1.1 화면 출력

8.1.2 업데이트

8.2 배경화면 클래스 적용

8.3 시차 스크롤

 

9. 객체 추가

9.1 플레이어

9.1.1 게임 오브젝트 클래스 작성 및 활용

9.1.2 객체 조작

9.1.3 객체 이동 제한

9.2 총탄

9.2.1 게임 오브젝트 클래스 수정 및 활용

9.2.2 화면 충돌 처리

9.2.3 객체 조작

9.3 적기

9.3.1 게임 오브젝트 클래스 활용

9.3.2 업데이트

9.3.3 화면 출력

9.3.4 화면 충돌 처리

9.3.5 랜덤 생성 처리

 

10. 게임 개선

10.1 셀 애니메이션

10.1.1 애니메이션 정보 클래스 제작

10.1.2 텍스처 정보 통합 관리

10.1.3 셀애니메이션 정보 보관소 클래스 제작

10.1.4 셀애니메이션 재생기 제작

10.2 플레이어 개선

10.2.1 플레이어 클래스 제작 및 활용

10.3 총탄 개선

10.3.1 총탄 클래스 제작 및 활용

10.3.2 총탄 클래스 무한 발사 추가

10.3.3 총탄 클래스 연속 발사 추가

10.3.4 총탄 클래스 다중 발사 추가

10.4 스프라이트시트

10.4.1 스프라이트시트 클래스 제작 및 적용

 

11. 충돌 처리 제거

11.1 도형 충돌 처리

11.1.1 도형 충돌 처리 활용

11.2 색상 충돌 처리

11.2.1 색상 충돌 처리 적용

 

12. UI 구성

12.1 화면 구성

12.1.1 메인에서 게임 분리

12.1.2 시작화면 추가

12.1.3 메뉴 추가

12.2 스코어

12.2.1 게임 스코어 출력

12.2.2 스코어 저장/로드

12.2.3 스코어 화면 구성

12.3 키패드(ThumbStick)

12.3.1 키패드(ThumbStick) 생성

12.3.2 키패드(ThumbStick) 적용

12.4 화면 전환(Tombstone)

12.4.1 화면 전환(Tombstone) 추가

12.4.2 화면 전환(Tombstone) 적용

 

13. 효과 추가

13.1 사운드 효과

13.1.1 사운드 활용

13.1.2 사운드 주의 사항(DRM에러 처리)

13.2 진동 효과

13.2.1 진동 활용

13.3 파티클(폭발) 효과

13.3.1 파티클 클래스 제작

13.3.2 파티클 관리자 클래스 제작

13.3.3 폭발효과 클래스 제작

13.3.4 연기효과 클래스 제작

13.3.5 파티클 클래스 활용

 

14. 최적화

14.1 시간 단축

14.1.1 FPS측정

14.1.2 리소스 최적화

14.1.3 해상동 조절

14.1.4 로직 흐름 최적화

14.2 CPU 성능 향상

14.2.1 GabageCollector 호출 회피

14.2.2 WeakReference 이용

 

찾아보기

 

 

  

*추천사

 

이제 게임은 스마트폰에서 가장 널리 인기 있는 App 중 하나가 되었다. 작년 1028, Windows Phone 7이 북미 및 유럽에 출시된 이후 Marketplace에 올라가 있는 App의 개수가 2월말 약 9천개가 넘어가고 있다. 그리고 그 중 13% 이상을 게임이 차지하는 것을 보면 알 수가 있다.

 

2010, MWC에서 Windows Phone 7이 전 세계적으로 처음 공개되었고 ‘A different Kinds of Phone’이라는 슬로건으로 차별화된 사용자 경험을 선보였다. 이것은 이전의 Windows Mobile과 차원이 다른 경험을 선사했고 많은 소비자, 제조사, 이통사가 이 독특한 사용자 경험이 반해 버렸다.

 

Windows Phone 7의 독특한 사용자 경험은 ‘메트로(Metro)’라고 부르는 새로운 Microsoft의 컨셉을 도입하여 적용했다. 우리가 흔히 보는 도시의 푯말 등을 스마트폰에 옮겨 놓은 것이다. 예를 들어, 지하철에서 내려 몇 번 출구로 나가야할지를 우리는 안내 푯말을 보고 나갈 수 있다. 이 안내 푯말을 Windows Phone 7에서는 Live-tiles이라고 부르며, App을 실행해주거나 웹이나 클라우드 서비스 정보를 실시간 업데이트해준다.

 

애플리케이션 아키텍처 부문도 혁신적으로 변경하게 되었는데, 기존의 C/C++ 언어를 이용하는 방법을 배제하고 관리형 언어인 .NET(C#VB.NET 언어를 주로 사용함)을 도입하여 SilverlightXNA를 제공하기 시작했다.

 

XNA는 원래 관리형 DirectX에서 발전한 게임 개발 프레임워크로서 PC상의 캐주얼 게임을 개발하려는 목표에서 발전하여 XBOX 360, Zune에서 게임을 즐길 수 있도록 발전해 왔다.

 

마침내 Windows Phone 7에서는 XNA 4.0 버전으로 Windows Phone 개발 도구에 통합되어 무료로 제공할 뿐만 아니라 XBOX Live 허브에서 내장되어 XBOX 360 키넥트에서의 아바타, 목표 점수와 실행 점수 등을 공유할 수 있고 친구들에게 메시지를 보낼 수 있도록 제공해준다.

 

이러한 XNA의 엄청난 잠재력 때문에, Windows Phone 7 게임 개발에 대한 관심이 이렇게 높은지 이해할 수 있을 것이다. 그리고 여러분들이 이 책을 펴든 이유가 될 것이다. 이 책은 한국게임개발자협회 이승훈 회장을 포함한 저자들이 심혈을 기울여 그 동안의 게임 개발 경험을 토대로 XNA를 처음 배우는 분들에게 쉽게 접근할 수 있도록 저술하였다.

 

따라서 전반적인 XNA 프레임워크 아키텍처뿐만 아니라 Windows Phone 7에서의 입력 장치 컨트롤, 그리고 신나고 재미있는 게임 요소 등을 구성하기 위한 콘텐츠 파이프라인 사용법, 게임의 핵심 요소인 충돌 감지 및 이펙트 그리고 멀티 플레이어 네트워크 게임 개발을 위한 HTTPWCF 네트워킹을 다루는 법까지 차근차근 설명해 놓았다.

 

게임 개발자는 인간의 상상력을 실제 구현해 주는 사람이라고 생각한다. 상상 속에서 솟아난 아이디어를 모아 게임 장치와 사람들 사이에 상호 작용을 돕고 흥미를 느낄 수 있는 것이 진정한 사람들이 하고 싶어 하는 게임이라고 생각한다.

 

이제 이 책을 찬찬히 읽으며 무한한 Windows Phone 7 게임 개발을 시작하자!

 

 

어느 삼성동 카페에서, 서진호 부장

 

Microsoft, Windows Phone 7 개발자 전도사

http://www.facebook.com/windowsphonekorea



Trackback 0 | Comments 11

퍼블릭's Blog is powered by Daum & tistory