GameDesign 板


LINE

※ 引述《NDark (溺於黑暗)》之铭言: 十年前我写了关於 Event 事件系统的文章. 十年过去其实我经历过很多专案,发现了越来越多的反例(Anti-Pattern, 使用了事件系统专案的开发者却无法驾驭,发现了问题无法除错解决的情况). 简单来讲,事件系统的目的是把混沌整理为有序. 但在某些情形下也有机会产生更多的陷阱. 专案使用了事件系统, 但没有配套系统(或是团队文化)的事件系统仍然会受到执行顺序的困扰. (这边讲的配套系统是负责显示记录的系统, 能够即时或事後检查游戏过程中发生了甚麽事. 团队文化指得是团队中是否有遇到问题能够细心检查的成员及工作环境) 在系统及设计还未进入稳定态的(新案) 或是在旧案装上新系统(尤其是演出,如跑马灯,弹出介面)特别容易发生这个问题. 以Unity来说.这个问题就是因为各脚本执行是有顺序的(即便没有设定脚本的执行顺序) .Update() 都是一个一个脚本依序执行. 那麽同一个画格送进事件系统也就有了顺序.那麽陷阱就来自於 1.有时候我们希望A的执行顺序要高於B.而有时候又希望B的顺序高於A. 2.事件的结果发动有时候需要时间(尤其是动画/Coroutine),事件发动下去又继续 会有顺序的问题. 举例来说: A脚本中总共写了A1 A2两个事件. B脚本中总共写了B1 B2两个事件. 在某个运作中A1 B1会同一个画格发动. 另一个运作中A2 B2会同一个画格发动.(假设A的执行顺序快过B) 规格刚开始实作时A1->B1 的顺序是对的, 但过了一阵子实作另一个系统时却又希望 B2 -> A2 这样的顺序.这时候就会出现冲突. 没有一个配套系统很难发现问题在哪里. 第二最简单的修理方式就是把B调整为比A快. 这样就会反过来让A1->B1(或更多的类似流程)这条坏掉. 次简单的方式就是让A2去等B2.这可以临时解决问题. 但是要祈祷未来不要再对这个规格做修改. 这个问题的复杂度会随着 事件数(事件类别的种类及包含产生的结果)x系统数 (通常是专案内被命名为Manager的类别) 而以乘法线性而更复杂.也就是越复杂的专案,这个连锁效应就越大. 不会感觉到这个问题,最有可能的情形是: 专案已经稳定了,系统不变只是扩充游戏内容的专案.(通常是续作); 或是专案就不够大或久到会有这个问题. blog连结: https://ndark.wordpress.com/2021/06/25/%e4%ba%8b%e4%bb%b6%e7%b3%bb%e7%b5%b1%e7%9a%84anti-pattern/ -- "May the Balance be with U"(愿平衡与你同在) 游戏设计教学,讨论,分享。欢迎来信。 黑水沟历史文库 https://ndark.wordpress.com/ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.129.48.101 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1624619586.A.119.html
1F:推 wulouise: 一个脚本只有一个事件会有什麽问题吗? 06/26 14:07
2F:→ NDark: 不太懂楼上的问题. 意思是把所有事件都分脚本写? 06/26 15:15
3F:→ NDark: 全分开就属於不管理的方式. 06/26 15:16
4F:→ NDark: 不管理.就是是事件运作满天飞. 一样会有顺序的问题. 06/26 15:16
5F:→ NDark: A脚本等B脚本 B脚本等C脚本 然後C脚本发现又要等A脚本. 06/26 15:17
6F:→ NDark: 就死结了. 06/26 15:17
7F:→ NDark: 事件系统的初衷就是 至少有一个统一入口. 06/26 15:17
8F:→ NDark: 然後後续怎麽运作.就要看事件管理系统怎麽设计. 06/26 15:18
9F:→ NDark: 譬如说当甚麽介面显示的时候,甚麽事件不要触发,延迟触发. 06/26 15:18
10F:→ NDark: 因为是单一系统.所以才有办法接报表(Log)系统. 06/26 15:19
11F:→ NDark: 分脚本的方式Log系统会更难写. 06/26 15:19
12F:推 wulouise: 啊没看清楚,我原本以为AB只有event, 其实是有包逻辑 06/26 16:07







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灯, 水草

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

TOP