Chapter 01 HTML5에 대하여 HTML의 근본을 넘어 ... 20 JavaScript ... 21 AJAX ... 21 하나로 통합 ... 22 Google Gears ... 22 Chrome Frame ... 23 WebSocket과 Web Worker 이용하기 ... 24 WebSocket ... 24 Web Worker ... 25 Application Cache ... 26 데이터베이스 API ... 27 WebSQL API ... 27 IndexedDB API ... 28 Web Storage ... 29 Geolocation ... 30 알림으로 사용자 주의 끌기 ... 33 알림 표시 권한 요청 ... 34 알림 생성 ... 35 알림과 상호작용하기 ... 36 미디어 요소 ... 37 미디어 제어 ... 37 지원하지 않는 형식에 대한 처리 ... 38 HTML5 drawing API ... 40 Canvas ... 40 SVG ... 41 WebGL ... 41 마이크로데이터(Microdata)로 정보 전달하기 ... 42 요약 ... 43 Chapter 02 개발 환경 구성하기 개발 도구 ... 46 Java 설치하기 ... 46 Eclipse 통합 환경과 Google 플러그인 설치 ... 47 Google Web Toolkit 설치 ... 50 웹 서버 도구 및 선택 사항들 ... 51 Google App Engine ... 51 Opera Unite ... 51 Node.js와 RingoJS ... 52 Browser 도구 ... 53 Chrome Developer Tools ... 53 Chrome 확장 ... 54 Safari 개발자 도구 ... 55 Firebug ... 56 HTML5 도구 ... 56 ProcessingJS ... 56 Inkscape ... 57 SVG-edit ... 57 Raphael ... 59 3차원 모델링 도구 : Blender ... 59 요약 ... 60 Chapter 03 JavaScript JavaScript란 무엇인가 ... 62 JavaScript의 기본 형식 ... 62 산술 연산자 ... 63 JavaScript 함수 ... 63 First-class Object로써의 함수 ... 64 비교 연산자 ... 66 조건 순환과 문 ... 68 반복을 이용한 프로그램 제어 ... 69 setTimeout과 setInterval을 이용한 지연 실행 ... 71 상속과 다형성을 이용한 복잡한 개체 생성 ... 72 Prototype 라이브러리를 이용한 손쉬운 상속 ... 73 JQuery 배우기 ... 75 선택기를 활용한 DOM 조작 ... 76 JQuery 이벤트 ... 77 JQuery와 AJAX ... 78 교차 사이트 스크립팅 ... 78 JSON : 또 다른 JavaScript 형식 ... 79 브라우저 밖에서의 JavaScript ... 80 모바일 플랫폼 ... 81 중간 언어로서의 JavaScript ... 81 데스크톱에서의 JavaScript ... 81 서버 측 JavaScript ... 83 요약 ... 85 연습문제 ... 85 Chapter 04 게임의 동작 방법 게임 설계하기 ... 88 기본 설계 문서 작성하기 ... 88 게임 장르의 결정 ... 90 게임 루프 ... 90 사용자 입력 처리 ... 91 향상된 자료 구조로 게임 개체 구축하기 ... 92 Set을 활용한 독자적인 자료 목록 만들기 ... 92 연결 리스트를 이용한 개체 그래프 생성 ... 94 SGF API에 대한 이해 ... 95 Core API ... 96 Components API ... 97 Resources API와 네트워크 관련 API ... 98 SGF로 Pong 게임 만들기 ... 99 응용 프로그램 설정 ... 99 게임 요소 그리기 ... 101 충돌 감지와 반응을 이용한 충돌 구현하기 ... 103 뉴턴의 3 법칙 이해하기 ... 104 볼 움직이기 ... 105 Asteroids로 살펴보는 향상된 충돌 감지 및 입자 시스템 ... 107 인공지능을 이용한 상대 플레이어 생성 ... 109 Pong에 인공지능 추가하기 ... 109 Tic-Tac-Toe와 향상된 컴퓨터 인공지능 ... 110 요약 ... 113 연습문제 ... 113 Chapter 05 Canvas 태그로 게임 만들기 Canvas 시작하기 ... 116 첫 번째 경로 그리기 ... 118 Tic-Tac-Toe를 위한 스프라이트 그리기 ... 119 변환을 이용해서 Canvas에 그리기 ... 121 변형 정렬하기 ... 123 Canvas 그리기 상태의 저장 및 불러오기 ... 123 Canvas에서 이미지 사용하기 ... 124 Data URL을 이용해서 이미지 제공하기 ... 125 Spritesheets를 이용해서 이미지 제공하기 ... 125 Canvas에 이미지 그리기 ... 126 Trident.js를 이용해서 개체 애니메이션하기 ... 127 타임라인 만들기 ... 128 키프레임을 이용한 애니메이션 ... 129 Easing을 이용해서 비선형 타임라인 만들기 ... 130 Sprites를 이용한 게임 개체 애니메이션 ... 132 2차원 공간에서 3차원 모의하기 ... 133 원근 투영 ... 133 시차 ... 134 JavaScript로 시차 효과 만들기 ... 135 Copy Me 만들기 ... 137 게임 개체 그리기 ... 137 게임 사운드 만들기 ... 138 브라우저에서 MIDI 파일 재생하기 ... 140 다중 음향 재생하기 ... 140 순서대로 음향 재생하기 ... 141 게임에 문자열 그리기 ... 142 CSS 폰트를 이용한 문자열 스타일 적용 ... 143 요약 ... 144 연습문제 ... 144 Chapter 06 SVG와 RaphaёlJS를 이용한 게임 개발 SVG 소개 ... 146 RaphaёlJS 시작하기 ... 148 개발 환경 설정하기 ... 149 게임 보드 그리기 ... 150 문자열 그리기 ... 151 사용자 지정 폰트 ... 152 색상 지정 ... 156 게임 자원 읽기 ... 158 SVG 파일을 비트맵으로 변환하기 ... 159 게임 클래스 만들기 ... 160 카드 섞기 ... 161 카드 그리기 및 애니메이션 ... 162 향상된 애니메이션 만들기 ... 165 경로 ... 165 moveto와 lineto ... 166 curveto ... 167 SVG 파일로부터 경로 내보내기 ... 168 경로를 따라가며 애니메이션하기 ... 168 플러그인으로 Raphaёl 확장하기 ... 169 함수 추가 ... 170 SVG 필터 ... 170 속도 고려사항 ... 171 요약 ... 171 연습문제 ... 172 Chapter 07 WebGL과 Three.js로 게임 만들기 3차원 세상으로 ... 175 재질과 조명으로 사물을 더욱 돋보이게 만들기 ... 177 조명 이해하기 ... 177 재질(material)과 셰이더 사용하기 ... 178 첫 Three.js 장면 만들기 ... 181 뷰 설정하기 ... 181 세계 보기 ... 187 Three.js로 3차원 모델 로딩하기 ... 189 셰이더와 텍스처 프로그래밍하기 ... 191 텍스처 사용하기 ... 194 Three.js로 게임 생성하기 ... 197 게임 물리를 이용한 실세계 모의 ... 198 입자 시스템(Particle System) 다시보기 ... 202 장면 만들기 : 장면에서 물체 선택하기 ... 204 모델 애니메이션하기 ... 205 3차원 모델 구하기 ... 206 게임 벤치마크 ... 207 Stats.js로 프레임 속도 확인하기 ... 208 WebGL Inspector 사용하기 ... 208 요약 ... 209 연습문제 ... 210 Chapter 08 JavaScript 없이 게임 만들기 Google Web Toolkit ... 212 WGT 위젯과 레이아웃 이해하기 ... 213 JSNI을 이용하여 JavaScript 라이브러리를 GWT로 표현하기 ... 215 RaphaёlGWT ... 216 gwt-html5-media로 사운드 추가하기 ... 217 GWT로 drawing API에 액세스하기 ... 217 CoffeeScript ... 219 CoffeeScript 설치하기 ... 219 CoffeeScript 파일 컴파일하기 ... 220 CoffeeScript 빠르게 살펴보기 ... 221 기본 ... 221 함수와 호출 ... 222 별칭, 조건, 반복 ... 223 향상된 for 반복과 map ... 224 클래스와 상속 ... 225 대안 기술 ... 227 Cappuccino ... 227 Pyjamas ... 227 요약 ... 228 연습문제 ... 228 Chapter 09 멀티 플레이어 게임 서버 구축하기 Node.js란? ... 230 Node Package Manager로 Node 확장하기 ... 231 여러 Node 버전 관리하기 ... 232 ExpressJS로 웹 앱 간단하게 만들기 ... 232 URL 라우팅으로 요청 제공하기 ... 233 세션 관리하기 ... 235 ExpressJS 응용 프로그램 구조 이해하기 ... 236 CoffeeKup으로 HTML 템플레이팅하기 ... 237 캐시로 데이터 유지하기 ... 239 클라이언트/서버 통신 관리하기 ... 240 Socket.IO로 통신하기 ... 240 Express로 간단한 Socket.IO 응용 프로그램 설정하기 ... 241 NowJS로 Web Socket 간단하게 만들기 ... 242 Node 응용 프로그램 디버깅하기 ... 244 게임 서버 생성하기 ... 245 게임 대기실 만들기 ... 245 NowJS 그룹으로 게임방 생성하기 ... 247 게임 참여자와 게임방 사이의 이동 관리하기 ... 247 게임 플레이 관리하기 ... 248 요약 ... 250 연습문제 ... 250 Chapter 10 모바일 게임 개발 모바일 플랫폼 선택하기 ... 252 iOS ... 252 Android ... 253 WebOS ... 253 Windows Phone 8 ... 254 플릭, 탭, 스와이프: 모바일 제스처 가이드 ... 254 응용 프로그램과 웹 사이트 ... 255 모바일 장치에 데이터 저장하기 ... 257 접의식 의자(Lawnchair)에서 편하게 쉬기: 데이터를 저장하는 쉬운 방법 ... 257 Lawnchair 시작하기 ... 258 JQuery와 Zepto로 클라이언트 사이드 스크립팅 간단하게 하기 ... 260 JQuery 계열 ... 260 Zepto.js 사용하기 ... 262 JoAPP으로 응용 프로그램 설계하기 ... 262 응용 프로그램 프레임워크 선택하기 ... 264 PhoneGap ... 264 PhoeGap API 자세히 살펴보기 ... 265 Appcelerator Titanium ... 267 Appcelerator Titanium API 자세히 살펴보기 ... 267 Titanium과 PhoneGap으로 Android 응용 프로그램 패키지 만들기 ... 268 Titanium으로 응용 프로그램 패키지 만들기 ... 270 PhoneGap으로 응용 프로그램 패키지 만들기 ... 272 요약 ... 277 연습문제 ... 277 Chapter 11 게임 게시하기 게임 자산 최적화하기 ... 280 Google Closure Compiler로 최소화하기 ... 280 응용 프로그램 캐시로 오프라인에서 응용 프로그램 실행하기 ... 282 자체 서버에 운영하기 ... 286 Node.js 서비스를 호스트하는 곳에 응용 프로그램 배포하기 ... 287 Chrome 웹 스토어에 응용 프로그램 게시하기 ... 289 응용 프로그램 메타데이터 작성하기 ... 290 호스트 응용 프로그램 배포하기 ... 290 패키지 응용 프로그램 배포하기 ... 292 로컬에서 응용 프로그램 테스트하기 ... 292 Chrome 웹 스토어에 응용 프로그램 업로드하기 ... 293 응용 프로그램 구성하기 ... 294 패키지 Chrome 응용 프로그램과 호스트 Chrome 응용 프로그램 중 선택하기 ... 297 TapJS로 응용 프로그램 게시하기 ... 298 TapJS 응용 프로그램 생성하기 ... 298 TapJS 응용 프로그램 패키지 만들기 ... 301 TapJS 응용 프로그램을 Facebook에 게시하기 ... 301 Kongregate로 게임 게시하기 ... 303 HTML5 응용 프로그램을 데스크톱에 게시하기 ... 304 요약 ... 305 연습문제 ... 305