1. 프로젝트 소개
23년 2학기 '메타버스콘텐츠제작의이해'라는 학교 수업의 팀프로젝트로 한 학기 동안 VR 게임을 설계 및 제작하였다.
게임의 목표는 다양한 적들과 싸워가며 필요한 아이템들을 모아 최종적으로 보스(넙죽이)와 싸워 이기는 것이다. 게임 속 플레이어는 던전을 탐험하면서 자신의 체력과 스태미나, 무기의 내구도 등 다양한 상태를 고려하여 적과 싸울 것인지, 피해갈 것인지 등을 매순간 결정해야 한다.
게임은 오큘러스 퀘스트2 환경에서 제작 및 시연하였다. 오큘러스 기기의 양컨트롤러 상호작용을 적극 활용하여 아이템 집기, 무기 휘두르기, 방어하기, 포션 마시기 등의 인터랙티브한 요소들에 신경써 보다 생생하고 몰입감있는 환경을 제공하고자 하였다.
2. 시연 영상
https://www.youtube.com/watch?v=hQypqciCQxs
3. 느낀 점
- 클린 코딩을 하자.
클린 코딩의 필요성을 절실히 느끼게 된 프로젝트였다. 한 컴포넌트에 무작정 생각나는 필요 기능이 있으면 계속 추가하는 방식으로 코딩했는데, 사실 이런 식으로 코딩하면 내가 원하는 것을 구현하기에는 그리 큰 문제가 되지는 않는 것 같다. 물론 프로젝트가 확장됐을 때 골치가 아파질 것이 느껴지긴 했지만, 어떻게든 나름 만족스러운 결과물을 뽑아내긴 했으니 말이다. 하지만 이러한 방식의 문제점 중 가장 크게 다가왔던 것은 코딩의 분배가 어렵게 된다는 점이다. 한 클래스에서 많은 기능을 구현하다보니 그 기능들이 대부분 서로 종속적이었고, 그 기능들을 도저히 분배하기가 어려워 결국 프로그래밍을 내가 모두 도맡아 했다.
- 클래스 설계를 해놓자.
어떻게 하면 팀원들에게 코딩 작업을 효율적으로 분배할 수 있을 지에 대해 고민했고, 클래스 설계에 충분한 신경을 쓴다면 작업을 분배하는 것이 훨씬 쉬워질 것이라고 생각했다. 또한 코딩을 하면서 클래스 간 결합도 문제가 계속 신경쓰였지만 리팩토링할 시간이 충분하지 않아 그대로 코딩했는데, 클래스를 잘 설계해둔다면 이러한 문제도 해결될 것이라고 생각된다.