brunch

You can make anything
by writing

C.S.Lewis

by 위키북스 Jun 01. 2021

유니티 전문 개발자가 알려주는
효과적인 게임 제작 기법





안녕하세요. 저는 절대강좌! 유니티 책을 리뷰한 위키북스의 테크니컬 에디터 윤가희입니다.

오늘은 이 책을 먼저 읽고 실습해본 독자로써 절대강좌! 유니티에서 어떤 내용을 다루는지 소개해 드리고자 합니다.






절대강좌! 유니티 2021에서는...


절대강좌! 유니티 2021에서는 두 가지 게임을 만듭니다.


첫 번째 게임 'SpaceShooter'는 우주 공간에서 몬스터들과 싸우는 3인칭 슈팅 게임이에요. 프로젝트 생성 방법부터 시작해서 게임 스테이지 제작, 주인공 캐릭터 제작, 적 캐릭터 제작까지 게임을 제작하는 데 필요한 전반적인 과정을 친절하게 설명해줍니다.      


두 번째 게임 'AngryBoy2Net'은 포톤 클라우드를 활용해 제작하는 네트워크 슈팅 게임이에요. 네트워크 게임 개발은 쉽지 않을거라고 생각하고 시도조차 안해봤는데, 포톤 클라우드를 이용하니 너무 간편하게 대전 게임을 만들 수 있어 놀랐답니다.  






이어서 어떤 과정을 거쳐 게임을 완성해 나가는지 자세하게 살펴볼게요.  






1장. 유니티 엔진의 소개


이 책의 대상 독자는 '유니티 초급자'입니다. 1장에서는 유니티를 처음 접한 독자분들도 따라할 수 있게 유니티를 설치하는 방법부터 유니티 인터페이스조작법을 친절하게 소개합니다.






2장. 게임 개발 준비


2장에서는 프로젝트를 생성하고, 유니티 에디터를 설정합니다. 이어서 유니티 에셋 스토어에서 에셋을 임포트해서 게임을 개발할 준비를 합니다.






3장. 게임 스테이지 제작


3장에서는 게임의 배경이 되는 스테이지를 제작합니다. 아무 것도 없는 빈 프로젝트로 시작하지만, 바닥과 벽면을 추가하고 조명과 스카이박스를 추가하면 멋진 게임 스테이지가 완성됩니다. 이 장에서는 텍스처, 머티리얼, 셰이더, 프리팹, 조명, 라이트매핑, 하늘 표현 방식 등 유니티 게임 제작에 필요한 기초적인 내용을 학습합니다.

빈 프로젝트로 시작해
게임의 부대가 될 바닥과 벽을 만들고,
스카이박스를 추가하면 무대가 완성됩니다.






4장. 주인공 캐릭터 제작


4장에서는 주인공 캐릭터를 제작하고, 게임오브젝트와 컴포넌트의 관계를 살펴봅니다. 먼저 주인공 캐릭터로 사용할 3D 모델을 불러오고, 입력값을 받아 들여 캐릭터의 이동과 회전을 구현합니다. 이어서 무기를 장착하고, 그림자를 적용해 디테일을 살려줍니다. 마지막으로 Follow Camera를 적용해 카메라가 주인공 캐릭터를 쫓아다니게 합니다.

이번 장을 마치고 나면 주인공 캐릭터가 완성됩니다.
애니메이션을 적용하는 방법도 살펴봅니다.






5장. 총 발사 로직


5장에서는 총알을 만들어봅니다. 게임 개발에서 중요한 기능 중 하나인 물리엔진충돌 감지 조건, 충돌 이벤트를 살펴봅니다. 이어서 Trail Renderer를 활용해 총알의 발사 궤적총구 화염 효과를 만들고 오디오를 추가해 게임을 더욱 실감나게 만듭니다.

물리 엔진을 활용해 총알을 구현하고,
폭발 효과와 총구 화염 효과를 구현합니다.






6장. 적 캐릭터 제작


6장에서는 적군 캐릭터를 만듭니다. 메카님애니메이터 컨트롤러를 활용해 몬스터의 움직이는 모습을 구현하고, 내비게이션을 활용해 적 캐릭터가 주인공 캐릭터를 자동으로 순찰하고 추적하게 만듭니다. 이어서 적 캐릭터에 공격 기능을 추가하고,  델리게이트를 활용해 주인공 캐릭터의 사망도 구현해 봅니다.

메카님과 애니메이터 컨트롤러를 활용해 몬스터의 움직임을 구현합니다.
내비게이션을 활용해 적 캐릭터가 주인공 캐릭터를 순찰하고 추적합니다.






7장. 유니티 UI 시스템


7장에서는 유니티 UI를 활용해 다양한 UI를 구현해봅니다. 기본적인 UI 항목부터 Text Mesh Pro 컴포넌트의 사용법은 물론 한글을 처리하는 방법을 살펴봅니다. 또한 스크립트와 이벤트를 연결하는 방법도 학습해봅니다.

유니티 UI를 활용해 메인 화면을 구현합니다.
Text Mesh Pro 컴포넌트의 사용법과 한글을 처리하는 방법을 살펴봅니다.






8장. 게임 매니저


8장에서는 게임 개발에 자주 사용하는 싱글턴 디자인 패턴을 활용해 게임 매니저를 제작하고, 오브젝트 풀링을 활용해 성능을 높이는 기법에 관해 알아봅니다. 이어서 주인공 캐릭터의 체력과 스코어를 표시할 UI를 구현하고, PlayerPrefs(플레이어 프렙스)를 활용해 스코어를 저장하는 방법을 살펴봅니다.

오브젝트 풀링을 활용해 성능을 높이는 기법을 알아봅니다.
주인공 캐릭터의 체력과 스코어를 표시할 UI를 구현합니다.






9장. 레이캐스트 활용


9장에서는 발사체를 이용한 충돌 로직 이외에 많이 사용하는 레이캐스팅 기법에 관해 살펴봅니다. 레이케스트의 개념과 원리를 살펴보고, 이어서 게임에 적용해봅니다.

레이캐스트의 개념과 원리를 살펴보고,
이를 게임에 적용해봅니다.






10장. 내비게이션 고급 기법


10장에서는 길 찾기 알고리즘인 내비게이션을 사용해 주인공 캐릭터를 추적하는 로직을 구현해 봅니다. 이어서 동적 장애물 처리와 끊어진 메시를 연결하는 Off Mesh Link(오프 메쉬 링크)를 살펴봅니다.

길 찾기 알고리즘인 내비게이션을 사용해 주인공 캐릭터를 추적하는 로직을 구현해 봅니다.
동적 장애물 처리와 끊어진 메시를 연결하는 Off Mesh Link(오프 메쉬 링크)를 살펴봅니다.






11장. 라이트매핑 및 라이트 프로브


11장에서는 조명의 다양한 모드에 따른 차이점을 살펴봅니다. 이어서 라이트 맵핑라이트 프로브를 활용해 동적 객체의 실시간 조명 효과를 연출함으로써 훨씬 자연스럽고 고품질의 비주얼 환경을 구현합니다. 이번 장을 마치고 나면 한 층 더 분위기 있는 게임 무대가 완성됩니다.

조명의 다양한 모드에 따른 차이점을 살펴봅니다.
라이트 맵핑과 라이트 프로브를 활용해 동적 객체의 시시간 조명 효과를 연출합니다.






12장. 씬 관리


12장에서는 협업 시 효율적으로 씬을 분리하고, 병합하는 방법에 관해 살펴봅니다. 또한 씬을 호출하는 방법멀티 씬 에디트 기능에 관해 학습합니다.

씬을 분리하고, 병합하는 방법에 관해 살펴봅니다.
씬을 호출하는 방법과 멀티 씬 에디트 기능에 관해 학습합니다.






13장. 오클루전 컬링


13장에서는 렌더링 부하를 줄이는 다양한 컬링 방법에 관해 알아봅니다. 특히 1인칭 시점에서 렌더링 부하를 획기적으로 줄일 수 있는 오클루전 컬링 기능에 관해 살펴봅니다.


렌더링 부하를 줄이는 다양한 컬링 방법에 관해 알아보고,
오클루전 컬링 기능에 관해 살펴봅니다.






14장. Input System


14장에서는 다양한 입력 장치에 대응하는 새로운 입력 시스템인 Input System의 기본적인 사용법을 살펴보고, 간단한 RPG 주인공 캐릭터의 이동 로직을 Input System을 이용해 제작해봅니다.

다양한 입력 장치에 대응하는  Input System의 기본적인 사용법을 살펴보고,
RPG 주인공 캐릭터의 이동 로직을 Input System을 이용해 제작해봅니다.






15장. 포톤 클라우드를 활용한 네트워크 게임


15장에서는 포톤 클라우드를 활용해 네트워크 슈팅 게임을 제작합니다. 로비와 룸은 물론 네트워크 동기화, RPC, 채팅 로직 등을 구현해봅니다. 또한 유니버설 렌더 파이프라인(URP)과 포스트 프로세싱 기능을 활용해 시각적 효과를 높인 프로젝트를 구현해봅니다.

URP와 포스트 프로세싱 기능을 활용해 시각적 효과를 높인 프로젝트를 구현합니다.
로비와 룸은 물론 네트워크 동기화, RPC, 채팅 로직 등을 구현해봅니다.







지금까지 절대강좌! 유니티에서 무엇을 다루는지 살펴봤습니다. 


기초적인 내용부터 고급 기법까지 친절하게 설명해주신 저자분 덕분에 멋진 게임을 완성하는 것은 물론 게임 개발에 필요한 각종 지식을 습득할 수 있는 시간이었는데요. 


여러분들도 절대강좌 유니티와 함께 여러분만의 소중한 게임을 만들어보기 바랍니다.




이 책을 끝까지 읽고 따라 하다 보면 
어느새 게임 개발에 필요한 각종 지식을 습득하게 될 것입니다.







https://wikibook.co.kr/unity2021/





절대강좌! 유니티에서 만드는 두 가지 게임을 미리 살펴보세요






작가의 이전글 유튜브 영상 제작과 편집, 쉽게 하는 방법 없을까요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari