[求助] 點先寫到 "似人" 既AI

b42b82

48 回覆
42 Like 5 Dislike
b42b82 2021-04-02 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, 幫主角加血, 提示主角.
敵人難度又唔會差太遠.

有無意見分享下.
b42b82 2021-04-02 22:44:28
你既方法係可行, 但實有易d既方法.
l4d 好似係行Behavior Tree.


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

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

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

Ps.我唔係programmer
飯其道而行之 2021-04-03 09:59:53
唔應該仿真
崠黁栾腏祢 2021-04-03 10:04:13
其實好多時所謂成條team都係得幾丁友
好多以前做落既遺產可以用返就真
準確D講係有底蘊
ApacheHelicopter 2021-04-03 11:25:27
奚落你為先 2021-04-03 11:37:32
可能只係你logic有問題, 有一隻變左attack其他就唔會check
奚落你為先 2021-04-03 11:38:59
你第一張圖其實得3先望到你?
奚落你為先 2021-04-03 11:40:50
你先試下1,2,3隔開好遠先, 睇下個logic啱唔啱
b42b82 2021-04-03 11:42:17
用A* 搵最近路線.
加左少少randomness.
例如: 望到我 而作出反應既時間. random float in range咁.
應該行過黎既時候
加少少random factor等佢唔好直走一條線行過黎.

b42b82 2021-04-03 11:50:10
比你發現tim.
其實果2把槍都係CS有既槍黎. m249同ump45水槍.
Ceylon 2021-04-03 11:52:08
望返上面份doc,佢地似係將每次移動既範圍set好一個range俾佢,然後再加合理既factor令佢地睇落fluidly
未俾老豆打過 2021-04-03 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-04-03 12:07:56
強帖留名
b42b82 2021-04-03 12:13:10
Yes.
奚落你為先 2021-04-03 12:24:40
睇落你好似好心急, 你整走晒A*, 整走晒obstacles, 直線work先慢慢加
硨漢 2021-04-03 13:27:36
你個bloodstrike 整成點 我人生有過2百個鐘玩呢個場
b42b82 2021-04-03 14:16:48
Valve整既敵人AI都好癲
特別係Half Life 系列.
https://youtu.be/1tvz0WVaQGg
阿飛正傳 2021-04-03 14:35:02
樓主好叻
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞