유니티 Unity | [retr0] Zombie Game _ single

2020. 2. 16. 18:44Unity/Unity [retr0]

반응형

* "레트로의 유니티 게임 프로그래밍 에센스" 책을 기준으로 제작했습니다.

게임 명 : Zombie Game

설명 : 좀비들이 끊임없이 다가옵니다. 플레이어는 기관총으로 좀비들을 쏴주기면서 점수를 모으고 가능한 한 오래 살아남아야 합니다.

기능 

  1. 좀비는 일정 주기로 생성됩니다. 시간이 지날수록 한 번에 생성되는 좀비 수가 늘어납니다.
  2. 좀비는 플레이어의 위치를 주기적으로 파악하고 언제나 최적의 경로를 찾아 플레이어를 추적합니다.
  3. 좀비의 이동 속도와 공격력, 체력은 랜덤으로 지정됩니다.
  4. 강하고 빠른 좀비일수록 피부 색깔이 붉어집니다.
  5. 플레이어의 체력은 캐릭터를 따라다니는 원형바로 확인할 수 있습니다.
  6. 플레이어의 기관총 탄알은 무한하지 않고, 체력도 자동 회복되지 않습니다. 플레이어는 계속해서 탄알 아이템과 체력 아이템을 찾아야 합니다.
  7. 아이템은 주기적으로 플레이어 근처의 랜덤한 위치에 생성됩니다. 생성된 아이템은 일정 시간 뒤에 사라집니다. 몰려오는 좀비를 피하고 아이템을 찾기 위해 플레이어는 멈추지 않고 계속 움직여야 합니다.
  8. 후처리 효과를 사용해 게임 화면을 보정합니다.

 

게임 스크린샷

기본 게임 시작 화면
총으로 좀비를 피격시 효과 재생
플레이어가 사망했을 때 화면


 

깃 허브 링크

 

https://github.com/jeaho0613/Unity_retr0/tree/master/Unity_essence/Zombie

 

jeaho0613/Unity_retr0

유니티 레트로 프로젝트. Contribute to jeaho0613/Unity_retr0 development by creating an account on GitHub.

github.com


 

느낀 점

 

제가 생각했던 가장 중요했던 기능과 내용을 정리해보겠습니다.

 

1. AI 기능

Unity에는 자체적으로 AI 기능을 제공합니다. 내비게이션 시스템이 그 기능인데요. 하드 코딩이 필요 없이 내비 메시 빌드를 통해 인공지능이 자체적으로 추적하고, 설정된 움직임을 수행합니다. 이 기능은 유용하게 쓰일 거 같으니 공부를 좀 더 해야겠습니다.

 

2. Script 관리

비교적 간단한 게임을 만드는데도 17개의 스크립트로 구성되었습니다. 이는 저자가 유지보수와 하나하나의 기능을 책에 집필하기 위해 많은 스크립트를 사용했다고 하여도 각자가 필요 없다고 생각되지 않습니다.

우선 IItem의 사용을 위한 interface 활용, 싱글톤 패턴을 활용한 Manager 스크립트, 혹시 일어날 수 있는 오류를 위해 총을 쏘는 데 사용하는 스크립트를 2개로 분리하여 작성한 것 등등 꽤나 많은 내용을 배웠습니다. Script관리, 즉 최적화는 게임 프로그래밍에 있어 가장 중요하다고 생각하기에 직접 게임을 만들어보고 최적화하는 기법 등을 공부해야겠다고 생각되었습니다.

 

3. 모델링, UI 구성 등 디자인 기법?

이미 구성되어있는 모델을 가지고 게임을 만들었기에 많은 시간이 절약된다는 걸 느낄 수 있었습니다. 

하지만 Aesset store, unity_Chan 등과 같은 모델 소스를 얻어와서 작업하여도 그 사용법이나 활용방법은 프로그래머에 따라 천차만별이라는 걸 느꼈습니다. 

 

- 라이트맵 : 오브젝트가 빛을 받았을 때 어떻게 보일지 미리 그려둔 텍스처

- 글로벌 일루미네이션 : 물체의 표면에 직접 들어오는 빛뿐만 아니라 다른 물체의 표면에서 반사되어 들어온 간접광까지 표현

- 모델의 레이어 분리를 통한 상체, 하체의 다른 애니메이션 움직임 활용

- 휴머노이드 릭 

- 아바타 마스크

 

등등 좋은 아이디어와 훌륭한 코딩 실력이 있어도 사용자에게 보여주는 모델, 조명, 움직임 처리 등 또한 게임에 퀄리티를 올리는 중요한 부분인걸 깨달았습니다.

 

반응형