오늘은 캐릭터 이동 구현과 게임 시스템 구조를 정리하는 쪽으로 작업했다.
이번 작업은 프로토타입을 만들어보면서 실제 게임이 어떤 흐름으로 진행되어야 하는지 기준을 세웠다.
이동 구현
캐릭터 이동은 생각보다 금방 구현했다.
이번 게임에서 중요한 건 자유롭게 방향을 꺾는 이동이 아니라, space bar를 눌렀을 때 앞과 뒤 방향만 바뀌는 구조였다.
그래서 이동 시스템을 복잡하게 가져갈 필요가 없었다.
입력에 따라 세밀한 방향 전환을 늘리는 대신, 현재 진행 방향을 반전시키는 쪽으로 정리하면 됐다.
구현 시간도 짧았고, 게임이 요구하는 리듬에도 더 잘 맞았다.
후에 만들어질 RoundManager의 BoxComponent에 막혀 이동할 수 없는 구현만 남았다.
게임 구조 정리
이동을 정리하고 나서는 게임 시스템 구조를 다시 생각했다.무찔무찔은 하나의 화면 안에서 적이 계속 나오는 방식이 아니라, 현재 스테이지에 대응되는 적이 먼저 보이고, 그 스테이지를 정리해야 다음 흐름이 열린다.
원작 기준으로 보면 미니맵에는 현재 스테이지에 속한 적들만 표시된다.
그리고 보스를 잡고 다음 스테이지로 넘어가야, 그 다음 스테이지 적들이 다시 미니맵에 나타난다.
이 구조를 그대로 가져가려면 적을 단순히 배치해 두는 것만으로는 부족했다.
현재 플레이어가 어느 구간에 들어왔는지, 그 구간에 대응되는 적이 언제 스폰되는지, 미니맵은 언제 갱신되는지를 하나의 흐름으로 묶어야 했다.
RoundManager
RoundManager는 BoxComponent를 가지도록 만들고, 플레이어가 그 범위에 들어오면 해당 스테이지가 시작되는 구조를 생각했다.
이 시점이 되면 그 구간에 대응되는 적들이 스폰되고, 동시에 미니맵도 현재 스테이지 기준으로 다시 갱신된다.
스테이지 진행 방식
라운드 진행은 플레이어 진입 -> 적 스폰 -> 미니맵 갱신 -> 보스 정리 -> 다음 구간으로 이동 순서로 정리된다.
오늘은 이 흐름을 기준으로 프로젝트 구조를 다시 보는 시간이 길었고, 이후 작업도 이 기준 위에서 계속 진행하게 될 것 같다.
다음 작업
RoundManager가 어디까지 책임질지, 미니맵 갱신 시점과 적 스폰 완료 시점을 어떻게 나눌지, 보스 처치가 다음 스테이지 조건으로 어떻게 이어질지를 구체화
'TIL' 카테고리의 다른 글
| Muzzil 카메라, 미니맵 구현 (0) | 2026.05.15 |
|---|---|
| "Git LFS 한도 초과." "?에셋이 몇 갠데" "없어" (0) | 2026.05.14 |
| 5/12 팀 작업 준비의 준비 프로젝트 (0) | 2026.05.12 |
| 5/11 게임잼 (0) | 2026.05.11 |
| GetWorld()->GetTimerManager().SetTimer (0) | 2026.05.08 |