오늘은 앞으로 만들 격투 게임에 대한 기획과 설계를 간단하게 진행해보았다.
인게임 시스템 기능 설계
GameMode(게임 규칙과 전투 흐름 관리할 예정)
- 매치 관리 (어떻게 매치할건지 ← 규태님이랑 이야기해보기)
- 플레이어 스폰(맵에 움직일 수 있는 랜덤한 위치에 생성할 예정
- 게임 시작/종료(하트 3개에 플레이어 1명 남을 때까지, 시간 타이머)
- 플레이어 상태 초기화(체력, 스킬 쿨타임 등)
- 이벤트 트리거(라운드시작, 종료, 플레이어 사망, 리스폰 등)
GameState
- GameMode에서 정의한 시작/종료 조건 업데이트
- 각 라운드별 결과 및 이벤트 저장
- HUD에 필요한 데이터 업데이트(체력, 콤보, 스킬 쿨타임, 남은 시간 등)
- GameMode에서 이벤트 트리거 받아와서 UI에 전달
- 플레이어 사망했을 때 관전모드
- Rating 값 아웃게임에 넘겨주기?
- 데미지, 준 피해량 저장하고 Rating 계산할 때 쓰기
GameInstance
- 선택한 캐릭터 저장(아웃게임에서 받아오기)
- BattleManager(캐릭터랑 이야기) → 캐릭터에서 데이터 받아와서 판정하고 클라에 다시 뿌려주기
- Attack
- TakeDamage
- DI
인게임 UI
- 라운드 시작 UI(전투 시작 전 카운트로 표출)
- 타이머
- 카메라 액션 - 피격당하거나 궁극기같은거 쓸 때 쉐이크 같은 것들(플레이어에서 하면 좋을 것 같음)
- 최종 결과 UI
HUD
- 체력바(거리에 따라 UI 동기화할지 말지 추가하면 좋을듯)
- 스킬 쿨타임
+PlayerController
+(후순위) 튜토리얼 진행
이런 식으로 설계해보았다.
전반적인 게임모드와 UI는 인게임, 아웃게임으로 분리해서 진행하였고 나는 인게임을 담당하기로 했다.
언리얼 프로젝트를 진행하면서 게임의 전반적인 흐름을 설계해보고 싶었는데 이번 기회에 잘 녹여내보아야겠다.
'Unreal Engine' 카테고리의 다른 글
[ UE ] 데디케이트 서버 패키징을 해보자 (1) | 2025.03.31 |
---|---|
[ UE ] 언리얼의 멀티네트워크 (0) | 2025.03.27 |
[UE, C++] 트러블슈팅, 멀티환경에서 카운트 개별 처리 (0) | 2025.03.21 |
[ UE, C++ ] Listen Server를 활용한 숫자 야구 게임 만들기 (1) (0) | 2025.03.19 |
[ UE ] 데디케이트 서버 환경 만들기 (0) | 2025.03.17 |