
구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.

지은이 : 권경열
레드덕, 그라비티, 펄어비스에서 20년 넘게 프로그래머로서 다양한 개발에 참여했다. 2023년부터 무인 커피 머신 하드웨어 제어와 소프트웨어 개발을 통해 인간의 수고를 줄이는 일을 주로 하고 있다. 10년 가까이 동서대학교에서 겸임 교수로 게임 프로그래밍을 가르쳤고, 부산 게임아카데미 프로그래밍 반에서 강의했다. 대전게임기업워크숍, 메타페어 2023 등 AI 강연에 다수 참여했으며, 현재도 AI 관련 분야에서 왕성하게 활동하고 있다. 서브컬처를 좋아하고, 서브컬처를 직접 만드는 것도 즐겨 <서클링크>, <코니아마란스>, <루나틱문> 등 인디 게임도 다수 만들었으며, 리듬 액션 게임 <엘리아> 개발에도 참여하고 있다. 자신이 쓴 소설로 비주얼 노벨을 개발하고 있으며, 앞으로 만들 콘텐츠 역시 AI를 활용하여 퀄리티 높은 작품을 선보이고자 한다.
베타리더 후기 ix
오프닝 xi
학습 가이드 xiv
로드맵 xvi
PART I 기초 이론
LEVEL 1 플레임 엔진이란? 3
1.1 플레임 엔진을 선택해야 하는 이유 4
1.2 플러터와 다트 언어의 장점 6
1.3 개발에 들어가기 앞서 8
1.4 윈도우 환경에서 플러터 설치 9
__1.4.1 비주얼 스튜디오 코드 설치 9 / 1.4.2 플러터 설치 10
1.5 게임 개발의 시작 13
__1.5.1 VS Code에서 실행 13 / 1.5.2 플레임 게임 구조 16 / 1.5.3 객체지향 19 / 1.5.4 플레임 설치 23 / 1.5.5 텍스트 출력 24
리플레이 26 / QUIZ 26
LEVEL 2 플레임 엔진의 사용 방식 27
2.1 main() 함수 28
__2.1.1 컴포넌트 30 / 2.1.2 PositionComponent 31 / 2.1.3 TextComponent 31 / 2.1.4 SpriteComponent 37 / 2.1.5 TextComponent와 SpriteComponent 동시에 나타내기 40 / 2.1.6 SpriteButtonComponent 44
2.2 이벤트버스 46
__2.2.1 코드 예제 46
2.3 버튼 만들기 52
__2.3.1 버튼에 이벤트버스 넣기 58 / 2.3.2 텍스트 버튼 준비 59 / 2.3.3 이미지 색상 교체 62 / 2.3.4 NineTileBoxComponent 66
2.4 효과 만들기 72
__2.4.1 이동 효과 72 / 2.4.2 회전 효과 75
2.5 간단한 계산 과정 78
__2.5.1 벡터의 정규화 81 / 2.5.2 스케일 효과 84 / 2.5.3 투명 효과 85 / 2.5.4 순차 실행 86 / 2.5.5 동시 실행 87
리플레이 89 / QUIZ 89
LEVEL 3 게임 초기 화면 개발 91
3.1 게임 화면 구성 기법 92
__3.1.1 타이틀 화면과 메인 화면 92 / 3.1.2 이벤트버스 98 / 3.1.3 메인 페이지 101
3.2 다양한 해상도에서의 비율 유지: 카메라와 뷰포트 활용 112
__3.2.1 카메라와 뷰포트의 개념 112 / 3.2.2 월드 만들기 113 / 3.2.3 main 함수 114 / 3.2.4 변경된 구조 115
3.3 메뉴 팝업 131
__3.3.1 팝업 배경 클래스 131 / 3.3.2 팝업 133 / 3.3.3 팝업 그림자 효과 139
리플레이 142 / QUIZ 143
PART 2 실전 게임 개발
LEVEL 4 두더지 잡기 게임 개발 147
4.1 프로젝트 생성 148
4.2 이미지 출력 151
4.3 월드와 이벤트버스 155
4.4 윈도우 환경에서의 창 크기 조절 158
4.5 게임 타이틀 화면 160
__4.5.1 PaintTextComponent 클래스 165 / 4.5.2 수정한 타이틀 화면 167
4.6 메인 메뉴 페이지 169
__4.6.1 타이틀 텍스트 만들기 172 / 4.6.2 시작 버튼 만들기 174 / 4.6.3 이벤트버스 붙이기 181
4.7 게임 페이지 183
__4.7.1 게임 규칙 183 / 4.7.2 리소스 확보 183 / 4.7.3 게임 페이지 구현하기 185 / 4.7.4 구멍 이미지를 반으로 나누기 189 / 4.7.5 땅 아래에서 올라오기 194 / 4.7.6 두더지 객체 만들기 208 / 4.7.7 해머 구현 214 / 4.7.8 타격 효과 219 / 4.7.9 게임 UI 구성하기 222 / 4.7.10 다양한 두더지 만들기 247
4.8 마무리 260
리플레이 261 / QUIZ 262
LEVEL 5 땅파기 게임 265
5.1 프로젝트 생성 266
5.2 두더지 게임에서 사용했던 컴포넌트의 재활용 268
__5.2.1 이벤트버스 268 / 5.2.2 GameRectButton 270 / 5.2.3 PaintTextComponent 270 / 5.2.4 NumberDisplay 270 / 5.2.5 RoundedRectangleComponent 270 / 5.2.6 GameFunction 270
5.3 새로운 월드와 카메라 272
__5.3.1 카메라 컴포넌트 272 / 5.3.2 월드 273 / 5.3.3 main 함수 274 / 5.3.4 타이틀 화면 276 / 5.3.5 메인 화면 278 / 5.3.6 게임 페이지 283
5.4 마무리 357
리플레이 358 / QUIZ 359
LEVEL 6 벽돌 깨기 게임 363
6.1 구현할 대상 364
__6.1.1 Ball(공) 364 / 6.1.2 Paddle(막대) 364 / 6.1.3 Brick(벽돌) 364 / 6.1.4 Wall(벽) 364
6.2 프로젝트 생성 365
6.3 월드 생성 366
__6.3.1 타이틀 페이지 367 / 6.3.2 메인 페이지 371
6.4 flame_forge2d의 사용 375
__6.4.1 물리 엔진의 구성 375
6.5 게임 페이지 380
__6.5.1 카메라 컴포넌트 만들기 382 / 6.5.2 공 385 / 6.5.3 벽 설치 390 / 6.5.4 막대 설치 394 / 6.5.5 벽돌 398 / 6.5.6 남은 것 405 / 6.5.7 게임 클리어 페이지 409 / 6.5.8 벽돌 파괴 효과 413 / 6.5.9 게임 클리어 이벤트 419
6.6 마무리 421
리플레이 422 / QUIZ 423
LEVEL 7 디펜스 게임 427
7.1 타이틀 이미지 428
7.2 뼈대 잡기 430
7.3 타이틀 페이지 432
7.4 이벤트버스 434
__7.4.1 이벤트버스 사용하기 435
7.5 메인 메뉴 페이지 438
7.6 게임 페이지 441
__7.6.1 배경 이미지 이어붙이기 446 / 7.6.2 구름 만들기 449 / 7.6.3 주인공 캐릭터 배치 452 / 7.6.4 총알 456 / 7.6.5 적 구현 469 / 7.6.6 총알과 적의 충돌 구현 473 / 7.6.7 아이템 483 / 7.6.8 HP Bar 492 / 7.6.9 패배 500
7.7 마무리 503
리플레이 504 / QUIZ 505
LEVEL 8 AI 도구 활용 509
8.1 게임 개발에 AI 사용하기 510
__8.1.1 배경음악 510 / 8.1.2 효과음 510 / 8.1.3 애니메이션 511 / 8.1.4 스토리 511
8.2 미드저니와 소라 그리고 나노 바나나 512
__8.2.1 예술 작업실 만들기 514 / 8.2.2 각 AI의 역할 정의 514
8.3 게임 리소스에 나노 바나나 활용 518
__8.3.1 캐릭터 원화 518 / 8.3.2 게임 GUI 520
에필로그: 마치며 523
찾아보기 524
도서 DB 제공 - 알라딘 인터넷서점 (www.aladin.co.kr)