μ§€νœ˜ μ‹œμŠ€ν…œ 거의 μž¬μ„€κ³„ λλ‚¬μŒ.


νœ˜ν•˜ μœ λ‹›μ€ 곡격, 이동, 도주, λ§ˆλ²• λ“±μ˜ 행동 쀑 일뢀λ₯Ό κ°€μ§ˆ 수 있음.


근데 λ§ˆλ²•κ³Ό 곡격은 각 μœ λ‹›λ§ˆλ‹€ λͺ¨λ‘ λ‹€λ₯Έ μ„±λŠ₯을 가짐


μ§€νœ˜μœ λ‹›μ΄ νœ˜ν•˜ μœ λ‹›μ΄ μ–΄λ–€ 행동을 κ°€μ§€κ³  μžˆλŠ”μ§€, 또 각 행동은 μ–΄λ–€ 효과λ₯Ό κ°€μ§€κ³  μžˆλŠ”μ§€λ₯Ό μ•Œμ•„μ•Ό 함.

그리고 ν˜„μž¬ μ „νˆ¬μƒν™©μ„ νŒλ‹¨ν•΄μ„œ 각 μœ λ‹›μ˜ λ‹€μŒ 행동 λŒ€μƒ + λ‹€μŒ 행동 μ’…λ₯˜λ₯Ό μ§€μ •ν•΄μ€˜μ•Ό 함.


이걸 μœ„ν•΄ 이동과 κ΄€λ ¨λ˜μ§€ μ•Šμ€ 행동(곡격, λ§ˆλ²• λ“±)의 속성을 κ°€μ§€λŠ” struct ActionDataλΌλŠ” ꡬ쑰체λ₯Ό λ§Œλ“€μ—ˆμŒ.


각 μœ λ‹›μ€ 각 μœ λ‹›λ§Œμ˜ 곡격/λ§ˆλ²•μ„ κ°€μ§€κ³ , κ·Έ ν–‰λ™μ˜ 속성듀을 List<ActionData>에 κ°€μ§€κ³  있음.

이걸 μ§€νœ˜μœ λ‹›μ΄ μ°Έμ‘°ν•΄μ„œ ν˜„μž¬ 상황에 μ μ ˆν•œ 행동과 λŒ€μƒμ„ 지정함.


μœ λ‹›AIλŠ” 크게 두 κ°€μ§€ λΆ€λΆ„μœΌλ‘œ ꡬ성됨.

1. 행동-λŒ€μƒ κ²°μ •νŠΈλ¦¬ : λ‹€μŒ ν–‰λ™μ˜ μ’…λ₯˜ + 행동 λŒ€μƒ κ²°μ •

2. ν–‰λ™νŠΈλ¦¬ : κ²°μ •λœ 행동-λŒ€μƒμ„ λ°”νƒ•μœΌλ‘œ μ •ν•΄μ§„ λ°©μ‹μœΌλ‘œ 행동함.(κ³΅κ²©λŒ€μƒμ΄ μ£Όμ–΄μ§„λ‹€λ©΄ μœ λ‹›AλŠ” κ°€κΉŒμ΄ λ‹€κ°€κ°€ κ³΅κ²©ν•˜κ³ , μœ λ‹›BλŠ” λ©€λ¦¬μ„œ ν™œμ„ μ˜λŠ” λ“±, μœ λ‹›λ§ˆλ‹€ 행동-λŒ€μƒμ— λ”°λ₯Έ 행동 μžμ²΄λŠ” 닀름.)


이둜 μΈν•΄μ„œ μ§€νœ˜κ°œμ²΄κ°€ νœ˜ν•˜ μœ λ‹›μ˜ 행동-λŒ€μƒλ§Œ μ§€μ •ν•΄μ£Όλ©΄, λ‚˜λ¨Έμ§€ 행동은 μœ λ‹› 자체적으둜 μˆ˜ν–‰ν•˜λŠ” 방식.


μ§€νœ˜μœ λ‹›μ΄ μ „νˆ¬μƒν™©μ„ νŒλ‹¨ν•˜λŠ” 방식은, μš°μ„ μˆœμœ„λ₯Ό κ°€μ§„ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μŒ“λŠ” λ°©μ‹μœΌλ‘œ 일단 μƒκ°μ€‘μž„.

예λ₯Ό λ“€λ©΄


1. ν•΄λ‹Ή μ§€νœ˜μœ λ‹›μ΄ κ³΅κ²©λ°›μŒ

: νœ˜ν•˜ μœ λ‹› 쀑 쑰건에 λ§žλŠ” 일뢀λ₯Ό μ§€νœ˜μœ λ‹›μ„ ν˜Έμœ„ν•˜λ„λ‘ 함

2. 적 μœ λ‹› 쀑 μ§€νœ˜μœ λ‹›μ΄ 있음

: νœ˜ν•˜ μœ λ‹› 쀑 쑰건에 λ§žλŠ” 일뢀λ₯Ό μ§€νœ˜μœ λ‹›μ„ κ³΅κ²©ν•˜λ„λ‘ 함

...


이런 μ‹μœΌλ‘œ μƒμœ„ μ‹œλ‚˜λ¦¬μ˜€λΆ€ν„° μ²΄ν¬ν•˜λ©΄μ„œ, n개의 νœ˜ν•˜ μœ λ‹›μ΄ μžˆλ‹€λ©΄ μ‘°κΈˆμ”© λ‹€μŒ 행동을 μ§€μ •ν•΄μ£ΌλŠ” 방식.

λ§ˆμ§€λ§‰ μ‹œλ‚˜λ¦¬μ˜€ 체크가 λλ‚¬λŠ”λ°λ„ 행동을 λ°°μ •λ°›μ§€ λͺ»ν•œ μœ λ‹›λ“€μ€ μœ λ‹› 자체적인 행동-λŒ€μƒ κ²°μ •νŠΈλ¦¬λ₯Ό 톡해 λ‹€μŒ 행동을 결정함.


μ΄λ ‡κ²Œ ν•¨μœΌλ‘œμ¨ νœ˜ν•˜μ˜ λͺ¨λ“  μœ λ‹›μ΄ μ μ ˆν•œ λ‹€μŒ 행동과 λŒ€μƒμ„ κ°€μ§ˆ 수 있게 함.


이제 바뀐 섀계에 맞게 μ½”λ“œ λœ―μ–΄κ³ μΉ˜κ³  μƒˆλ‘œ μ“°κ³  λ‚˜λ©΄ 일지 μ“Έ 수 μžˆμ„λ“―

λ°”μ΄λΈŒ