나는 어렸을 때부터 게임을 좋아했다. 그때와 달라진 게 하나 있다면 어렸을 때는 마냥 즐겁게 게임만 했지만 지금은 이걸 어떻게 많들었을까라는 생각을 한다는 점이다. 당연하지만 게임도 소프트웨어고 컴퓨터에서 동작하는 프로그램이기에 코드로 만든다. 웹 개발자인 내가 게임 개발 관련해서 알고 있는 점은 유니티, 언리얼과 같은 게임 개발의 핵심 프레임워크가 되는 게임 엔진이라는 것과 주로 C#을 개발 언어로 사용한다는 것이다. 선수지식이 없는 나로선 이 책을 펼치는 것이 마냥 쉽진 않았다.
하지만 이 책은 언리얼 엔진 개발 가이드 같은 느낌의 게임 도메인에 국한된 특정 기술 사용법을 다루지 않는다. 대신 게임을 개발할 때 반드시 필요한 기본 개념과 원리에 대해 다룬다. 2D, 3D와 같은 그래픽과 벡터, 라디안 등 수학적 지식, 길 찾기, 충돌 판정 로직에 들어가는 여러 가지 대표적인 알고리즘까지 게임을 구성하는 핵심 요소들에 대해서 가볍지만 쉽고 명확하게 설명한다. 읽으면서 몇 가지 기억에 남는 내용을 정리해 봤다.
- 게임의 모든 요소는 객체로 표현하고 이는 코드 레벨에서도 그렇다. 조이스틱도 객체고 스틱이 움직일 수 있는 범위를 코드로 구현한다.
- 캐릭터가 입고 있는 옷이나 모자는 캐릭터 객체의 하위 객체로 구현한다. 그리고 캐릭터 좌표를 기준으로 옷과 모자가 있어야 하는 좌표를 상댓값으로 설정하면 캐릭터가 움직여도 옷과 모자가 있어야 할 위치에 있을 수 있다.
- 캐릭터가 목적지로 이동할 때 최단 거리를 계산할 때 최단 거리 알고리즘을 사용한다. 단 비교적 유명한 다익스트라 알고리즘은 실시간 게임에서는 연산량이 많아서 다른 알고리즘을 사용한다.
이 책은 게임 개발 관련해서 뭘 모르는지 모르는 사람들에게 알아야 할 내용을 담고 있다. 예시 코드는 C#으로 작성되어 있지만 개발 경험이 있는 분들은 쉽게 이해할 수 있는 수준이다. 무엇보다 특정 개념을 딱 필요한 만큼의 깊이로 설명하는 작가 분들의 필력에 놀랐다. 게임 개발의 본질을 이해하고 자신만의 게임을 창작하는 데 필요한 자신감을 얻게 될 것이다라는 책 소개에 적극 동의한다. 미래에 문득 게임 개발을 해보아야겠다는 생각이 들었을 때 다시 한번 읽어볼 책으로 기억 속에 남긴다.
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
'Review' 카테고리의 다른 글
AGI의 시대 (1) | 2024.12.22 |
---|---|
기술 블로그 포스팅 후기 01 - 실전! Spring Boot 3 마이그레이션 (0) | 2024.11.24 |
2024 당근 테크 밋업 후기 🥕 (5) | 2024.11.10 |
오픈 - 비즈니스 패권의 열쇠 (3) | 2024.11.03 |
잘 읽히는 보고서 문장의 비밀 (1) | 2024.09.28 |