티스토리 뷰

 

오늘은 간단하게 시뮬레이션을 넣는 작업을 진행했다. 어쨌든 시뮬레이션이 게임에서 가장 중요한 파트인데 시뮬레이션 부분을 아예 빼놓자니 게임의 형태를 짐작하기가 어려워서, 아주 단순한 형태로라도 만들어 넣는 작업을 우선 완료했다.

 

오늘 작업한 시뮬레이션은 정말 굉장히 무식한 방식으로 동작한다. 대충 설명하자면 아래와 같은 로직을 따른다.

 

1. 가장 가까운 적을 찾는다. 이 적이 내 공격 사거리 안쪽이고 내가 공격 가능한 상황이면 공격한다.

2. 그런 적이 없으면 가장 가까운 적에게로 이동한다.

 

각각의 AI는 이 두 가지 과정을 무한히 반복한다. 이렇게만 만들어놔도 대충 시뮬레이션이 돌아가는구나 하는 건 확인할 수 있기 때문에..

 

그런데 지금은 단순히 만들어도 나중에 시뮬레이션을 고도화하기 위한 기반은 만들어놔야 했기 때문에 오늘은 그 설계 작업에서 시간을 엄청 많이 사용했다. 시뮬레이션이 나중에 리플레이가 되게 하고 싶은데, 시뮬레이션이 리플레이가 되기 위한 프로토콜 설계 + 이런 게임 결과를 만들어내는 부분(backend) 및 그걸 재생하는 부분(frontend)을 연동하기 위한 구조를 만드는게 꽤 시간을 많이 잡아먹었다.

 

아무튼 이렇게 해서 만들어진 시뮬레이션은 밴픽 단계가 끝나고 나면 유저의 입력과는 무관하게 진행되기 때문에, 인 게임에서 경기 화면은 (미리 게임 결과 모두 생성) => (그 생성된 결과를 순차적으로 읽으며 화면에 재생)의 과정으로 이루어진다.

 

그래서 시뮬레이션 결과를 반영한 간단한 뷰. 애니메이션등이 아직 작업되지 않아서 굉장히 어색하다. 백엔드에서 생성된 게임 결과 이벤트 중 움직임 + 사망/리스폰만 반영하고 있다. 때리는 모션이 안 보이긴 하지만 어쨌든 데미지는 들어가서 죽고 살아나고 하는 과정이 잘 일어나고 있으며, 가까운 적 찾아가서 때리는 등의 동작도 잘 이루어지고 있다는 걸 확인할 수 있다.

 

이 상태에서 일단 애니메이션 제외하고 캐릭터들만 디자인 나온 것들 적용해봤는데 굉장히 마음에 든다. 빨리 애니메이션도 붙이고 치고 박는 AI도 붙이고 싶다.

 

초반 플로우에서 전투까지 반영. 원래는 초당 20프레임 / 총 1200프레임 해서 전체 게임시간 1분인데 그렇게하니 gif 너무 길어져서 초당 60프레임 / 총 20초로 빠르게 진행시켜서 찍었다. 킬 스코어 올라가는 거, 캐릭터 정보 등등 반영되니 이제 꽤 그럴듯하게 보인다.

 

아직 선수 선택 씬에서 게임 시뮬레이션 정보 반영하는 건 작업 안해서 그냥 다 검사로 뜸

 

댓글
공지사항