下载 App

让你的AI像总监一样调度——架构解耦思路

05/2232 浏览开发交流
比如你雇了一个保姆 同时买菜 洗衣服和做饭 当这个保姆在买菜的时候 发生了意外 那他同时也完不成洗衣服和做饭的任务 但是只要你多雇几个保姆 就算他不能买菜 但是洗衣服和做饭的事情也可以保证进行 在代码中也是同理 解耦的思想避免了牵一发而动全身 避免你在更新你的游戏时修改了一个功能 导致别的功能都不能用了
那么 如何做出一个解耦的系统呢
1.把决策层和操作层分开 设计一个系统 作为这个功能的总监 当玩家在玩游戏时 它只负责调度 根据玩家的操作下发对应的指令 而把对应的功能实现交给操作层 这大大增强了指令的灵活性 创作者可以根据自己的内容 调整指令触发的先后顺序(如当你在采矿时进入战斗 决策层可以直接停止下发播放采矿音效的指令) 而操作层只用考虑操作的执行 根据决策层的指令执行功能 避免了代码冗余 方便管理项目和添加内容
2. 用事件机制替代直接调用,让模块间只“听广播”不“点名字”
还是那个保姆的例子。如果你雇了买菜保姆、洗衣保姆、做饭保姆,但你让总监挨个去拍肩膀吩咐:“你去买菜,你去洗衣,你去做饭”,那一旦洗衣保姆请假,总监的指令链条就会断掉,甚至可能一直在那儿傻等。
更解耦的做法是:在屋子里挂一个大喇叭(事件系统)。总监只负责根据玩家操作,对着喇叭喊:“开始做饭了”“进入战斗了”“停止采矿音效”。至于谁响应、怎么响应,总监完全不用知道。做饭保姆听到“开始做饭”就自动开工,音效模块听到“进入战斗”就把采矿声关掉。
这样做的好处是,哪天你想新增一个“洗碗保姆”,完全不用改动总监和现有保姆的代码,只要让她也去听喇叭,对“吃完饭”这个事件做出反应就行了。在游戏开发里,就是多用事件总线或消息队列,让功能之间靠事件通信,而不是靠硬编码互相调用。这样一来,更新游戏时增加新功能,几乎不会踩到旧功能的脚。
3. 面向接口编程,把每个模块做成“可替换的零件”
如果第1点是纵向分层,第2点是横向广播,那么第3点就是保证每一层内部的每个“操作工”都能随时被替换、升级而不影响整体。
回到保姆的例子:你可以和买菜保姆约定一个标准动作——“只要给你钱和清单,你就得把菜买回来”。这个约定就是接口。以后你觉得这个保姆买菜太慢,想换一个腿脚快的,只要新保姆也遵守这个约定,总监就不用改任何话术,其他保姆也不会觉得有变化。
在代码里,这意味着把操作层的功能拆成一个个遵循单一职责的小服务,比如 IMineService、ICombatService、ISoundService,每个服务只专心做好一件事。决策层只依赖这些接口发指令,而不依赖具体的实现类。当你觉得挖矿逻辑写得不好,只需重写一个实现了 IMineService 的类替换进去,其他模块完全不受影响。
配合依赖注入容器,整个项目就会像乐高积木一样:零件标准化,组装自动化,修改隔离化。你想调整采矿时进入战斗的触发逻辑,只需要考虑“总监什么时候喊停”,而不用在采矿代码里塞一堆战斗判断,真正避免了牵一发而动全身。
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
68 赞
21 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
123 赞
44 回复
AI游戏剧情篇——如何让AI精准设定角色的三维?(8)截图
AI游戏剧情篇——如何让AI精准设定角色的三维?(8)
AI能在一分钟内为你生成一百个角色设定。名字、年龄、身高、喜好、背景故事,整整齐齐地罗列在表格里。 但玩家一眼就能嗅出那股“AI味”。因为这些角色像是从同一个模具里脱出来的:他们被赋予了过去,却没有被赋予重量;他们拥有标签,却没有拥有灵魂。 问题出在哪里?出在你把“人物设定”当成了填空题,而AI恰好是填空题的高手。但真正的人物塑造,是一道论述题——它要求你回答的不是“这个角色身上发生过什么”,而是
4 赞
1 回复
2D 等轴测视角:完整理论截图
2D 等轴测视角:完整理论
2D 等轴测视角:完整理论 一、视角的本质 什么是等轴测 人站在高处斜着往下看地面,地面上的方格子不再是正方形,而变成了菱形。这就是等轴测的视觉本质。 俯视(正上方看下去): 等轴测(斜上方看下去): ┌──┬──┬──┐ ◇ ├──┼──┼──┤ ◇ ◇ ├──┼──┼──┤ ◇ ◇ ◇ └──┴──┴──┘ ◇ ◇ ◇ 正方形网格经过旋转 + 压缩,变成了菱形网格。 为什么是 2:1
6 赞
开发心得-界面布局心得截图
开发心得-界面布局心得
大家好,我正在用 TapTap 制造制作一款2D 治愈林间徒步旅行游戏《徒步荒野》。 我分享一下我的开发心得,希望能有用,下面是一些界面布局的心得。 第一步:定版式、操作 先确定游戏是横版还是竖版、需要哪些操作按钮,敲定整体玩法思路。 我的玩法灵感参考《边境之旅》,主打散步看风景、沿途触发随机事件。 原版是 3D,考虑到自己是新手,选择2D 横版街机式来做,制作更简单、好上手。 第二步:敲定全局美
6 赞
3 回复
01:27
《大二暑假,我用AI做了一款属于自己的游戏》截图
《大二暑假,我用AI做了一款属于自己的游戏》
本人自制游戏现已加入taptap封闭测试(仅适配安卓机型)欢迎大家前来尝试(八月十号可以正式开始游玩) 如果有建议或者bug反馈可以加入qq群928501443 #发现好游戏 #游戏日常 #浅评一下 #今天游戏圈发生了啥
3 赞
03:06
为了不被斩杀,我只能做到这些了截图
为了不被斩杀,我只能做到这些了
之前一直申请不到计划3,之前说太花哨,后面说体量完成度不足,在我一番小作文下,编辑终于给了我解答,什么原生质感,玩家开局体验啥的。 本来计划2也够用,准备以后再优化了,结果计划2赠送的积分要砍半了,学生党实在消费不起,于是只能再冲一波计划3了 从周六中午到现在一天半时间,优化了一遍角色卡,战斗卡,还有抽卡界面,优化了新手教程,该说不说确实比之前要舒服些。 前半部分为新版,后半部分为旧版。 明天再次
36 赞
6 回复
如何让你的“AI游戏”,抄得比原作更有灵魂?(7)截图
如何让你的“AI游戏”,抄得比原作更有灵魂?(7)
你有没有过这样的瞬间:你拆解了一款神作的核心玩法,兴奋地让AI帮你复刻了一套。逻辑跑通了,UI也套上去了。但你把自己做出来的Demo和原作放在一起——原作让你通宵达旦,你的Demo让你自己都玩不下去十分钟。 这不是AI的错。AI是分毫不差的抄写员,但它不知道原作里哪一笔是灵魂,哪一笔是凑数。 个人做AI游戏,如果不参考自己玩过的游戏、看过的小说,那几乎是不可能的。游戏行业发展至今,每一步创新都踩在
8 赞
1 回复
「游戏上新」秦王的游戏截图
「游戏上新」秦王的游戏
你是秦王嬴政身边的廷臣。 方士徐福献上一匣【帝王卡牌】,四张凶牌封死命运: 屠戮|淫欲|奢华|征伐 七日死限,必须一一折断卡牌对应的欲望任务。 办不成? 秦王殿上长剑出鞘,君臣性命,顷刻倾覆。 ⚔游戏核心玩法 ▪回合卡牌策略,抉择牵动秦廷朝堂势力 ▪朝堂派系博弈:王权、法家、军功贵族、方士暗流角力 ▪多重结局:功成辅秦王一统,或是任务失败血染咸阳宫 ▪随机事件触发,每一局嬴政的猜忌程度截然
4 赞
2 回复
【游戏上新】——宅男打丧尸截图
【游戏上新】——宅男打丧尸
这是一款横向俯视角射击生存游戏,主打"轻松上手、越玩越爽"的爽快体验。游戏目前已包含: 四种核心模式:挑战、防守、生存、无尽,满足不同玩家口味 多种枪械,从手枪到重型火力,打出自己的风格 地雷,手雷,枪架多种不同军火自由选择,给敌人造成最大伤害 完整的成长体系:角色等级、军火系统、被动技能,越肝越强 丰富的敌人设计:普通丧尸到多种 Boss,战斗层次感明显 未来会制作更多不同的角色,天赋,军火,玩
4 赞
12 回复