Your SlideShare is downloading. ×
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Programming game ai
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Programming game ai

1,103

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,103
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programming Game AIby Example
    8. 실질적인 길 계획하기
    아키텍트를 꿈꾸는 사람들(http://cafe.naver.com/architect1)
    최기원 (dagri82@gmail.com)
  • 2. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 3. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 4. 타일 기반 그래프
    셀, 사각형, 육각형
    RTS에서 많이 사용
    노드: 각 타일의 중심
    에지: 인접한 타일과의 연결
    지형의 특성에 따라 각 에지에 비용 부여
    단점: 탐색 공간이 쉽게 커짐
    예) 100x100 셀 맵의 경우, 10,000개의 노드와 약 78,000개의 에지로 구성 + 수십 ~ 수백게의 AI 유닛
  • 5. 가시점(PoV) 내비게이션 그래프
    수작업으로 주요 지점에 노드 배치
    각 노드는 적어도 하나의 다른 노드에 시선을 갖도록
    특정 정보를 제공하는 노드 추가 용이
    큰 맵의 경우 각 노드 위치 조정이 어려움
    임의의 맵 생성이 어려움
    자동으로 POV 그래프 생성하기 위한 알고리즘/툴 필요
     무작위 맵 생성 방법을 제공하지 않는 게임들존재
    확장 지형기술로 해결
  • 6. 가시점 내비게이션 그래프
  • 7. 확장 지형 (expanded geometry)
    다각형으로 구축된 지형을 에이전트의 반경만큼 확장
    확장 지형의 꼭지점을 노드로 그래프에 추가
    각 꼭지점 사이의 시선 시험  에지 추가
  • 8. NavMesh
    3D FPS 게임에서 활용
    볼록(convex) 다각형으로 맵 구성
  • 9. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 10. 정교하게 과립화된(Finely Grained) 그래프
    잘못된 경로 및 접근 할 수 없는 문제들 해결
    자동으로 노드 생성, 밀물 채우기 알고리즘(flood fill algorithm)
  • 11. 밀물 채우기 알고리즘(flood fill algorithm)
  • 12. Raven 내비게이션 그래프
    접근 질의의 속도를 향상시키기 위해서 공간 분할 사용하기
    노드 검색 성능: 노드의 수가 2배가 되면 시간은 4배로
    셀 공간 분리, BSP 트리, quad 트리와 같은 공간 분할 사용
  • 13. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 14. Bot의 행동에 관한 정보 저장노드 경로 vs에지 경로
    f
    h
    c
    B
    A
    g
    d
    e
  • 15. Bot의 행동에 관한 정보 저장노드 경로 vs에지 경로
    f
    h
    c
    B
    A
    g
    d
    e
  • 16. Bot의 행동에 관한 정보 저장노드 경로 vs에지 경로
    f
    h
    c
    B
    A
    g
    d
    e
  • 17. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 18. Raven 경로 계획자
    Raven_PathPlanner
    필요한 기능
    특정 위치까지의 경로 계획
    다수의 목표 중 가장 가까운 경로 계획
    Bot
    PathPlanner
  • 19. 특정 위치까지의 경로 계획
  • 20. 다수의 목표 중 가장 가까운 경로 계획
  • 21.
  • 22. 다수의 목표 중 가장 가까운 경로 계획
  • 23. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 24. 경로 부드럽게 하기
  • 25. 경로 부드럽게 하기
  • 26. 경로 부드럽게 하기
    B
    C
    C
    A
    A
    A에서 C의 경로에 방해하는 장애물이 없으므로 두 에지는 하나로 교체될 수 있다.
    B
    B
    C
    C
    A
    A
    경로 상에 장애물이 있으므로 두 에지 모두 필요하다.
  • 27. E2
    시작
    E1

  • 28. E2
    시작
    E1

  • 29. E2
    시작
    E1

  • 30. E2
    시작
    E1

  • 31. 시작

    E2
    E1
  • 32. 시작

    E2
    E1
  • 33. 시작

    E1
    E2
  • 34. 시작

    E1
    E2
  • 35. 시작

  • 36.
  • 37. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 38. 최적화,경로 계산
  • 39. 최적화,비용 계산
  • 40. 시간별 경로 계획
    • Dijkstra, A* 알고리즘을 한꺼번에 수행하지 않고여러 단계에 걸쳐서 수행
  • 41. 계층적 경로 찾기
  • 42. 내비게이션 그래프 구축
    Raven 내비게이션 그래프
    노드 경로 VS 에지 경로
    경로 계획자
    경로 부드럽게 하기
    최적화
    난처한 상황에서 빠져 나오기
  • 43. 난처한 상황에서 빠져 나오기
  • 44. 난처한 상황에서 빠져 나오기
    해결 방법
    매 갱신 단계마다 현재 경유점 까지의 거리 계산
    거리가 같거나 지속적으로 증가한다면 다시 계획
    각 경유점에 대한 예상 도착 시간 계산
    예상 시간을 초과하면 다시 계획

×