게임 엔진은 그래픽 렌더링, 물리 시뮬레이션, 오디오 처리, 입력 관리, 네트워크 통신 등 게임의 핵심 기능을 담당하는 소프트웨어 프레임워크다. 게임 엔진을 사용하면, 온갖 하드웨어를 일일이 제어하거나 바퀴를 재발명할 필요 없이 엔진이 제공하는 기능을 활용하여 자신만의 게임 메커니즘과 콘텐츠를 구현할 수 있다. 즉, 게임 엔진은 기술에 구애받지 않고 창작에 집중하게 해주는 도구라 할 수 있다.
(중략)
지은이들이 그랬고 번역한 우리가 그랬듯이, 게임 개발도 혼자서가 아닌 든든한 동료와 함께 가는 여정이다. 그 험난하지만 보람찬 여정에서 이 책이 여러분의 든든한 동반자가 되기를 진심으로 희망한다. - 강세중
사실 c++언어 코드도 이제 눈에 익는 정도밖에 안 되는 내게, 언리얼 엔진이 무엇일까? 라는 질문에 대한 답이 머리말에 있었다. 후반부 번역을 담당한 오영욱 님이 말한 대로 c++에 대한 기초도 필요하고 블루프린트와 c++로 언리얼 엔진을 좀 다뤄봤어야 이해하기 쉬운 책이지만,
그럼에도 불구하고 프로그래밍의 중요한 키워드들도 함께 소개한다.
옮긴이 두 분이 능력자라고 느껴지는 점이, 원서는 5.0.3을 기준으로 쓰였으나 한국어판은 5.4로 번역되었다.

1.3(p6)대로 설치하면 되는데, 현재는 5.7이 release되어 있다. 나는 혹시 몰라서 책 버전과 동일한 5.4로 설치했다. 라이브러리에 들어가면 특정 버전을 다운 받을 수 있다.
PART 1 언리얼 엔진 5에서 배우기
PART 2 익명 모듈식 디자인
PART 3 언리얼 위에서 작업하기
이 책은 총 3단계로 크게 분류해 사용하는 법을 먼저 배우고, 이를 효율적으로 개선하고, 최적화하는 과정을 단계적으로 제시한다.
이 점이 게임을 만들어가는 큰 흐름으로도 보여서 신기했다.
-- 디자인 패턴은 게임 개발자가 활용할 수 있는 매우 가치 있는 도구 중 하나이다. 디자인 패턴은 작업 과정을 체계적이고 효율적으로 유지하도록 돕고, 자주 사용되는 패턴들은 협업을 수월하게 만들어준다. 빠르게 돌아가고 다양한 분야가 얽혀 있는 게임 개발 현장에서 디자인 패턴은 필수적이다.
-- 이 책을 통해 프로그래밍의 핵심 원리를 배우고, 디자인 패턴의 가치와 활용에 대한 탄탄한 이해를 쌓게 될 것이다. 게임 개발 분야에서 대단히 강력한 도구 중 하나인 언리얼 엔진 5 게임 엔진을 다루면서 이러한 접근이 어떻게 작동하는지 체감하고 큰 도움을 얻게 될 것이다. (중략)

unreal engine이 처음이라 초반에는 버벅대긴 했지만, 책 가이드가 무척 세세해서 곧잘 따라 할 수 있었다. 코드를 직접 쓰지 않고 블록(노드)을 연결해서 동작을 만드는 블루프린트는 정말 감동적이었는데...
마우스 딸깍 딸깍으로 만들어지는 이벤트라니!
하나하나 수작업하고 있는 c언어의 그래픽스 과제랑 무척 비교가 되었다.

이런 도구를 만들려면 어떻게 추상화 설계를 해야 하는 거지? 엔진이란 대체 무엇인가..!(이 질문에 대한 답은 머리말에 있다. 궁금해할 것을 예상하고 처음부터 떠먹여 주시다니.. 감명이라는 단어를 잘 사용하지 않지만, 머리말이 내게 큰 감명으로 남았다. 🤭)
프로그램 전체에서 단 하나만 존재해야 하는 객체를 안전하게 보장하기 위한 설계 방법. 객체를 안전하게 보장하기 위한 설계 방법
struct Singleton
{
int value;
};
struct Singleton *get_instance(void)
{
static struct Singleton instance;
return &instance;
}
자식 클래스가 시스템을 망치지 않도록, 부모가 안전한 행동 범위만 제공하는 설계 방식
// 부모: 훅 메서드만 자식에게 허용
void character_action(void)
{
move();
attack(); // 자식이 구현
effect();
}
// 자식: 부분 동작만 커스터마이징
void attack(void)
{
// 내가 허용받은 공격 로직만 구현
}
게임 개발에서는 최적화는 문제가 될 때까지는 고려하지 않는 것이 좋다. 무엇보다 먼저 뭐든 작동하는 것이 중요하다. 데이터 지역성은 코드 리팩터링을 최소화하기 때문에 가장 먼저 고려할 만하다. (중략)
마지막 규칙.
좋은 코드가 꼭 좋은 게임을 만들어 주는 것은 아니지만, 팀을 더 좋게 만들어 주는 것은 분명하다.
좋은 코드나 책은 어떤 한 학문에서만 적용되는 것이 아니라 모든 맥락에서 통용될 수 있는 것 같다.
unreal engine과 c++에 관한 내용을 담고 있지만, 프로그래밍과 설계에 대한 인사이트도 함께 던지는 좋은 책이다. 새로운 영역을 탐험하느라 조금은 고생했지만(특히, 노트북이..) 읽기 잘 했다!
블루프린트라는거 신기하네요