LIHKG [求助] 點先寫到 "似人" 既AI
b42b82 2021-4-2 22:14:40 小弟寫緊喪屍驚,
整緊敵人logic.
喪屍有4個state 有個Enum儲著.:
Idle, Chase, Attack, Die
本身唸著其實唔難.
:^(
.
if (喪屍見到我)
then 狗沖埋黎
if (在攻擊距離)
then 攻擊
但問題就黎.
一隻就無問題, 但多幾隻. 就變會得一隻沖埋黎 (正常應該係會吹雞沖埋黎? )
:^(

E.g.: 1,2,3喪屍是彈一隻望到我, 都會成群過黎.
:^(
.
但依家得3號喪屍沖埋黎.

咁跟著我就寫左個sphere trace, 一望到我就會吹雞吹晒d friend埋黎.
:^(

第二個問題又出現, 班喪屍唔識得"理性"地避開自己友.
:^(
.
好奇怪, 明明打喪屍, 變左派膠.
:^(


本身唸著加多隻喪屍. 玩過L4d2既 應該會知.
:^(

喪屍身上有野汁, 但打到佢一定血量 佢自己會跑走.
:^(
.
所以玩家好難汁到佢既物品.
:^(


完全想像唔到3A既Game.
E.g. Gears 5, Resident Evil.
AI 真係似"AI", 雖然係單機, 真係好似有人同你玩緊.
:^(
.
隊友又識搵cover, 幫主角加血, 提示主角.
敵人難度又唔會差太遠.

有無意見分享下.
:^(

Ads

b42b82 2021-4-2 22:44:28 你既方法係可行, 但實有易d既方法.
l4d 好似係行Behavior Tree.

:^(

咁岩搵到份L4d2 docs 講AI Systems.
又係講我遇到既問題.
:^(
無夢仁 2021-4-3 09:03:28 真係整game 冇人會用reinforcement learning, train 得黎改少少野又要由頭train 過
無夢仁 2021-4-3 09:08:18 巴打點set 喪屍條path? 係直線行埋黎定點? 感覺加啲randomness 好啲,例如唔同快慢,或者唔係直線行咁

人地AAA game 係有成條team 做AI 的,當然唔易la
:^(
:^(
霆鋒 2021-4-3 09:39:28 好多方法,我諗到可以加個reaction time,有人吹雞,吹雞嗰隻0秒reaction time就狗沖,被吹雞既就random等0至1秒先狗沖
硨漢 2021-4-3 09:41:24 巴打個名應該玩唔少CS
:^(
:^(
天滅支那國 2021-4-3 09:48:09 樓主好勁
:^(
xpq 2021-4-3 09:58:53 簡單d咪
if ( 碰撞到其他喪屍)then
if ( 自己距離主角是比較遠的那一隻)then
放慢速度

實際上如果要比較似人,要預先計晒d path,再準備各種唔同動作

Ps.我唔係programmer
:^(
飯其道而行之 2021-4-3 09:59:53 唔應該仿真
崠黁栾腏祢 2021-4-3 10:04:13 其實好多時所謂成條team都係得幾丁友
好多以前做落既遺產可以用返就真
準確D講係有底蘊

Ads

ApacheHelicopter 2021-4-3 11:25:27
:^(
:^(
奚落你為先 2021-4-3 11:37:32 可能只係你logic有問題, 有一隻變左attack其他就唔會check
奚落你為先 2021-4-3 11:38:59 你第一張圖其實得3先望到你?
奚落你為先 2021-4-3 11:40:50 你先試下1,2,3隔開好遠先, 睇下個logic啱唔啱
b42b82 2021-4-3 11:42:17 用A* 搵最近路線.
加左少少randomness.
例如: 望到我 而作出反應既時間. random float in range咁.
應該行過黎既時候
加少少random factor等佢唔好直走一條線行過黎.

:^(
b42b82 2021-4-3 11:50:10
:^(
比你發現tim.
其實果2把槍都係CS有既槍黎. m249同ump45水槍.
:^(
Ceylon 2021-4-3 11:52:08 望返上面份doc,佢地似係將每次移動既範圍set好一個range俾佢,然後再加合理既factor令佢地睇落fluidly
未俾老豆打過 2021-4-3 12:03:34 先 assume 你每隻喪屍有自己logic, 如果想一群喪屍追你, 有幾種 approach 可以用

Static:
如果啲喪屍係 set 死喺某個位置出現嘅,可以加個 group ID 嘅 attribute 俾喪屍,一但一隻喪屍 spot 到人,就 broadcast 嗰 event 出去俾同一個 group ID 嘅喪屍轉 chase

Dynamic:
如果喪屍係亂 spawn 嘅,你想一隻見到你就 “星呀星,接力” 咁 call 馬, 咁你可以 define 一個 range, 當一隻喪屍由 idle 轉 chase 時,就 broadcast 個 event 出去俾入 range 嘅喪屍,咁會一直 relay 出去

利申:見你用 sphere trace 你應該係用 Unreal? 我未用過唔知 UE 有咩做到有咩唔得
仲有 broadcast 未必係最好方法,performance 未必好,寫得唔好仲可能有 relay loop
椒鹽蝦米 2021-4-3 12:07:56 強帖留名
b42b82 2021-4-3 12:13:10 Yes.
:^(

Ads

奚落你為先 2021-4-3 12:24:40 睇落你好似好心急, 你整走晒A*, 整走晒obstacles, 直線work先慢慢加
硨漢 2021-4-3 13:27:36 你個bloodstrike 整成點 我人生有過2百個鐘玩呢個場
:^(
b42b82 2021-4-3 14:16:48 Valve整既敵人AI都好癲
特別係Half Life 系列.
:^(

https://youtu.be/1tvz0WVaQGg
阿飛正傳 2021-4-3 14:35:02 樓主好叻
:^(