AI 행동을 경주하는 패턴


9

스플라인 기반 레이싱 AI가 있다고 가정 해 봅시다. 트랙 주위의 제동 및 조향의 기본 사항을 이미 처리 할 수 ​​있다고 가정합니다.

충돌 방지, 추월, 제도, 차단 및 기타 행동을 어떻게 구성하고 구현하여 자동차의 경쟁력을 유지하면서 재미있는 경주를 할 수 있습니까?

논문 / 구현에 대한 링크는 대단 할 것입니다.


어떤 종류의 엔진을 사용하고
있습니까?

답변:


7

자율적 인 캐릭터의 조향 동작을 보셨습니까 ? 나는 트랙에 머무르고 충돌을 피하기 위해 " CrowdPathFollowing" 알고리즘을 고려할 것 입니다. 드 래프팅, 패스 및 블로킹을 위해 "Flow Field Follow " 동작 을 혼합 할 수 있습니다 . 플로우 필드가 플레이어의 과거 및 예상 경로를 따르지만 현재 위치를 따라 분할됩니다.

      /-------------\
 ----<  [playerCar]  >-----
      \-------------/

이로 인해 AI가 그 뒤를 직접 따르고 바로 앞쪽으로 이동하는 경향이 있지만 깨끗한 패스를 장려해야합니다.


1
나는 boids를 알고 있지만 좋은 참조입니다. 튜닝하기에는 너무 복잡한 방식으로 상호 작용하고 가끔 우연히 충돌하는 경우가 많습니다. 이것은 보행자에게는 좋지만 계속 움직여야하는 자동차 경주에는 치명적입니다.
tenpn

이 많은 것들을 구현하는 OpenSteer API로 작업했습니다. 튜닝하기가 매우 쉽다는 것을 알았습니다. 귀하의 경우 "SteerToAvoidCollision"무게를 매우 높게 만들 것입니다. 나는 당신이 어떤 차량을 경주하는지 모르지만, 만약 당신이 대부분의 경우에 맞다면 에지 케이스로 인해 남은 우연한 충돌이나 배쉬는 아마도 매우 현실적이라고 생각합니다 ....
AShelly

그 스티어링 차량이나 다른 것입니까? 왼쪽에 2 대의 차량이 있고 오른쪽에 1 개의 차량이있는 등의 문제를 일으키는 상황이 두렵습니다. 평균 벡터는 오른쪽 차량과 접촉 할 수 있지만 오른쪽으로 이동합니다.
tenpn

나는 주로 보행자와 함께 일하고 있었기 때문에 맹세 할 수는 없습니다. 기억해야 할 한 가지는 동작의 혼합 일 필요는 없다는 것입니다. 계층 구조 일 수 있습니다. 따라서 충돌 방지가 다른 무엇보다 우선 순위를 갖도록 할 수 있습니다. 이 경우 예측 된 경로가 오른쪽 자동차의 경로와 교차 할 때까지만 자동차가 올바르게 진행되며, 이때 콜리 전이 가장 큰 힘이되는 것을 피하십시오. 특수한 조건을 추가 할 수도 있습니다. 예를 들어 N 프레임에 안전한 경로가 없으면 하드 제동을 추가하십시오.
AShelly

2

올해 파리에서 열린 AI Game Dev 컨퍼런스에서 이에 관한 세션이있었습니다. 여기에서 슬라이드와 요약을 찾을 수 있습니다.

http://aigamedev.com/open/coverage/paris10-report/#session9


1
ppt로 연결되는 링크는 404입니다.> _ <
tenpn


ta-그의 접근 방식은 흥미롭지 만 현재 작업중 인 코드는 실제로 더 고급입니다!
tenpn

1

안티 패턴 : 속도를 조절하는 반대자들

불행히도 나는 당신에게 패턴을 줄 수는 없지만 안티 패턴의 이름을 지정하고 싶습니다. AI 드라이버의 속도를 인간 플레이어의 속도에 맞추려고하지 마십시오. 이에 대한 아이디어는 아마추어뿐만 아니라 전문가를위한 공정한 경주 조건을 만들고 여러 난이도 수준 (및 구현)의 필요성을 포기하는 것입니다.

그러나 종이에 좋은 소리는 실제로 끔찍한 것으로 판명되었으며 MotoGP 시리즈 는이 동작을 구현하는 데 비참하게 실패했습니다. 당신이 몇 초 동안 여전히 서있을 때 5mp / h로 운전하는 상대와 게임에서 개선했는지 여부를 알 수없는 결과로 끝났습니다 (매우 나쁜 피드백)


감사. 균형이나 난이도보다는 흥미로운 경주 행동에 대해 구체적으로 이야기하고 있지만,이를 염두에 두겠습니다.
tenpn

5
거의 모든 레이싱 게임에는 플레이어를 행동으로 유지하거나 AI를 좋은 플레이어와 가깝게 유지하기 위해 고무 밴딩 형태가 포함됩니다. 요령은 미묘하고 언제 꺼야 하는지를 아는 것입니다. 플레이어가 속임을 느끼면
wkerslake

MotoGP 상황은 일반적으로 고무 밴딩 문제가 아니라 너무 멀리 가져가는 문제처럼 들립니다. 앞쪽의 운전자가 더 많은주의를 기울여 운전하고 뒤쪽의 자동차가 격차를 줄이기 위해 필사적으로 노력하는 것은 불합리하지 않으며, 그렇게 모델링하고 플레이어에게 투명하게 제시하는 것이 가치 있다고 생각합니다.
Jibb Smart

이것은 주제에 대한 흥미로운 게시물입니다 : gamasutra.com/view/feature/3920/… 기본적으로 그들은 3 개의 AI 레이서 그룹에 참여하게되며 레이스 도중 그룹에서 그룹으로 발전하게합니다.
Felsir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.