잡담

생존신고 겸 VXA 이벤액알 제작 현황.

by 슈팅스타* posted Jan 08, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

정말 오랜만에 들어와보네요 여기

방학 맞아서 다시 겜만들려고 들어오긴했는데 강좌란 글 리젠이 끊겨있네여

이제 더 올라올것도 없이 많은 건지 아니면 그냥 관심이 끊긴건지

아마 전자라고 생각은 합니다만.

 

생존신고는 이정도로 됐고 이벤액알 이야기로 넘어갑니다

 

전 작년 1월 언제쯤에 스크립트를 안 쓰는 순수 이벤액알을 만들어볼려고 계획을 잡아놨었습니다. 그리고 그게 완성되면 제작중인 게임에 첨가할 예정이었죠.

근데 봄방학 끝나면서 박☆살. 시스템은 반도 완성 못했었습니다. 그래서 이번에 겨울방학 된 김에 오늘 아침부터 키보드 붙잡고 열나게 이벤트 작성했져. 거의 1년만에 다시 보니 뭔 소린지 못알아먹어서 잠깐 뻘짓..

 

암튼 일단 미뤄두고 있던 플레이어 캐릭터에 대한 이벤트는 완벽하게 다 짰습니다. 무기별로 리치 계산해서 이벤트 정렬하고 히트박스처럼 좌표대조해서 판정 띄우고 스킬 판정 띄우고 뭐 기타등등.

여기까지는 뭐 그냥저냥 어렵지도 않고 귀찮아서 밍기적거렸던거라 LTE급으로 빨리 끝냈져

 

진정한 헬게이트는 파트너의 AI를 건드릴 때 열렸습니다.

 

파트너는 주인공 지시에 따라서 4가지 행동패턴(일반, 학살, 거점방어, 서포팅)에 따라서 움직이고 거기에 세부적인 명령 몇 가지(돌파, 저격, 지원요청, etc.)를 받아서 행동하는 것을 원칙으로 하는 것으로 계획해 놨습니다만..

이걸 이벤트로 구현하기가 매우 빡세다는 것을 너무 늦게 깨달았죠.

 

공통으로 해당되는 패턴만 해도 다음 4가지 행동을 기본으로 합니다.

 

1. 주인공 주변 일정 범위에 적이 있을 경우 하나를 타깃으로 지정해 공격한다. 이 때 사정거리는 X칸.

2. 주인공의 체력이 일정 이하이며 주인공이 포션류 아이템을 안 갖고 있을 때 포션을 먹인다.

3. 주인공이 행동불가 계열 상태이상에 걸렸을 때, 약을 소지하고 있다면 사용한다. 없다면 상태이상이 풀릴 때 까지 주변을 방어한다.

4. 주변 상황에 맞춰서 조언, 농담 등 대사를 친다.

 

(...)

 

이 중 1번을 구현하기 위해 1시간 반 정도동안 열나게 코드를 짰습니다.

그 결과 :

 Hellgate.jpg

Hellgate_00000.jpg

Hellgate_00001.jpg

Hellgate_00002.jpg

Hellgate_00003.jpg

 

대략 이 정도의 코드가 쓰여졌습니다. 이 무슨 미ㅊ..

사진 보시면 알겠지만 타깃이랑 이벤트의 위치 관계를 따져서 어떻게 이동하고 무슨 행동을 하는지 다 써놨습니다. 쉽게 썼으면 말이라도 않지, 저거 짜내는 데 진짜 머리 폭발할 뻔 했져.

이건 뭐.. 코드 칸이 부족해서 이벤 페이지를 넘겨야 할 판이네요. 혹시 이거 좀 더 간략하게 줄이는 법 알고계신분은 덧글로 좀(...)

 

어찌됐든 앞으로 이어질 수난을 생각하니 아무래도 이번 년도에도 겜 완성하기는 글른 듯.

제가 만약 이거 다 짜는데 성공하면 저 시스템 부분을 전부 한데 모아서 액알 참고용으로 뿌릴 예정인데 저걸 참고할 사람이 있을까 모르겠네요. 으앜ㅋ

 

뭐 여기까지. 잡설 읽어주셔서 감사합니다. 슈팅스타였슴다.