대상은 예의 스탠드 브라더스입니다.

2인용만 되는 게임은 인기가 없는거 같아서 인공지능을 만들어 1인용으로 바꾸어 보았습니다.

이 버젼은 정작 2인용은 안되는데... 나중에 1인용 2인용 고를수 있는 버젼을 만들 생각입니다.

전에 똑똑한 터렛 만들기를 응용해서 적절한 순간에 나이프를 박고, 가까이 오면 러시를 쓰며, 여유가 생기면 시간을 멈춥니다.

내가 시간을 멈추면 곧이어 시간을 멈추는데다 대시를 적재적소에 쓰기에 날려버리기 까다롭습니다.


인공지능을 설정하는데 있어 먼저 체크해야 할건 당연히 제일 중요한 거겠죠.

다음과 같은 순서로 행동을 합니다.

1.위치 선점(1초후 예상 위치 기준)

2.위치+벡터가 위험한 상태인 경우 대시 사용

3.필살기 사용 조건이 될때 필살기 사용

4.기를 500 이상 모은경우 시간 멈춤

5.상대가 시간을 멈춘 경우 기가 충분하면 2초후에 시간 멈춤

6.적이 멀고 기가 적게 모인 경우 일정 확률로 나이프 투척(+상대를 바라봄)

7.적이 가깝고 기가 적당히 모인 경우 일정 확률로 러시 공격


이 정도인 간단한 인공지능 입니다만, 의외로 상대하기 까다롭군요...

물론 지능의 한계로 특정 패턴을 계속 써주면 당해버리긴 합니다.


용량이 넘는 관계로 다운로드는 드롭박스로...

[다운로드]


Posted by MPMaker

Q:물 만든다며? A:뭐


이번에는 2인용 게임인 '대난투 스탠드 브라더스' 를 만들어 봤습니다.

스매시 브라더스 패러디+죠죠 패러디입니다.

생명력 개념이 없고 번지만이 있는 미니 격투게임을 나름 만들어 봤습니다만

캐릭터는 2개뿐입니다.

2인용이고 친구가 없어서 제대로 된 시험을 해볼수가 없다! 엉엉..




좀더 수정을 거친 버젼.


이미지는 점프 울티메이트 스타즈.



오늘의 팁: 시간 정지 만드는 방법.
-모든 이동 속도에 시간배속이라는 임의의 변수를 곱해둔다.(기본값 1)
-매 스탭마다
  속도=속도*'시간배속'/'이전 배속'
  이전 배속=시간배속

을 실행한다.

-멈추고 싶은 대상의 시간 배속을 1/100 정도로 만들었다가 나중에 1로 되돌린다.

1/100 이면 미세하게 움직이는게 느껴지지만 더 느리게 했다간 되돌릴때 문제가 생길수 있음.


이상입니다. 다음번에는... 뭘 할지 저도 모르겠네요.



Posted by MPMaker



turrettest-Default-1.0.0.0.exe


지난번에 말한 대로 이번엔 터렛을 만들어 보았습니다.

터렛은 총 3종류의 조준을 넣었습니다.


1.기본(무광택)-적을 향해 쏩니다.

2.탄막(발광)-적을 향해 쏘긴 하는데, 좀 막 쏩니다. 일종의 탄막.

3.예측(외곽선)-적의 직선 이동 경로를 예측해 쏩니다.


만약 모든 적이 터렛에 닥돌한다면 3=1>2 의 효율을 보여주겠죠.

하지만 평균적인 직선이동에서는 3>2>1의 효율을 보여줬습니다.

왜 이런 차이가 생기는 걸까요?


탄환이 적에게 도달할 시간에 적은 이미 다른 곳에 가있기 때문입니다.

일반적으로 한 자리에 고정돼있을 터렛이 노리게될 목표는 터렛 근처를 움직이는 물체입니다.

그러므로 그냥 목표를 향해 쏘는 것이 아니라 탄환이 날아갈 시간동안 목표가 이동하는 것까지 계산하여 목표가 도달할 예상 위치를 향해 쏴야 합니다.


동영상을 보시면 그것만으로도 효율이 크게 차이나는걸 알 수 있습니다.

그럼 타겟의 도달 위치를 예측하려면  뭘 알아야 할까요?

1.타겟의 현재 위치

2.타겟의 속도

3.타겟의 이동 방향

4.탄환의 속도

5.타겟와 터렛의 거리 


타겟의 위치+(타겟과의 거리/탄환의 속도*타겟의 속도*타겟의 이동 방향)에 쏘게 하시면

됩니다.


게임메이커 함수로 표현하자면 방향을 다음과 같이 잡으면 됩니다(whe1은 타겟의 id)

point_direction(x,y,whe1.x+distance_to_object(whe1)/20*whe1.speed*sin(degtorad(whe1.direction+90)),whe1.y+distance_to_object(whe1)/20*whe1.speed*cos(degtorad(whe1.direction+90)))


+90이 들어가는 이유는 게임메이커에서의 0도와 삼각함수의 0도가 다르기 때문입니다.

20은 탄환의 속도입니다.


Q:그래서 어쩌라고?

A:음.... 다음에는 물 구현하기를 해볼까요?

Posted by MPMaker

블로그 이미지
진지한것도 고민이구나
MPMaker

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함