책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788960772328
· 쪽수 : 657쪽
책 소개
목차
『플래시 멀티플레이 게임 개발』
1장. 오늘날의 웹 게임
___멀티플레이 게임은 어디에 적합할까
___접속 기능
2장. 사용자 접속
___소켓 서버 선택
3장. 보안: 나 자신 vs. 사용자
___논리적 보안
___물리적 보안
___서비스 기능
4장. 일렉트로서버 소개
___설치
___헬로우 월드
___관리자 페이지
___둘러보기
5장. 대화
___간단한 대화방
___대화 메시지 보내기
___새로운 개념
6장. 결정 우선권
___일렉트로버 플러그인의 개념
___확장 기능 설치
___땅파기 게임
7장. 실시간 이동
___컨트롤 반응
___경로의 종류
___프레임 기반 이동
___지연 과 시동기화
___시간 기반 이동
___공통 기능
8장. 로비 시스템
___게임 진행
___땅파기 게임2
___게임 둘러보기
9장. 실시간 탱크 게임
___주도권과 예측
___시선
___게임 메시지
___미니맵
___메시지 통합
___맵 에디터
___공간 음향
___아트 vs. 타일
10장. 타일 기반 게임
___타일 기반의 장점
___에이스타A* 경로탐색
11장. 협력적 게임 진행
___협력의 다양한 방식
___예제 게임: 슈퍼 블롭 브라더스
___서버 대 클라이언트: 누가 보스인가?
___게임 메시지
___클라이언트 상세
12장. 등척 투영 시점
___등척 투영 보기의 기본과 장점
___기술적 측면
___정렬 알고리즘
___아바타와의 만남
13장. 아바타
___렌더링
___스프라이트 시트
___아바타 생성과 수정
___공통 기능
14장. 가상세계
___낡은 세계
___지도 파일
___맵 렌더링
___가상세계
___관계
15장. 친구 맺기
___낡은 세계의 친구
___오픈 하우스
16장. 사용자 홈
___낡은 세계의 사용자 홈
___서버 레벨 컴포넌트
부록 예제 확장기능 설치
___낡은 세계
___로그 설정
___서버 개발 환경 설정
『플래시 게임 마스터』
1부 기본 게임 프레임워크
1장 두 번째 게임 이론
___게임 개발은 반복 과정
___게임 개발의 동기 이해
___이 책의 대상 독자
______이 책의 시작 내용
______AS3와 AS2의 비교
______AS2는 이미 죽은 언어이므로 더 이상 고집해서는 안 된다
______이 책의 개발 환경
___AS3 게임 프레임워크를 통한 게임 개발
______객체지향적 방법론
_________캡슐화
_________상속
______객체지향적 설계를 통한 게임 개발
___기본 게임 프레임워크의 생성
______상태 루프
______게임 타이머
______이벤트 모델
______게임 테스트
___두 번째 게임: 풍선 톱날 게임
______게임에 필요한 자원
_________그래픽
_________사운드
______설정
______코드
______풍선 톱날 게임 플레이
______풍선 톱날 게임의 코드 살펴보기
_________임포트
_________변수
_________Game 생성자
_________게임 루프의 초기화
_________playGame() 함수
_________풍선 생성
_________풍선 이동
_________톱날과 풍선의 충돌 검사
_________게임 종료
___세 번째 게임: 픽셀 슈터 게임
______픽셀 슈터 게임의 설계
______픽셀 슈터 게임의 그래픽
______픽셀 슈터 게임의 사운드
______픽셀 슈터 게임의 코드
______픽셀 슈터 코드의 주요 부분
_________새로운 변수
_________플레이어의 시작과 재시작
_________여러 객체의 추적
_________미사일 발사
_________다양한 객체에 대한 충돌 감지
_________폭발 애니메이션의 생성
___정리
2장 AS3 게임 프레임워크 개발
___게임 프레임워크 살펴보기
______GameFrameWork.as 클래스
______FrameWorkStates.as 클래스
______BasicScreen 클래스와 SimpleBlitButton 도우미 클래스
______ScoreBoard 클래스와 SideBySideScoreElement 도우미 클래스
______Game 클래스
______커스텀 이벤트 클래스
_________CustomEventButtonId.as 클래스
_________CustomEventLevelScreenUpdate.as 클래스
_________CustomEventScoreBoardUpdate.as 클래스
___프레임워크의 패키지 구조
______source 폴더
______classes 패키지
______projects 패키지
_________플래시 IDE 패키지 구조
_________플렉스 SDK 패키지 구조
______Main.as와 StubGame.as 파일
___프레임워크 패키지를 활용한 프로젝트 시작
______플래시 IDE에서의 스텁 게임 프로젝트 생성
______플래시 디벨롭에서의 스텁 게임 프로젝트 생성
___게임 타이머의 생성
______'프레임 타이머의 간격'의 정의
___상태 기계
___FrameWorkStates.as 클래스 파일
______상태 변수
___GameFrameWork.as 클래스 파일
______클래스 임포트
______변수 정의
_________상태 제어 변수
_________배경 채색 변수
_________타이머 변수
_________화면 정의 변수
_________ScoreBoard 변수
_________Game 객체 변수
_________대기 변수
______생성자 정의
______init 함수 정의
______setApplicationBackGround 함수 정의
______startTimer 함수 정의
______runGame 함수 정의
______switchSystemState 함수 정의
______systemTitle 함수 정의
______systemWaitForClose 함수 정의
______okButtonClickListener 함수 정의
______systemInstructions 함수 정의
______systemGameOver 함수 정의
______systemNewGame 함수 정의
______systemNewLevel 함수 정의
______systemLevelIn 함수 정의
______systemWait function 정의
______waitCompleteListener 함수 정의
______systemGameplay() 함수 정의
______커스텀 이벤트 리스너 함수
______Main.as의 scoreBoardUpdateListener 함수 정의
______Main.as의 levelScreenUpdateListener 함수 정의
______Main.as의 gameOverListener 함수 정의
______Main.as의 newLevelListener 함수 정의
___Main 이외의 프레임워크 클래스
______BasicScreen 클래스
_________BasicScreen의 클래스 임포트와 변수 정의 영역
_________클래스 생성자 정의
_________createDisplayText 함수 정의
_________createOkButton 함수 정의
_________setDisplayText 함수 정의
_________버튼 리스너 함수 정의
___SimpleBlitButton 클래스
_________SimpleBlitButton 클래스의 클래스 임포트와 변수 정의
_________SimpleBlitButton 클래스의 생성자 정의
_________changeBackGroundColor 함수 정의
___CustomEventButtonId 클래스
_________CustomEventButtonId 클래스의 클래스 임포트와 변수 정의
_________CustomEventButtonId 클래스의 생성자 정의
_________CustomEventButtonId 클래스의 clone 함수 정의
___CustomLevelScreenUpdate 클래스
___CustomEventScoreBoardUpdate 클래스
___ScoreBoard 클래스
_________ScoreBoard 클래스의 클래스 임포트와 변수 정의
_________createTextElement 함수 정의
_________update 함수 정의
_________SideBySideScoreElement 클래스
_________생성자 정의
_________setLabelText와 setContentText 함수 정의
______Game 클래스
___스텁 게임 클래스
______게임의 목적
______게임 상태의 화면 흐름
______게임의 ScoreBoard 상수
______Main.as 클래스의 작성
______Main 클래스의 클래스 임포트와 변수 정의
______생성자와 init 함수 정의
_________game 인스턴스의 생성
_________애플리케이션 배경의 설정
_________ScoreBoard의 생성
_________제목 화면의 생성
_________안내 화면의 생성
_________게임 오버 화면의 생성
_________Level In 화면의 생성
_________상태 기계의 초기 설정
_________게임 타이머의 시작
______이 클래스에서 하는 일
___테스트
___정리
3장 슈퍼 클릭
___슈퍼 클릭 게임의 설계 문서 작성
______게임의 기본 성격 정의
______레벨 진행 방식
______필요한 기본 화면의 정의
______게임 플레이 변수 정의
______커스텀 ScoreBoard 항목의 정의
______게임 플레이 방식과 흐름 설명
______레벨 클리어 조건의 판단
______게임 종료 조건의 판단
______필요한 이벤트의 정의
______게임의 고유 커스텀 클래스 정의
___슈퍼 클릭 게임의 개발
______프로젝트 시작
______플래시 IDE 환경에서의 슈퍼 클릭 게임 프로젝트 생성
______플래시 디벨롭 환경에서의 슈퍼 클릭 게임 프로젝트 생성
______클래스 파일 목록
______Main.as 클래스의 생성
______Main.as의 클래스 임포트와 변수 정의
_________Game 인스턴스 생성
_________애플리케이션 배경 설정
_________Scoreboard 생성
_________제목 화면 생성
_________안내 화면 생성
_________게임 오버 화면 생성
_________Level In 화면 생성
_________상태 기계의 초기 설정
_________게임 타이머 시작
___슈퍼 클릭 게임의 Game 클래스 작성
______SuperClick.as의 클래스 임포트와 변수 정의
______SuperClick.as의 생성자와 init 함수 정의
______newLevel 함수의 정의
______runGame 함수의 호출
______update 함수의 정의
_________화면상의 원 추가
_________화면상의 원 업데이트
_________ScoreTextField 인스턴스의 업데이트
______순환문 최적화
______removeCircle 함수의 정의
______removeScoreText 함수의 정의
______checkCollisions 함수의 정의
_________원의 페이드아웃
______addToScore 함수의 정의
______render 함수의 정의
______checkForEndGame 함수의 정의
______checkforEndLevel 함수의 정의
______cleanUp 함수의 정의
___Circle 클래스
______Circle 클래스의 정의
______패키지 구조 내에서의 Circle 클래스 생성
______Circle.as 클래스의 클래스 임포트와 변수 선언
______Circle.as 클래스의 생성자와 init 함수 정의
______Circle.as의 update 함수 정의
______Circle.as의 dispose 함수 정의
______Circle.as의 clickedListener 함수 정의 수정
___ScoreTextField 클래스
______ScoreTextField 클래스의 정의
______패키지 구조 내에서의 ScoreTextField 클래스 생성
______ScoreTextField의 update 함수 정의
______ScoreTextField의 dispose 함수 정의
___테스트
___정리
2부 게임 제작
4장 대공포 게임의 기반 다지기
___미사일 커맨드에 대한 짧은 소개
___게임 설계
___4장의 게임 개발에 필요한 기본 개념
___게임 자원의 라이브러리 추가
______Spritelib GPL를 활용한 그래픽 생성
______SFXR를 활용한 사운드 제작
___플래시와 플래시 디벨롭/플렉스의 라이브러리 차이
______그래픽 자원의 활용
______사운드의 활용
___사운드 매니저의 생성
___설정을 통한 난이도 조절
______난이도 설정
___벡터상에서 이동하는 스프라이트의 생성
______두 점 사이를 이동하는 스프라이트의 정의
_________Shot
_________BonusPlane
_________Ship
______연속 벡터를 이동하는 객체의 생성 - Enemy
___애니메이션이 적용된 스프라이트의 생성
______Flak
_________Explosion
___정리
5장 대공포 게임 루프의 개발
___대공포 게임의 흐름 이해
___GameFramework.as 업데이트
___Main.as의 정의
___FlakCannon.as
______클래스 임포트
______FlakCannon.as의 속성과 생성자
______새 게임의 시작
_________새 레벨의 시작
_________마우스 이벤트 처리와 crosshairs의 작업 시작
_________함선의 배치
_________newLevel 이벤트의 처리
_________게임 테스트
___게임 루프의 생성
______적 전투기의 검사
______보너스 비행기의 체크
______객체 업데이트
______객체의 제거
______기본적인 비트맵 충돌 감지
______객체 렌더링
______레벨 클리어
______게임 종료
___게임 플레이!
___정리
6장 노 탱크 게임의 기반 다지기
___노 탱크 게임의 설계
___6장과 7장의 게임 개발과 관련한 기본 개념
___라이브러리로 게임 자원 추가
______Spritelib GPL의 활용
______타일 시트의 활용
______게임 레벨의 타일 조직화
______레벨의 생성
___매피 툴을 활용한 레벨 생성
______스프라이트와 타일과 배경
______타일 시트의 생성
___매피를 활용한 게임 레벨의 생성
______이중 레이어 맵의 생성
_________배경 레이어의 생성
_________스프라이트 레이어의 생성
______레벨 FMP 파일의 저장
______매피에서 레벨 내보내기
_________배경 레이어 내보내기
_________스프라이트 레이어 내보내기
___프로젝트 설정
______플래시 IDE에서의 노 탱크 게임 프로젝트 생성
______플래시 디벨롭에서의 노 탱크 게임 프로젝트 생성
___XML을 통한 타일 시트의 정의
______TilesheetDataXML.as 클래스의 생성
_________Tile 어트리뷰트
_________코드의 적용 방식
___타일 시트의 코드 활용 예제
______GameDemo.as 클래스의 작성
______타일 시트 데이터 읽기
_________상수
_________initTileSheetData 함수
_________테스트
___화면상에서의 레벨 데이터 표현
______코드 조직화
______플렉스 프로젝트 전용 Library.as 클래스의 추가
______플래시 IDE 전용 라이브러리 자원 추가
______플렉스와 플래시 IDE에서의 라이브러리 자원 활용
___타일 시트 블리팅과 스프라이트
______'블리팅'의 정의
______'스프라이트'의 정의
______스프라이트와 블리팅의 차이점
______플래시를 통한 응용
______타일과 스프라이트 시트의 차이점
_________전체 화면 블리팅
_________개별 객체 블리팅
_________블리팅 방식의 조합
______블리팅 렌더링 속도의 테스트
______타임라인 기반 애니메이션의 성능 테스트
______개별 객체 블리팅의 성능 테스트
______전체 화면 블리팅의 성능 테스트
_________테스트 결과의 해석
___TileSheet 클래스
______TileSheet의 속성 정의
______레벨 데이터 읽기
_________Level 클래스
_________Level1 클래스의 생성
______GameDemo.as 파일의 업데이트
_________클래스 임포트
_________변수 정의
_________생성자
_________readBackGroundData 함수
_________readSpriteData 함수
_________drawLevelBackGround 함수
_________게임 렌더링의 조직화
___정리
7장 노 탱크 게임의 완성
___타일 기반 움직임에 대한 기본 이론
______타일 점핑
______부드러운 타일 간 이동
___BlitSprite 클래스
___BlitSprite 클래스를 활용한 애니메이션
___TileByTileBlitSprite 클래스
___미로 안에서의 플레이어 이동
______타일 중심 트릭
___플레이어의 추가(반복 1)
______반복 1을 위한 클래스명의 변경
______import 영역에 새 프레임워크 클래스 추가
______반복 1의 변수 정의
______반복 1의 init 함수
______반복 1의 restartPlayer 함수
______readSpriteData 함수
______반복 1의 테스트
___키 로직을 활용한 플레이어의 이동(반복 2)
______반복 2를 위한 클래스명 변경
______간단한 임시 게임 타이머의 추가
______화살표 키를 통한 플레이어의 이동 상태 변경
______키 입력 로직의 추가
______반복 2의 테스트
___플레이어 움직임과 관련한 이동 상태의 업데이트(반복 3)
______반복 3을 위한 클래스 수정
______이동 상태 상수의 추가
______반복 3의 runGame 함수 수정
______checkInput 함수의 업데이트
______checkTile 함수의 추가
______checkCenterTile 함수의 추가
______switchMovement 함수의 추가
______반복 3의 테스트
___플레이어의 움직임 업데이트와 렌더링(반복 4)
______반복 4를 위한 클래스명 변경
______반복 4를 위한 변수 정의 업데이트
______반복 4를 위한 runGame 함수의 업데이트
______update 함수의 추가
______render 함수의 추가
______반복 4의 테스트
___적 탱크의 이동 로직 추가(반복 5)
______반복 5를 위한 클래스명 변경
______반복 5를 위한 변수 정의 업데이트
______init, newGame, newLevel 함수의 업데이트
______setRegions 함수의 추가
______readSpriteData 함수의 수정
______반복 5의 테스트
___AI를 통한 적 탱크의 이동(반복 6)
______반복 6을 위한 클래스명의 변경
______restartPlayer 함수에 대한 코드 추가
______적 탱크에 대한 update 함수와 render 함수의 수정
______적 탱크 AI에 사용할 새 함수의 추가
_________플레이어 추적
_________chaseObject 함수
_________checkLineOfSight 함수
_________fireMissileAtPlayer 스텁 함수
_________변수 정의 추가
______반복 6의 테스트
___프레임워크로의 통합
______Main.as 프레임워크 클래스로의 통합
_________애플리케이션 배경과 게임 스프라이트의 위치
_________점수판
_________화면
_________사운드
_________사운드 재생을 위한 새로운 함수 오버라이드
______Library 클래스의 마무리
___Level.as과 Level1.as 클래스의 마무리
___NoTanks.as 파일의 마무리
______클래스명을 NoTanks.as로 변경
______NoTanks.as에 대한 클래스 임포트 영역 추가
______NoTanks.as 클래스의 변수 추가
______NoTanks.as의 새로운 init 함수 추가
______newGame 함수의 작성
______newLevel 함수의 작성
______restartPlayer 함수의 작성
______runGame 함수의 재작성
______checkInput 함수의 추가
______update 함수의 개선
______checkHitWall 함수의 추가
______checkCollisions 함수
______NoTanks.as의 render 함수 업데이트
______레벨 클리어나 게임 오버에 대한 검사
______미사일 발사 함수의 작성
______readBackGroundData 함수의 수정
______readSpriteData 함수의 수정
______checkLineOfSight 함수의 수정
______createExplode 함수의 추가
______객체 정리 함수의 작성
___최종 게임 테스트
___게임 확장
___정리
8장 컬러 드롭 캐주얼 퍼즐 게임의 개발
___캐주얼 게임의 발전 과정
___게임의 설계
___8장의 게임 개발에 필요한 기본 개념
___라이브러리에 게임 자원 추가
______사운드의 추가
______그래픽의 추가
______컬러 드롭 게임의 클래스 정의
___컬러 드롭 게임의 Main 클래스 업데이트
___Block 클래스의 작성
___CustomEventClickBlock 클래스의 작성
___레벨 클래스를 통한 난이도 조절
___GameStates 클래스의 작성
___기본 게임 구조의 구현
___게임 초기화
______ColorDrop 상태 기계의 추가
___화면에 블록 추가
___컬러 드롭 게임의 update와 render 함수 확장
___사용자 입력의 대기
______재귀 함수를 사용하지 않는 블록 검사
______블록의 제거
___레벨 클리어와 게임 종료
___테스트
___정리
9장 주사위 배틀 퍼즐 게임의 개발
___지적 재산권법
______저작권에 대한 고려
______상표에 대한 고려
______특허에 대한 고려
______황금룰 따라 하기
___주사위 배틀 게임의 설계
___9장의 게임 개발에 필요한 기본 개념
___라이브러리에 게임 자원 추가
______주사위 배틀 게임에 그래픽 추가
______주사위 배틀 게임에 사운드 추가
___Main.as에서 사운드트랙 재생
______ScoreBoard의 업데이트
______사운드트랙의 재생
______Main.as 클래스의 업데이트
___클래스를 통한 AI 난이도 설정
___Die 클래스의 작성
___CustomEventClickDie 클래스의 작성
___Character 클래스의 작성
___GameStates 클래스의 추가
___Game.as에서의 게임 설정
___컴퓨터 플레이어의 생성
___새로운 게임 상태를 활용한 턴 플레이
___플레이어의 이동 감지와 점수 부여
___미니맥스 스타일의 AI 구현
______주사위 배틀 AI의 분석
______주사위 배틀의 AI에 대한 설명
___레벨 클리어와 게임 종료
___주사위 배틀 게임의 나머지 코드
___테스트
___정리
10장 타일 기반 게임의 블릿 스크롤
___오빠 달려 게임의 설계와 시작
___10장에서 다루는 게임 개발 개념
______새 클래스 정의
______게임 프레임워크와의 연동
______Library 클래스의 수정
______커스텀 LevelInScreen 클래스의 추가
______레벨 사이의 전환
___자유 형태의 타일 기반 이동
______자유 형태의 타일 기반 이동의 정의
_________MoveClip 스테이지 스크롤 방식
_________GAS(gotoAndStop) 타일
_________타일 기반의 블릿 스크롤
_________게임 공간
_________카메라
_________버퍼
_________결과 캔버스
___게임 공간의 생성
______타일 시트 생성
______담벼락 타일과의 충돌 감지
______게임 레벨의 정의
______레벨 데이터 가져오기
___기본적인 자동차 물리학의 적용
______전진과 후진
______방향 전환
___오빠 달려 게임의 준비 작업
______플래시 IDE에서의 프로젝트 생성
______플래시 디벨롭에서의 게임 프로젝트 생성
___오빠 달려 게임에 필요한 Main.as 클래스의 업데이트
______점수판 항목의 추가
______화면의 수정
______사운드의 수정
______LevelInScreen으로의 전환
______LevelInScreen 텍스트의 업데이트
______게임 프레임레이트의 증가
______CustomEventHeartsNeeded.as 클래스의 작성
______Library.as 클래스의 생성
___새로운 프레임워크 클래스의 생성
______BasicFrameTimer 클래스의 생성
______LookAheadPoint 클래스의 생성
______CarBlitSprite 클래스의 생성
______Camera2D 클래스의 생성
_________이중(또는 삼중) 버퍼
___오빠 달려 게임의 전용 클래스 생성
______TileSheeDataXML 클래스
______Level.as 클래스
______Level1.as 클래스
___Game 클래스의 반복
______Game 클래스의 전체 구조, 변수, 생성자의 작성(반복 1)
_________키 입력 상수
_________내부 상태 기계
_________제목, 디스플레이, 게임 공간
_________카메라
_________자동차 사운드
______반복 2를 통한 동작 가능 클래스의 구현
______게임 설정(반복 3)
_________init 함수
_________newGame 함수
_________initTileSheetData 함수
_________newLevel 함수
_________setUpWorld 함수
_________restartPlayer 함수
_________자동차와 게임 공간의 동시 이동
_________systemGamePlay 함수
_________반복 3의 게임 테스트
______플레이어 입력과 update/render 루프의 추가(반복 4)
_________update 함수
______checkInput 함수
______render 함수
_________drawCamera 함수
_________drawPlayer 함수
_________반복 4의 테스트
______충돌 검사와 레벨이나 게임 종료(반복 5)
_________checkCollisions 함수
_________나머지 게임 함수
___최종 게임 테스트
___게임의 확장
___정리
11장 최적화를 적용한 포스트 복고 게임 개발
___포스트 복고 게임의 이해
_________포스트 복고의 정의
_________포스트 복고 게임의 특징
_________새롭게 등장하는 포스트 복고 게임의 특징
_________포스트 복고 게임의 역사
_________포스트 복고 게임 장르가 개발자에게 의미하는 것
___블래스터 마인의 설계
___11장에서 다루는 게임 개발 이론
___게임 프레임워크의 수정
______스테이지 접근에 대한 검사
_________addedToStage 함수의 추가
______일시 정지와 음 소거 기능의 추가
___시간 기반의 단계 타이머 추가
______runEnterFrame 함수의 추가
___렌더 프로파일링을 통한 최적화
______FrameRateProfiler의 기술적인 설계
___프레임레이트와 메모리 사용량 모니터링
___게임 클래스의 수정
___블래스터 마인 프로젝트의 시작
______플래시 IDE에서의 블래스터 마인 프로젝트 생성
______플래시 디벨롭에서의 블래스터 마인 게임 프로젝트 생성
___블래스터 마인 게임의 Main.as 클래스 생성
______일시 정지 기능과 음 소거 기능의 구현
_________생성자 수정
_________addedToStage 함수의 추가
______블래스터 마인의 시간 기반 단계 타이머 구현
______블래스터 마인의 FrameRateProfiler 커스터마이징
_________frameRateProfileComplete 함수의 작성
______Library.as 클래스의 생성
______SoundManager 클래스의 수정
___객체 풀을 통한 최적화
______프로세서 실행 시간의 단축
______메모리 보존
______게임에서 사용할 객체 풀의 구현
______블래스터 마인 게임의 객체 풀에 대한 기술 명세 작성
_________private 변수의 추가
_________풀에서의 입자 인스턴스 생성
_________입자의 활성화
_________입자의 비활성화
___단일 단위 처리를 통한 최적화와 메모리 보존
______전역 이벤트 객체의 재사용
___룩업 테이블의 최적화
______벡터 룩업 테이블의 생성
______vectorRotationList 룩업 테이블의 접근
___ScrollRect를 통한 화면 기반의 블릿 스크롤 최적화
___레이더 화면을 위한 BitmapData의 재사용과 최적화
___새로운 게임 클래스의 생성
______BlitArrayAsset 클래스의 설계
______BasicBlitArrayObject 클래스의 설계
______BasicBlitArrayParticle 클래스의 설계
______BasicBlitArrayProjectile 클래스의 설계
______BlitArrayPlayerFollowMouse 클래스의 설계
______MineManager 클래스의 설계
______ParticleManager 클래스의 설계
______ProjectileManager 클래스의 설계
______Mine 클래스의 설계
___BlasterMines 클래스의 개발
______BlasterMines 클래스의 기본 골격
______블래스터 마인 게임의 init 함수 추가
______newGame과 newLevel 함수의 추가
______게임 루프의 업데이트와 내부 상태 기계
______update, autoShoot, render, collision 함수 추가
______보조 함수의 추가
___전체 GameFrameWork 클래스
___테스트
___정리
12장 바이럴 게임 터널 패닉 개발
___바이럴 웹 게임의 정의
___바이럴 웹 게임의 배포
______자신의 웹사이트를 통한 배포
______소셜 뉴스 사이트의 활용
_________트위터
_________페이스북
______포털 업로드
_________소셜 게임 사이트
_________등록 심사 포털
___바이럴 게임을 통한 돈 벌기
______페이지 내 광고의 활용
______게임 공모전 참여
______모치 미디어를 통한 게임 내 광고 삽입
______라이선스와 스폰서십 활용
_________독점 라이선스
_________스폰서십
_________비독점 라이선스
_________API 라이선스
_________스폰서 구하기
_________FlashGameLicense.com의 활용
_________FlashGameDistribution과 GamerSafe의 활용
______어도비 플래시 플랫폼 서비스의 활용
___바이럴 게임의 보안 적용
______사이트 락의 활용
______게임 암호화
___바이럴 플래시 게임 마케팅
___기타 웹 자료
___터널 패닉 게임의 준비
______플래시 IDE에서의 게임 프로젝트 생성
______플래시 디벨롭에서의 게임 프로젝트 생성
___플렉스 SDK를 활용한 프리로딩
______컴파일러 지시어의 추가
______Preloader 클래스 코드의 추가
___플래시 IDE에서의 프리로딩
______라이브러리에 파일 추가
______타임라인의 생성
______자원을 보관할 MovieClip의 생성
_________자원 연결
_________자원 보관 클립 내의 자원 배치
_________메인 타임라인상의 자원 보관 클립 배치
______플래시 IDE 프리로딩에 필요한 프레임워크 수정
_________프레임워크에 새로운 플래시 IDE 프리로더 상태 추가
_________프리로더 상태에 대한 변수 추가
_________preloadScreen 인스턴스의 정의
_________Main에서 프리로더를 첫 번째 상태로 설정
_________switchSystemState 함수의 추가
_________새로운 systemPreload와 addSounds 함수의 추가
___모치 프리로더 애드와 리더 보드의 추가
______모치 패키지의 임포트
______Main.as 객체 타입의 수정
______프레임워크에 모치 관련 변수 추가
______switchSystemState의 수정
______모치애드 관련 수정 사항
______리더 보드 관련 수정사항
___바이럴 게임 직접 제작
______터널 패닉 게임의 설계
______PlayerSprite 객체의 생성
______플레이 필드의 생성
______장애물의 추가
______플레이어 우주선의 연소 효과
_________지저분한 사각형 지우기
______게임 난이도 올리기
______게임 종료
___터널 패닉 게임의 Main.as 생성
______터널 패닉 게임을 위한 Game.as의 수정
______터널 패닉 게임을 위한 Main.as의 수정
______플렉스 SDK 전용 Library.as 클래스의 생성
______플래시 IDE 라이브러리의 자원 추가
___TunnelPanic.as 클래스의 코딩
___테스트
___정리
『The Art of Game Design』
1장 태초에 디자이너가 있었다
___마법의 단어
___게임 디자이너에게 필요한 능력
___가장 중요한 능력
___다섯 가지 종류의 경청
___재능의 비밀
2장 디자이너는 경험을 만들어낸다
___게임은 경험이 아니다
___게임에서만 그런가?
___무지개 다리를 건너는 세 가지 실천법
___내관: 위력, 위험, 그리고 연습
___스스로의 감정을 해부하라
___하이젠베르크 쳐부수기
___경험의 정수
___현실은 그렇다고 느끼는 것
3장 게임에서 발원하는 경험
___정의에 대한 일침
___그래서, 게임이 뭐야?
___다시 진지하게, 게임이란 무엇인가?
___문제 풀이 개론
___지금까지 노력의 결실
4장 게임은 요소로 구성된다
___작은 게임은 무엇으로 만들어져 있나?
___네 가지 기본 요소
___살갗과 뼈대
5장 게임 요소는 테마를 뒷받침한다
___고작 게임
___통합된 테마
___공명
___현실로의 귀환
6장 게임은 아이디어로 시작된다
___영감
___문제를 명시하라
___자는 법
___당신의 말 없는 동료
___핵심 브레인스토밍 요령 15가지
___이 생각들을 봐! 이제 어쩌지?
7장 게임은 점진적으로 발전한다
___아이디어 고르기
___8가지 필터
___순환의 법칙
___소프트웨어 공학의 간략한 역사
___위험 평가와 프로토타입
___생산적 프로토타이핑의 8가지 요령
___순환의 종결
___얼마나 해야 충분할까?
8장 게임은 플레이어를 위한 것이다
___아인슈타인의 바이올린
___스스로를 투사하라
___인구통계
___미디어는 여성차별적이다?
___심리통계
9장 경험은 플레이어의 마음속에 있다
___모델링
___감정 이입
___상상
___동기
___평가
10장 게임 메커니즘 요소
___메커니즘 1: 공간
___메커니즘 2: 객체, 속성, 상태
___메커니즘 3: 액션
___메커니즘 4: 규칙
___메커니즘 5: 기술
___메커니즘 6: 운
11장 게임 메커니즘은 균형 잡혀 있어야 한다
___가장 흔한 12가지 게임 밸런스 유형
___게임 밸런싱 방법론
___게임 경제 밸런싱
___동적 게임 밸런싱
___큰그림
12장 게임 메커니즘은 퍼즐을 지원한다
___퍼즐의 퍼즐
___퍼즐은 죽지 않았나?
___좋은 퍼즐
___마지막 조각
13장 플레이어는 인터페이스를 통해 게임을 플레이한다
___음양의 사이에서
___쪼개기
___상호작용의 순환
___정보의 채널
___그 밖의 인터페이스 요령
14장 경험은 흥미 곡선으로 판단할 수 있다
___나의 첫 렌즈
___흥미 곡선
___패턴 안의 패턴
___무엇이 흥미를 형성하는가?
___흥미 요소의 예
___모든 것을 한데 모으기
15장 경험 중 하나는 이야기다
___이야기/게임의 이중성
___수동적 오락이라는 미신
___꿈
___현실
___문제점
___되살아난 꿈
___게임 디자이너를 위한 이야기 요령
16장 이야기와 게임 구조는 간접 통제로 멋지게 융합할 수 있다
___자유의 느낌
___간접 통제 방법 #1: 제약
___간접 통제 방법 #2: 목표
___간접 통제 방법 #3: 인터페이스
___간접 통제 방법 #4: 비주얼 디자인
___간접 통제 방법 #5: 캐릭터
___간접 통제 방법 #6: 음악
___공모
17장 이야기와 게임은 세계 안에 자리한다
___트랜스미디어 세계
___포켓몬의 위력
___트랜스미디어 세계의 속성
___성공한 트랜스미디어 세계의 공통점
18장 세계에는 캐릭터가 들어 있다
___게임 캐릭터의 본성
___아바타
___끌리는 게임 캐릭터 만들기
19장 세계는 공간을 담고 있다
___건축의 목적
___게임 공간의 구성
___천재 건축가 크리스토퍼 알렉산더
___현실과 가상의 건축
___레벨 디자인
20장 세계의 외관은 미적 요소에 의해 규정된다
___모네는 수술을 거부했다
___미적 요소의 가치
___보는 법을 배우기
___미적 요소가 디자인을 가이드하게 하는 방법
___어느 정도면 충분한가?
___음향을 사용하라
___예술과 기술의 균형
21장 다른 플레이어와 같이 노는 게임도 있다
___우리는 혼자가 아니다
___왜 다른 이들과 플레이하는가?
22장 다른 플레이어는 때로 커뮤니티를 만든다
___그저 다른 플레이어 이상
___강력한 커뮤니티를 가능하게 하는 10가지 요령
___그리프의 도전
___게임 커뮤니티의 미래
23장 디자이너는 보통 팀에 속해 일한다
___성공적인 팀워크의 비결
___함께 디자인하기
___팀 커뮤니케이션
24장 팀은 때로는 문서로 소통한다
___게임 디자인 문서에 대한 미신
___문서의 용도
___게임 문서의 종류
___그래서 무엇부터 시작할까?
25장 좋은 게임은 플레이테스트로 만들어진다
___플레이테스트
___나의 비참한 비밀
___플레이테스트 첫 번째 질문: 왜?
___플레이테스트 두 번째 질문: 누구를?
___플레이테스트 세 번째 질문: 어디서?
___플레이테스트 네 번째 질문: 무엇을?
___플레이테스트 다섯 번째 질문: 어떻게?
26장 팀은 기술로 게임을 만든다
___마침내, 기술
___기반 기술과 장식적 기술
___활기 주기
___발명가의 딜레마
___특이점
___수정구를 들여다보라
27장 게임에는 의뢰인이 있다
___의뢰인 생각을 누가 신경 쓴담?
___나쁜 제안에 대처하는 법
___그 바위가 아냐
___욕망의 세 가지 층위
___1498년 피렌체
28장 디자이너는 의뢰인에게 제안한다
___왜 나야?
___권력의 협상
___생각의 위계
___성공적인 제안을 위한 12가지 요령
29장 디자이너와 의뢰인은 게임의 수익을 원한다
___사랑과 돈
___사업 모델의 이해
___판매량
___손익분기
___최고 잘 팔리는 게임을 파악하기
___용어 배우기
30장 게임은 플레이어를 변화시킨다
___게임이 어떻게 우리를 바꾸지?
___게임에 좋은 점이 있을까?
___게임이 나쁠 수도 있을까?
___경험
31장 디자이너는 일말의 책임이 있다
___무명의 위험
___책임 지기
___숨어 있는 동기
___잘 보이게 숨겨진 비밀
___반지
32장 모든 디자이너에게는 동기가 있다
___가장 깊은 주제
마치며