Enemy AI

정재훈·2022년 5월 6일
0

Behavior Tree를 이용해 적의 AI를 구현했다.

대략적인 기능은 조건에 따라 3가지 상태중 하나를 선택한다.

  1. player가 보이는가?
    player가 보이면 player까지 일정거리 다가가고 Shoot 과 wait를 loop돈다.

  2. 1번 조건을 충족 못했을때 player가 마지막 보였던 장소로 가고 player가 마지막 보였던 장소를 담아뒀더 blackboard value를 비워준다.
    5초동안 기다렸다가 player last seen 변수를 비워줬기때문에 다음 sequence로 넘어간다.

  3. startLocation으로 돌아간다.

수도코드로 써보면 아래와 같다

if playerSeen:
	while(playerSeen):
    	if player와 거리가 가까움:
        	총을 쏜다
        else:
        	player 가까이 다가간다
            
elif playerLastSeen:
	playerLastSeen으로 간다
    clear playerLastSeen value
    5초동안 기다린다

else:
	초기위치로 돌아간다

굉장히 편리하고 강력하고 기능이였다

profile
게임 개발 공부중!

0개의 댓글