GameDesign 板


LINE

小弟目前已在游戏产业工作二年 敝公司主要是用unity引擎来开发游戏 小弟的工作主要是写程式 为了把游戏的架构流程设计视觉化并且重复使用 我们使用一个model叫behavior tree 它其实有点类似state machine 并且有阶层的概念 因此它又叫hierarchical state machine 它最原先的目的是被用来设计AI character的行为 因此叫行为树 Halo这个游戏正是使用行为树来设计AI 这里有一个大陆人写的简介 http://blog.csdn.net/akara/article/details/6084786 目前市面上似乎有二到三个behavior tree library 的plugin 可以在unity store里面找到 我们自己当初是跟另一间小公司买他们的bt library 但他们的library并没有支援parallel node (这个部分应该是整个bt library最难实现的部分) 不知道板上有人也在用这个概念设计AI游戏吗? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 50.140.5.33
1F:推 cowbaying:要平行只能加个积分制的东西 08/19 13:19
2F:→ cowbaying:要平行只能加个积分制的东西node 设定事件积分 08/19 13:20
3F:→ cowbaying:一次执行所有node 08/19 13:20
没错,那是基本的概念 我的实现方式是使每个child node都用一条独立的thread来执行 一次执行所有node 然後记录所有child node的回传状态 再根据所有状态的总合来判断是否可以往上层回传结果(SUCCESS/FAILURE) 或是再要求新的执行来执行那些回传EXECUTING的node 如果整个tree中只有一层的parallel node 那实现起来并不困难 真正困难的是当整个tree中有"多层的parallel node" 并且每个child node都有三种回传结果 SUCCESS/FAILURE: 结果确定,不须再执行 EXECUTING: 要求再执行一次 这会使得parallel node 里的critical section设计变的相当复杂 因为在最底层的某一个node的执行thread可能穿越中间多层的parallel node 到上层某一个parallel node的critical section 如何设计不同的条件来对应每条thread随机进入critical section的顺序 是最困难的部分 ※ 编辑: developers 来自: 50.140.5.33 (08/19 23:43)
4F:推 littleshan:你需要的是「逻辑上的平行」而不是「时间上的平行」 08/20 14:19
5F:→ littleshan:可以考虑把 thread 改成 coroutine 08/20 14:19
6F:→ littleshan:这样就避开许多 race condition 造成的 bug 08/20 14:20
用coroutine的确是比较快的方法 而且在unity里,所有的Update function are getting called sequentially 即使我的行为树dll(用c++写成的dll当成plugin)是时间上的平行 最後指令传到unity里 全部都变sequential的东西 因为unity并不支援concurrency,也不是thread save 所以不管是用逻辑上的平行,或是时间上的平行……都没差 但我的想法是 写一个真正是时间上平行的行为树 以後可以支援那些有threading的引擎 但是也相对比较困难就是了 ※ 编辑: developers 来自: 76.108.235.49 (08/23 11:23)
7F:→ cowbaying:时间上真正要平行 首先机器要能够这麽做才行吧 08/23 19:40
目前市面上多核的处理器都有支援平行处理 时间上的平行早已经是主流 当cpu的极速到达瓶颈无法再上升时 就是往横向发展 ※ 编辑: developers 来自: 76.108.235.49 (08/30 10:34)
8F:→ cowbaying:那如果同时有100个事件要判断 你要几核的电脑? 08/30 12:01
9F:→ cowbaying:目前都还是以多执行绪为主 08/30 12:03
要开100条thread不是问题 thread数目的上限是受限於address space的大小 如果能够增加每条process里的address space 就能增加thread的数目 根据小弟之前实验的结果 在Windows7 intel i7 990 cpu 可用记忆体空间5G的电脑上 最多可以开到1411条thread 但小弟不知道如何修改address space 的大小 所以最多就是1411条 还请高人指点一下如何改address space 谢谢 ※ 编辑: developers 来自: 98.77.182.140 (08/31 21:00)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP