[개발일지] 두덕용사 - 물고기 AI

in #kr4 years ago

안녕하세요. 넉근입니다. ^^
시골로 귀농한 주인공이 용사로 성장하는 게임 두덕용사 개발일지입니다.

참치가 제주도 앞바다에 나타났다고 합니다.
두덕용사가 가만히 있을 수 없죠.
어디 잡으러 가볼까요?

Honeycam 2017-07-15 01-03-36.gif

참치가 나타났긴 했는데,
뭔가 움직임이 이상하네요.

전 아래 사이트를 참고해서 구현해 보았습니다.

Understanding Steering Behaviors: Wander
https://gamedevelopment.tutsplus.com/tutorials/understanding-steering-behaviors-wander--gamedev-1624

// Calculate the wander force
private function wander() :Vector3D {
   var now :Number = (new Date()).getTime();
 
   if (now >= nextDecision) {
    // Choose a random position for "target"
   }
 
   // return a steering force that pushes the character
   // towards the target (the seek behavior)
   return seek(target);
}
 
// In the game loop, handle forces and movement just
// like before:
public function update() :void {
   steering = wander()
   steering = truncate (steering, max_force)
   steering = steering / mass
   velocity = truncate (velocity + steering , max_speed)
   position = position + velocity
}

요약해 보면,

  1. 일정한 시간간격으로 랜덤한 목적위치를 찾는다.
  2. 목적위치까지 일정한 속도로 이동한다.
  3. 조향장치(steering)를 이용해서 자연스럽게 회전하면서 이동한다.

일단 이정도로 구현해 보았습니다.
물고기 AI 어떻게 하면 좀 더 자연스러울까요?

알파고가 대신 구현좀 해줬으면 좋겠네요. ㅎㅎ
포스팅 봐주셔서 감사합니다. ^__^

Sort:  

오 코드까지 있군요! 잘봤습니다. 참치가 두덕용사에게 다가오면 피하게 할 수 있나요? ㅎㅎ

아 넵 피하게 할 수 있을것 같아요. 위 사이트에 도망관련 내용도 있더라구요. 의견주셔서 감사합니다.^^

우왕 신기합니다.!!! 컴맹인 제가 보니 이건 완전 신천지군요;;

알고나면 그냥 레고 조립하는거와 비슷할 수도 있어요. ㅎㅎ

저도 빨리 실력키워서 만들고 싶네요저만의 프로그램을요

꼭 자기만의 프로그램을 만드시길 바랍니다. ^^

예 만들어서 취직해야죠 포폴!!!

꾸준한 열정이 너무 멋집니다.

감사합니다. 같이 열심히 해요. ^^

두덕용사 프로토 타입 공개 안하시나용? ㅎㅎㅎ

아직 프로토타입을 공개할 수준은 아니라서 ㅋㅋ 얼릉 인디개발 시작하세요. ㅎㅎ

위에서 파라미터만 좀 조절하면 어떨까요?
1번 시간간격을 길게도 해보시고
2번 속도를 일정속도 대신 변화를 주는 것도 해보시고요.
잘 모르는 사람의 의견이었습니다 ㅎㅎ

의견주셔서 감사합니다. 앞으로 계속 조금씩 발전시켜 볼려고요. 물고기별로 파라미터값도 조금씩 변경해서 다른 움직임을 줘봐야 할것 같아요. ^^

넉근님 개발일지 꾸준해서 보기 좋습니다. 껄껄

저도 게을러서 걱정이에요. ㅎㅎ 코볼트님도 항상 파이팅하세요. ^^

그림을보니 동심으로 돌아간듯 재미있네요^^