26 November 2024

이 책은 체계적이고 직관적인 구성으로 초보자도 이해할 수 있는 쉬운 설명과 함께 심화 내용까지 다루며, 단계별로 학습할 수 있도록 구성되어 있다. 각 장의 내용은 실제 게임 개발에서 자주 접하게 되는 문제를 다루고 있어, 실무에 가까운 꼭 필요한 내용들을 살펴볼 수 있다. 게임 프로그래밍은 수학, 물리 등에 대한 다양한 응용이 들어가기 때문에 복잡한 알고리즘에 대한 이해하 필요한데 이 책은 이런 기본기를 가장 중요한 포인트로 작성되었다. 그럼, 챕터별로 살펴보겠다.


CHAPTER 1: 개발 환경 구성과 게임 세계 이해

책의 첫 장은 초보자를 위한 훌륭한 출발점이다. 유니티 엔진과 개발 도구 설치에 대한 설명이 상세하고 직관적이며, 2D 및 3D 그래픽의 차이점과 UI 구성 요소에 대한 소개가 게임의 세계를 이해하는 데 필수적인 정보를 제공한다.
이 장을 통해 독자는 개발 환경을 설정하고, 게임 세계의 기본 개념을 명확히 익힐 수 있다.


CHAPTER 2: 수학과 물리

게임 개발에서 중요한 수학과 물리의 기초를 친절하게 풀어낸 부분이다. 벡터와 좌표, 삼각함수와 같은 기초 개념을 실제 예제와 함께 학습할 수 있어, 이론과 실습의 균형을 잘 맞춘다.
특히, 적과의 대치에서 다루는 벡터의 내적과 외적, Easing 그래프와 같은 심화 예제는 독자가 게임 내에서의 물리적 움직임을 더 깊이 이해하도록 돕는다.


CHAPTER 3: 게임 프로그래밍에 필요한 기법

랭킹 시스템, AI의 길 찾기, 충돌 처리 알고리즘과 같은 실제 게임 개발에 자주 쓰이는 기술을 상세히 설명한 이 장은 실질적인 문제 해결 능력을 키운다.

  • 랭킹 시스템 구현에서 자료구조와 정렬 알고리즘을 다루며, 성능 최적화를 위한 핵심 개념을 배울 수 있다.
  • AI의 길 찾기는 DFS, BFS, 다익스트라, A*와 같은 경로 탐색 알고리즘을 상세히 설명하며 AI 설계에 필요한 기반을 제공한다.
  • 충돌 처리 부분은 게임 개발의 필수 기술인 충돌 탐지 알고리즘을 다양한 방식으로 설명하며, 직관적인 예제와 코드로 실무적 활용도를 높인다.

CHAPTER 4: 게임 프로그래밍 방법론

마지막 장은 게임 프로그래밍의 철학과 설계 원칙을 다룬다.

  • 객체 지향 프로그래밍에서는 클래스, 상속, 다형성 등의 개념을 명확히 설명하며, 실습과 함께 이해를 돕는다.
  • 디자인 패턴은 실무에서 자주 활용되는 전략 패턴, 옵저버 패턴, 상태 패턴 등을 게임 사례와 결합해 설명하여 개발자의 응용력을 높인다.
  • 안티 패턴은 개발 시 피해야 할 실수를 상세히 다루며, 실무에서 발생할 수 있는 문제를 미리 예방할 수 있도록 구성한다.

이 장은 단순한 프로그래밍 기술을 넘어, 어떻게 더 좋은 코드를 작성할 것인가에 대해 고민하게 만든다.

이 책을 읽을 때 미리 이런 내용을 알아두면 좋겠다.


1. 프로그래밍 기초 지식

책의 많은 내용이 코딩을 중심으로 진행되므로, 다음의 프로그래밍 기초 지식을 알고 있어야 한다.

  • 변수와 자료형
    변수 선언, 데이터 타입의 개념 (정수, 문자열, 배열 등)
  • 조건문과 반복문
    if, for, while 등의 기본 구조
  • 함수 작성 및 사용법
    파라미터와 반환값을 이해하고, 함수를 작성할 수 있는 능력
  • 기본 자료구조
    배열(Array), 리스트(List), 딕셔너리(Dictionary)와 같은 기초 자료구조에 대한 이해

2. 수학과 물리 기초

게임 개발에서 중요한 수학과 물리 개념이 책에서 많이 등장하므로, 기초적인 이해가 필요하다.

  • 기하학
    • 좌표계와 좌표의 개념 (2D/3D)
    • 삼각함수 (사인, 코사인, 탄젠트)
    • 벡터의 기본 개념과 연산 (덧셈, 내적, 외적)
    • 각도와 라디안 단위
  • 물리학
    • 위치, 속도, 가속도의 개념
    • 충돌과 반발(물리엔진 기본 이해)

3. 게임 엔진 사용 경험

책에서 유니티를 사용하므로, 유니티 엔진에 대한 기본적인 사용 경험이 있다면 학습에 큰 도움이 된다.

  • 유니티 기본 개념
    • 유니티 인터페이스 및 프로젝트 생성 방법
    • 씬(Scene)과 게임 오브젝트(Game Object)의 기본 사용법
    • 컴포넌트(Component)의 개념
  • C# 스크립팅 경험
    • 유니티에서 사용하는 C# 스크립트를 작성해본 경험이 있다면 학습이 훨씬 수월하다.

4. 알고리즘과 자료구조 기초

랭킹 시스템, AI 길 찾기, 충돌 처리 등에서 알고리즘과 자료구조가 자주 등장하므로, 다음과 같은 기본 지식을 알고 있어야 한다.

  • 정렬 알고리즘
    버블 정렬, 선택 정렬 등 기본적인 정렬 알고리즘 이해
  • 자료구조
    트리(Tree), 스택(Stack), 큐(Queue), 힙(Heap)과 같은 자료구조의 기본 개념
  • 그래프 탐색 알고리즘
    DFS(깊이 우선 탐색), BFS(너비 우선 탐색)

5. 객체 지향 프로그래밍(OOP)

4장에서 객체 지향 프로그래밍(OOP)을 심도 있게 다루므로, 다음 개념을 미리 이해하고 있으면 좋다.

  • 클래스와 객체
    클래스의 정의와 인스턴스화
  • 상속
    부모 클래스와 자식 클래스의 관계
  • 다형성
    메서드 오버라이딩과 인터페이스의 기본 개념
  • 캡슐화
    접근 제어자(public, private, protected)의 역할

6. 게임 개발에 대한 관심과 경험

  • 간단한 2D 또는 3D 게임을 만들어 본 경험이 있거나, 간단한 게임 로직을 작성해본 경험이 있다면 책에서 다루는 내용을 더 쉽게 이해할 수 있다.
  • 게임의 구조(메뉴, 캐릭터, 적, 점수 등)에 대한 기초적인 이해가 있다면 좋다.

책 한권으로 모든 내용을 배울 수는 없지만 필요한 핵심 내용에 대해서 이해하기에는 충분한 책이지 않나 싶다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.