2025. 4. 23. 01:15ㆍ게임개발
개요
Edge가 무엇인가.. 그것은 동계 게임잼 프로젝트에서 기원한 게임인 것이다.
(이때 만든 게임인.)
[ 팀 프로젝트 후기 ] 동계 게임잼 시즌2를 마치며
왜 시즌 2냐면 올해 1월에도 동계 게임잼을 했었다.그때는 고1 신분으로 참여하게 된 행사이지만 같은 해인 2024년 진행했기 때문에 이번에 한 게 시즌2라고 볼 수 있다.12월 18~20 일까지 동계 게임
dev-vcs.tistory.com
여러 프로젝트들을 끝내고 나서. " 아 나중에 다시 리메이크해야지 "라는 생각을 해왔고.
실제로 프로젝트를 파기까지는 성공한 프로젝트들이 수두룩 하지만.
진심으로 개발을 지속한 프로젝트는 거의 없었다.
하지만 동계 게임잼 프로젝트였던 Edge?
게임성도 좋았고. 실제로 결과도 좋았던 프로젝트였기 때문에,
여기다 시간을 좀 더 부으면 더 좋은 게임이 되지 않을까??라는 생각에 조금 더 할 맛도 났다.
(실제로 게임잼 기획 심사에서 플레이 콘셉트의 참신함에서 높은 점수를 받았다.)
무엇보다 중요한 것은. 내 개인 프로젝트 기획안이었다는 것이다.
크... 빌드업이 좀 지렸던 것 같다.
(오프라인 회의로 기획얘기한 줄 알고 대화내역이 없을 줄 알았는데. 있었다 ㄴㅇㅅ)
서론이 꽤 길었는데 그래서.
리마스터 버전을 개발하기로 했다!
기존의 모서리 이동 기믹을 그대로 가져가고. 선택형 증강체에 기반한 뱀서 라이크식 성장 시스템.
이후 얻은 재화로 새로운 플레이어(공격 방식이 다름)를 해금해 나가는 방식으로 기획을 잡았다.
아마 개발을 계속하게 되고 완성도도 갖추어진다면 GIGDC 2025에도 혼자서 한번 내볼 수 있을 것 같다.
사실 개발 시작한 지는 조금 되었고 지금도 조금씩 비는 시간을 내어 프로젝트를 만지는 중이다.
개발 현황
기존의 플레이어 이동 메커니즘은 RayCast물리 감지를 통한 이동목표 감지, 이동, FSM을 그대로 가져와서 사용하였기에 오래 걸리지 않았다. 사실상 현재로서는 기존의 프로젝트와 다른 점은 적의 AI 시스템에 관한 부분정도만 존재한다. (추가된 기능들이 조금 더 있긴 한데 자잘한 기능들이라 설명을 생략한다.)
적 AI는 기존의 프로젝트에서 FSM을 통해 개발되었고, 팀원이 개발해 주었다.
하지만 FSM의 단점이라면 단점이 목표 감지, 추적과 같은 AI를 수정하려면 스크립트를 수정해야 하는 문제가 있다.
이를 간단하게 해결하기 위해 목표를 감지하고, 추적하는 로직을 SO화 하여 언제든지 적의 행동을 커스터마이징
할 수 있도록 구상했다. (이는 전략(Strategy)패턴에 해당한다)
이를 위해 추가된 것이 바로 이 로직을 관리해 주는 EnemyAI라는 스크립트이다.
내부적으로는 각 SO를 개별적인 적 객체에서 동작할 수 있도록 클론 해주고 필요한 값을 넘겨준다.
FSM과 혼합하여 사용한다는 점이 가장 난해한 부분이라고 볼 수 있는데.
움직이는 상태인 MoveToTargetState내부에서는 이런 식으로 사용한다.
State에 들어올 때 StartMove를 실행하고 종료되었을 때. EndMove()를 실행한다.
MoveLogic의 ArriveEvent는 목표 지점에 도달하였을 때 발행되는데 이는 구현된 AI Logic마다 다르다.
또 Update에서는 AI의 MoveLogic을 Update 해주는데. 정말 간단하게 생각하면
SO변경만을 통해 유동적으로 커스텀이 가능한 시스템을 구현한 것뿐이다.
이렇게 하지 않는다면 새로운 State를 하나 만들고 이를 StateMachine의 스테이트 목록에 등록하는 절차까지.
코드 내부적으로만 볼 수 있는 비직관적이고 불편한 과정이 될 수 있다.
하지만 이 시스템을 활용하면.
SO로 목표 감지와 이동 로직을 구현해 놓고, 원하는 AI를 끼워주기만 하면 그대로 동작하게 된다.
저 이상하고 기괴하게 움직이는 놈은 놀랍게도 의도된 움직임을 잘 수행하고 있는 게 맞다.
(진격거 영화를 감명깊게 보고 기행종이 만들고 싶었다는 게 점심의 학계.)
뭐 일단 그렇다.. 졸업작품도 해야 되는데 없는 시간 쪼개서 투자하는데도, 개발하는 게 재미는 있어서 계속하고 싶고.
그래도 사람이 바쁘면 일을 더 잘하게 되는 것 같다. 노는 시간을 줄이는 게 맞다.
한번 제대로 각 잡고 만들어봐야겠다.