무모한 성격을 가진 10대 후반의 소녀 리아.🙋♀️
요트⛵를 타고 혼자 세계여행을 떠나 탐험하다 풍랑을 만나 무인도🏝에 갇히게 된다.
목표는 섬과 바다에서 탈출과 생존에 필요한 자원🥥🎣을 채취하여 살아남고, 조난 신호기를 만들어 섬을 탈출하는 것!
Universal Render Pipeline
URP는 아름다운 그래픽과 뛰어난 성능을 제공하는 강력한 솔루션으로 이제 더욱 다양한 플랫폼에서 사용 가능합니다. 또한 최신 아티스트 툴을 지원하고 2D, 3D, 가상 현실(VR) 및 증강 현실(AR) 프로젝트 모두에 적합합니다.
아티스트용 툴(비주얼 이펙트 그래프, 셰이더 그래프, 렌더 패스) 지원
출처 : https://blog.unity.com/kr/technology/how-the-lightweight-render-pipeline-is-evolving
졸업 프로젝트로 어떤 게임을 만들지 팀원분과 상의하다가 각자 주제를 2가지 정해오자고 하였는데, 내가 준비해간 주제 2가지 중 하나는 low polygon asset들을 사용하여 마법 마을을 만들어 모험하는 RPG형 이었고 다른 하나는 해양 생존 서바이벌 게임이었다.
Subnautica라는 게임을 매우 좋아해서 해양 생존 서바이벌 게임을 제작해 보고 싶었는데 팀원분이 흔쾌히 OK 해주셔서 제작하게 되었다.
우선 URP로 게임을 만들어보는 것이 처음이라서 많이 헤맸다. 기존 3D툴과는 asset 적용 방법이나 쉐이더, 렌더링 부분들이 달라서 많이 찾아보고 공부하면서 작업해야했는데, URP가 나온지 얼마 되지 않아 자료도 많지 않아서 이것저것 해보면서 시간을 많이 썼던 것 같다.
게임안에는 player를 공격할 수 있는 물고기인 piranha가 있는데 이 피라냐의 행동 패턴을 담당하는 FSM을 만드는 것이 어려웠다. EscapeFROM에서는 Boss Zombie와 일반 Zombie로 두 타입의 enemy가 있어 enemy base script를 상속받아서 구현하는 방식을 썼는데, 이번 28Days에서는 enemy가 piranha 하나 밖에 없어서 switch문과 coroutine을 사용하여서 FSM을 구현하였다.
piranha의 행동패턴은 IDLE, ATTACK, PATROL(SWIM), DIE로 구성되어 있는데 PATROL을 구현하는 부분에서 이동할 수 있는 곳을 6곳으로 한정시켜 놓고 6개의 점 중에 random으로 선택해서 돌아다니게 하였다. Coroutine과 switch문으로 구현하다보니 이것저것 신경써줘야할 부분이 많아서 꼬박 일주일을 고민하고 꼬박 일주일을 구현한 것 같다. 아래 사진에 보이는 노란색 구체가 enemy가 돌아다닐 6개의 점을 나타낸 것이다.
여러 작업을 해보는 것이 재밌었다. 그래픽 쉐이더를 만져보기도 하고 post processing을 사용하여 보기도 하고, fog를 추가해 보기도 하고 실제 바다를 수영하는 것 처럼 작업해 보는 것이 즐거웠다.
바다에는 물고기들이 돌아다니는데 물고기들에게 가까이 다가가서 상호작용 키를 누르면 물고기가 잡히고 inventory에 추가된다. 물고기를 잡는 부분은 내가 구현하고 inventory에 추가하는 것은 팀원분이 작업하셨는데 서로 협업해서 하나의 기능을 구현해낸 것이 재밌었다.
-> https://blog.unity.com/kr/technology/tales-from-the-optimization-trenches 해보기
나는 그래픽쪽과 player ctrl, 물고기 ctrl, enemy FSM, sound ctrl, tutorial scene, ending scene 쪽 script들을 맡았고,
팀원분은 Day Ctrl, UI Ctrl, Save & Load, Inventory & crafting 쪽 script들을 맡았다.
혹시 이 게임 유니티 프로젝트를 받아볼수 있나요? 플레이 해보고 싶네여!