[간단 책리뷰&플밍] 레트로의 유니티 게임 프로그래밍 에센스 개정판 – 이제민



1. ‘레트로의 유니티 게임 프로그래밍 에센스 개정판’ 개요


이 또한 ‘[플밍] 경일게임IT아카데미 온라인 부트캠프 8개월 게임 개발자 과정 수료‘을 통해서 알게 된 책이다. 두께로 보자면 바로 직전에 리뷰를 했던 ‘[간단 책리뷰&플밍] C# 교과서 – 박용준‘와 비교해서 양이 더 많다. 그리고 조금은 실질적인 느낌이다.

주워진 자료를 통해서 실제로 플레이가 되는 게임을 만들어 낼 수 있다는 점에서 말이다. 이 리뷰는 필자가 프로그래밍을 공부하면서 남기는 기록 중 하나이다. 학원을 다니면서 AI 시대에 AI에 도움을 받아서 코드를 작성했기 때문에 내 실력인지 AI 실력인지 생각해 보자면 지금으로서는 내 코딩 실력이 아니라 AI 실력인 것이다.

앞으로 코드를 보고 이해만 하고 수정할 부분에 관해서만 부탁을 하거나 직접 수정하기만 하면 되는 걸까 고민이 되지만 알아야 수정도 하고 말이다. 그럼에도 책과 다른 동영상, 인터넷 글들의 강점은 이미지와 직접 움직임을 볼 수 있다는 점이다.


teacher asking a question to the class
Photo by Max Fischer on Pexels.com

‘레트로의 유니티 게임 프로그래밍 에센스 개정판’의 경우에는 많은 이미지와 Unity 엔진 툴의 이미지를 많이 활용해서 실제로 보면서 따라하는데 정말 편하게 구성을 했다.

직접 강의를 보고 있는 것과 같이 빠르게 따라하는게 가능하고 코드의 작성도 깔끔하게 되어 있으며 딱 그대로 따라하면 그대로 완성되는 느낌을 받았다. 책의 구성은 총 7부로 되어 있다.

기본적인 유니티(Unity) 사용법부터 기본적인 C# 프로그래밍 이후에는 바로 간단한 게임인 탄막 슈팅 게임에 필요한 기술을 배울 수 있는 닷지, 이후에 필수적인 공간과 관련된 수학 내용, 2D 러너 게임, 탑다운 슈터 게임, 네트워크 협동 게임에 이르기까지 전반을 다룬다.



다시금 내용들을 살펴보며 인상적인 부분을 간추려 보겠다. 일단 1000페이지가 되는 책이라 2권으로 분할이 되어 있으며 1~5부까지는 1권에 6~7부까지는 2권에 포함 되어 있다.

2. ‘레트로의 유니티 게임 프로그래밍 에센스 개정판’ 본문


솔직히 말하자면 어느 정도 수준으로 리뷰를 해야하는지 혼란스럽기는 하다. 일단 1부의 경우에는 유니티(Unity)의 설치에서 화면 구성 설명부터 시작하며 씬 화면, 게임화면 그를 구성하는 것들 그리고 게임 오브젝트와 컴포넌트 등 정말 알기 쉽게 구성되어 있다.

2부로 들어와서는 C#프로그래밍을 가르쳐준다. 내용이 부족한가? 라고 물어보면 앞선 1부의 내용이 있었기 때문에 내용이 핵심적인 것들이 포함되어 있는 부분이라 그렇게 부족해 보이지 않았다.


blur business close up code
Photo by Pixabay on Pexels.com

이후에 게임을 제작하면서 부족한 부분들을 채워서 나가는 느낌의 구성이다. 과하지 않는 구성이라 생각보다 쉽게 읽히고 넘어갔다. 변수의 설명, 클래스의 설명, 값 타입, 참조 타입 유니티 요소와의 연계 등 부족함 없이 진행이 된다.

3부에서는 벌써 게임을 제작하나? 할 정도로 정말 실전적으로 바로 게임 제작이 들어간다. 닷지 게임을 게임의 설정도 수치를 직접적으로 제공을 하여서 정말 정교하게 게임이 이상하게 만들어지는 것 없이 딱 만들어진다는 느낌이다. 그러면서 머티리얼 설명과 하이라키 창에서 객체들을 부모와 자식으로 위치 시키는 것, 카메라, 리지드바디, 업데이트와 초당 프레임의 개념, 물리, 입력과 관련된 설정.



콜라이더, 프리팹 개념, 충돌과 관련한 이벤트 메서드, UI 등 모든 스크립트와 설정 이후 실제로 .exe 파일로 빌드를 해서 실행이 되는 것까지 진행이된다.

4부에서는 공간과 관련된 수학적 지식을 알려준다. 벡터, 내적, 외적과 이와 관련된 유니티(Unity) 관련 수치들 그리고 중요한 개념인 쿼터니언, 오일러 각을 이용하게 되면 짐벌락이 발생하는 것에 관해서 일러준다. 간단하면서 깔끔하게 잘 설명 되었다고 본다.

또한 전역 공간과 지역 공간에 관해서도 설명해준다.

5부는 2D게임을 설명한다. Multiple 스프라이트를 통해서 애니메이션을 적용하는 법, 효과음의 적용, 추가적인 UI 설명, 이미지 및 배경 스크롤을 통해 캐릭터의 움직임 구현, 싱글턴, 오브젝트 풀링 패턴에 관해서 설명해준다. 물론, 작성 및 설정 후에 빌드까지 진행된다.



6부는 다음 권으로 넘어간다. 아마도 느꼈다 싶이 단 6부, 7부와 부록이 있는데 2권으로 넘어갔다는 것은 관련해서 종합 선물 세트라는 의미이다. 우선 싱글 플레이로 탑다운 슈터 게임을 제작한다. AI 좀비가 있어서 플레이어에게 다가오고 이를 총으로 싸서 버티고 높은 점수를 얻는 게임이다.

시네머신을 활용하고 및과 관련된 내용도 설명해준다. 그리고 3D 환경에서의 애니메이션도 설명이 들어간다. 애니메이션 레이어를 통해서 총을 쏠때와 총을 쏘지 않을때를 그리고 달리기를 할때와 달리기를 하지 않을때를 구분해서 적용할 수 있게 해준다.

파티클 효과의 적용, 스크럽터블 오브젝트의 활용, 코루틴, IK(Inverse Kinematics, 역운동학), FK(Forward Kinematics, 전진 운동학)을 설명해준다. 실습과 함께 오버라이드에 관해서 설명해주고 이벤트에 관해서 설명이 들어간다.



AI 부분으로 들어가서 유니티(Unity)의 네비게이션 시스템에 관해서 설명한다. 레이어에 관해서 설명해주고 HUD, UIManager를 통해서 마지막으로 다듬어가며 게임이 완성된다. 구현으로는 앞서 구현했던 게임에서 활용했던 내용들을 반복하고 추가적인 내용들을 추가하는 식으로 구현이 들어가서 반복되는 것으로 공부가 되고 새로운 것을 추가로 알아감으로서 신선함을 느끼면서 재미있게 공부를 했던 것 같다.

7부는 네트워트로 실제로 구현을 하게 된다면 매우 복잡해질 수 있는 것인데 이것을 어떻게 풀어 냈을까 개인적으로 시작 전에 막막함을 느꼈지만 따라하니까 구현은 되었다. 다만 확실히 연습은 추가적으로 필요하다고 본다.

아직까지 각자의 클라이언트에서 처리할 것과 마스터 클라이언트에서 처리할 것을 구별하고 대응할 수 있는 능력이 필요해 보인다. 일단은 초반에는 네트워크 게임의 구성에 관해서 설명을 해주고 기본적인 개념에 관해서 배울 수 있다.



로컬과 리모트, 동기화, 네트워크 게임에서 게임 서버의 종류(전용 서버, 리슨 서버, P2P), 실습에 사용할 포톤에 관해서도 설명을 해준다.

포톤을 기준으로 설명이 들어가기에 포톤 뷰, 카메라도 로컬에 따라 움직 일 수 있도록 설명해주고 모든 요소들을 네트워크에 맞춰서 수정이 필요하다는 것을 알게 되었다. 다만 기존 코드를 그대로 사용하는 부분과 동기화를 해야하는 부분 수치적으로 동작적으로 어긋남이 없어야 하는 부분 등의 구분이 필요했다.

이러한 분류에 의해서 네트워크 게임의 플레이에 동작에 크게 영향을 미치는 것 같다. 네트워크 관련해서는 아직 부족한 점을 많이 느끼고 있다. 이동을 구현하는데도 어려움을 느낀다.

유니티(Unity) Resources 폴더의 설명도 나오며 직렬화와 역직렬화도 진행이 된다.



이후에는 부록에도 유용한 내용이 포함되어 있다. 안드로이드 빌드와 iOS 빌드, 모바일 빌드에 필수적이라 할 수 있는 어드레서블 시스템이 설명된다.

3. ‘레트로의 유니티 게임 프로그래밍 에센스 개정판’ 마무리


유니티(Unity)를 활용한 게임 프로그래밍의 핵심을 정말 잘 담아낸 책이라고 생각한다. 기본적인 내용은 다 담았고 설명도 깔끔하고 이해가 잘되게 구성되어 있었다. 또한 실습도 구성한대로 잘 진행할 수 있었고 동작에도 이상이 없었다.

책들 중에는 실습을 하다보면 수치적으로 작업적으로 뭔가 구멍이 나 있거나 이해가 어려운 부분이 있을 수 있는데 그런 부분이 없었다. 물론, 이미 유니티(Unity) 툴을 미리 공부했던 상태여서 그랬을 수도 있다.

다만 응용 차원에서는 책만 읽고 나만의 게임을 만들기 위해서는 좀 더 유니티(Unity)가 제공하는 메뉴얼을 확인하며 확장해야 할 필요가 보이며 어드레서블 시스템 관련해서도 활용을 위해서는 좀 더 개별적인 공부가 필요해 보인다.


calendar, pen, paper-2559888.jpg

개인적으로 모바일 게임 업데이트 관련해서 자신만의 파이프 라인이나 출시 관련 지식이 좀 스스로가 부족하다고 느끼는데 그 부분에 관해서는 좀 더 공부할 의욕을 느낀다. 프로그래밍을 배움에 있어서 이렇게 게임이라는 소재를 가지고 접근하는 것도 정말 도움이 될 것 같다는 생각이 든다.

그런 면에서 C# 공부에 있어서 적어도 윈도우 폼을 활용하는 부분이 있는 책도 괜찮지 않을까 생각한다. 개인적으로 정말 도움이 되는 책이였고 배웠던 부분을 되돌아 볼 수 있는 기회를 얻어서 참으로 다행이였다. 고맙습니다.

구독
통지
0 댓글들
가장 오래된
최신 최다 투표
인라인 피드백
모든 댓글 보기