제가 전작인『미사일 커맨더로 배우는 유니티 C# 프로그래밍 연습』을 출간한 지도 어느새 5년의 시간이 흘렀습니다. 책을 쓰고 나서 얼마 지나지 않아 저는 영국에 있는 한 트리플 A 게임 개발 회사에 취업하였고, 다양한 프로젝트에 참여할 기회를 얻었습니다. 그리고 그 중 하나의 프로젝트가 유니티(Unity) 엔진을 기반으로 개발되었습니다. 덕분에 저는 대규모 프로젝트에서 유니티가 실제로 어떻게 활용되는지에 대한 실질적인 경험을 쌓을 수 있었습니다.
유니티는 흔히 프로그래머들이 가장 많이 사용하는 도구로 알려져 있지만, 실제 현업에서는 유니티를 프로그래머만을 위한 툴이라고 생각하는 사람들은 없습니다. 레벨 디자이너, 아티스트, 게임 디자이너, 애니메이터, 오디오 디자이너 등 게임 개발에 참여하는 거의 모든 파트의 구성원들이 함께 사용하는 협업 도구입니다. 따라서 유니티 게임 개발 프로젝트에서는 프로그래머뿐 아니라 다양한 역할을 담당하는 모든 개발팀원들이 각자의 작업 영역을 침범하지 않으면서도 데이터를 효과적으로 공유하고 함께 작업할 수 있도록 하는 것이 매우 중요합니다.
이런 점에서 ‘스크립터블 오브젝트(ScriptableObject)’는 유니티 개발 프로젝트에 참여하고 있는 개발자라면 반드시 알아야 하는 기능입니다. 이 때문에 제가 참여했던 트리플 A 개발 프로젝트에서도 이 기능이 광범위하게 사용되었습니다. 규모가 큰 프로젝트일 수록 코드와 데이터를 적절히 분리함으로써, 프로그래머는 코딩에 집중하고 콘텐츠 제작자들은 데이터 생산과 관련된 업무에 전념할 수 있도록 하는 것이 중요하기 때문입니다.
물론 스크립터블 오브젝트가 대형 개발사만을 위한 것은 아닙니다. 소규모 개발팀, 스타트업, 인디 개발자, 1인 개발자에게도 스크립터블 오브젝트는 개발 생산성을 높이기 위한 필수 도구입니다. 게임의 규모와 상관 없이, 개발이 진행됨에 따라 계속 새로운 기능이 추가되고 구조가 복잡해질 수밖에 없는 것이 바로 게임 프로젝트의 속성이기 때문입니다.
스크립터블 오브젝트를 제대로 이해하지 않고 유니티로 복잡한 게임을 개발한다는 것은 사실상 불가능합니다. 그럼에도 불구하고 시중에는 스크립터블 오브젝트의 기초부터 실전 활용 방법까지 예시를 통해 자세히 설명해주는 책이 거의 없는 실정입니다. 이 책을 집필하게 된 이유도 바로 여기에 있습니다.
이 책은 제가 지난 번에 집필했던 『미사일 커맨더로 배우는 유니티 C# 프로그래밍 연습』과 마찬가지로, 실제 예제를 하나씩 차근차근 만들어 가면서 개념과 활용법을 자연스럽게 익힐 수 있도록 강의식으로 구성했습니다. 따라서 유니티 입문 단계를 어느 정도 벗어난 수준이라면, 이 책을 통해 스크립터블 오브젝트의 기초부터 응용 단계까지 어렵지 않게 학습하실 수 있을 것입니다.
참고로 책을 읽기 전에 요구되는 사전 지식은 다음과 같습니다. 다음에서 요구되는 지식 수준을 가지고 계시다면 이 책을 읽고 이해하시는데 큰 어려움이 없을 것입니다.
그럼 준비가 다 되신 것으로 알고, 이제 본격적으로 시작해 보겠습니다.