yhc509

Epoch: Unseen Devlog 4 - 전투 AI와 UI 초안

·6 min read

이번엔 전투 AI, 시나리오 그래프, 전투 UI 초안을 한 번에 잡았다. 아직 콘텐츠가 많이 올라간 단계는 아니지만, 전투 프로토타입의 뼈대는 이때 거의 나온 셈이다.

AI 시스템 고도화

Behavior Designer 에셋으로 AI를 만들기로 한 뒤, 이제는 실제로 어떤 로직에 따라 행동하게 할지 트리를 확정하고 구현하는 작업을 했다.

Devlog - 4 image 1

만들다 보니 공통으로 반복되는 부분이 많았다. 그래서 공통 로직은 별도 트리로 분리하고, 트리끼리 연결하는 방식으로 정리했다. 많이 쓰는 방식이라는데, 확실히 훨씬 편했다.

우선 전장 전체의 방침을 먼저 판단한다. 나는 이걸 Directive(지령)라고 부른다.

  • 특정 유닛을 공격해라
  • 특정 위치로 이동하라
  • 특정 유닛을 따라가라

이런 건 전장의 특수 상황에서 가장 먼저 따라야 하는 행동이다.

특별한 지령이 없으면 각 유닛은 자기 병종 타입(Force)에 맞춰 행동한다.

  • 힐러 : 회복 스킬, 버프 스킬 등
  • 물리 근접 딜러 : 물리 공격, 공격 스킬 등
  • 원거리 딜러 : 물리 공격, 공격 스킬, 카이팅 등
  • 마법 딜러 : 공격 스킬, 디버프 스킬 등
  • 탱커 타입 : 공격 스킬, 길막기, 요충지 점유 등

그리고 각 병종 트리 안에서 다시 정책(Policy)을 판단한다.

  • 공격(Attack) : 적을 향해 이동하여 공격
  • 방어(Defence) : 적이 내 공격 범위 안에 들어오면 이동하여 공격
  • 고정(Hold) : 이동하지 않고 현재 위치에서 행동

생각보다 구현이 오래 걸렸다. 거의 일주일 가까이 붙잡고 씨름했다. 그래도 이제는 베이스가 잡혔으니, 앞으로는 콘텐츠를 얹으면서 버그를 찾아 정리하면 될 것 같다.

스킬 리팩토링

AI 트리를 만들다 보면 스킬 시스템과 바로 엮이는데, 그 과정에서 기존에 미구현이거나 리팩토링이 덜 끝난 코드들이 계속 드러났다. 버프 스킬을 써도 버프가 안 걸리거나, 공격 스킬을 써도 대미지가 안 들어가는 식의 문제들이 있었다. 이런 부분을 전부 찾아서 정리했다.

전투 유닛 뷰어

아직 UI가 충분히 갖춰지지 않아서, 스킬을 쓴 뒤 버프나 디버프가 실제로 적용됐는지 한눈에 확인하기가 어려웠다. 그래서 빠르게 전투 유닛 뷰어를 하나 만들었다.

Devlog - 4 image 2

전투 시나리오 그래프

전투 시나리오를 구현하기 위한 커맨드들도 계속 추가하고 있다.

Devlog - 4 image 3

Devlog - 4 image 4

일단은 당장 필요한 것들부터 넣었다. 실제로 시나리오를 만들기 시작하면 더 늘어날 것 같다.

UI 작업

이제 아주 귀찮은 구간에 들어왔다. 내 기준으로는 여기가 첫 번째 고비다.

Devlog - 4 image 5

대사

Devlog - 4 image 6

유닛 정보(간략 버전)

반격 시스템은 슈퍼로봇대전이나 파이어엠블렘처럼 방어 / 반격 / 회피를 고르는 방식을 채택하려고 한다. 적 턴에도 유저가 어느 정도 개입하면서 전투를 풀어나간다는 느낌을 주고 싶었다.

다음 작업은 반격 페이즈 UI다.

UI 구현 순서는 반격 페이즈 -> 유닛 정보(상세) -> 스킬 정보 -> 전장 정보 -> 메뉴 정도로 보고 있다.

여기까지 나오면 1차 프로토타입으로는 충분하지 않을까 싶다. 아이템이나 특성 같은 요소는 2차 이후로 넘기는 편이 맞아 보인다.