下载 App

《有点不一样的自走棋》开发日志2

修改于10/2016 浏览综合
上一篇减的是系统,这一篇减的是代码结构。行为系统原来是一个机制一个类,现在拆成动词、词条、行为、棋子四层。下面记的是这次怎么拆的,以及有序行为列表、Buff 即行为、连击独立判定、涌现式组合、行为预演这几件事是怎么保下来的。
  1. 删掉的和换掉的 端游那套行为是用类继承堆起来的:一个攻击基类,派生出普攻、突进、横扫,特殊棋子再各挂一套脚本。机制一多就出问题——每加一个"攻击之后再做点什么",就得新开一个类;数值写死在代码里;每枚棋子还要一套自己的选敌脚本;Buff 又是另一套并行系统。跑到最后,谁也说不清一个增益归谁管、什么时候消失。
手游的棋盘只剩 3×6,机制只增不减,活动期还卡着。照继承那套写法,一定做不完。于是有了下面这些删改:
类继承 → 四层职责:动词管能力,写在代码里;词条管数值,就是一串整数;行为管卡面,是一份配方;棋子管顺序,是一张有序列表。
复杂权重索敌 → 默认射程内随机:小棋盘上大家都挤在一起,站位本身就是最直接的决策,权重系统只剩工作量。
Nearest 这条目标规则 → 删掉:老配置统一迁成 Random,不留静默兜底。移动行为里的"走向最近的敌人"是另一条寻路逻辑,不属于索敌,不跟着删。
控制优先区 → 删掉:冻结不再是什么特殊状态机,它只是被 ApplyControl 塞到主动列表最前面的一个"等一轮"。好处很直接——别的行为也能手动插到冻结前面,于是有了"不解除冻结的临时解控"。
独立 Buff 系统 → Buff 即行为:持续的正面效果、负面效果、周期状态、限时的攻击偏好,全用 Buff 行为实例来装。它有类型、有名字、有图标,知道绑在谁身上、当前是多少、谁给的、能不能叠、几轮后消失。
每枚棋子一套脚本 → 公共索敌:先按阵营、存活、射程筛出合法目标,再按规则挑一个。动词只管接住挑好的结果,不再为每种棋子写选敌代码。
2. 四层职责,和一条不能越的线 层 管什么 例子 动词 通用执行能力,一共 23 个 造成伤害、移动、插入行为、修改数值 词条 整数数值,一共 25 个 伤害 3、射程 1、持续 2 轮 行为 一份配方:哪几步、什么数值、什么条件、打谁、叫什么、长什么样 抓:射程 1、伤害 3、随机挑一个敌人 棋子 属性,外加两条有序列表 顺序即性格 有一条线写进了契约:改数值不加动词。火球伤害从 3 调到 5,改词条就行;"打完把目标拽过来"这种新组合,也只是把现有动词重新排一遍。
顺手记一个坑:有伤害步骤不等于就是攻击。中毒也掉血,但它没有攻击标签。所以判断一个行为算不算攻击,看标签,不看它有没有伤害步骤。
23 个动词、25 个词条,撑起 80 个主动加 69 个被动共 149 份配方,够 第一版90 枚棋子用。配方不绑棋子——同一个"抓",装在慢盾身上是补刀,装在快刺客身上是收割。行为 ID 固定,展示名单独维护,改文案不用动存档。
  1. 有序行为列表:棋子的"程序" 排第一的说了算:每次只执行第一个条件成立的行为。顺序即性格。 连击每次重新判:击杀后插进来的额外行动,轮到它时还是从列表开头匹配——可能还是攻击,也可能已经变成移动。 匹配不上不花机会:筛不到合法目标就接着看下一项。但行为一旦正式开始,后面的步骤失败也不返还机会、不退回重选。 被动按实例记进度:不用会变的数组下标,改记"这个阶段处理到哪个实例"。已经走过的地方往前面插进来的不补跑,后面还没走到的能赶上。百家之学那种复制被动的配方,靠"下一轮才生效"这条明规则避开"同一阶段里自己复制自己"的死循环,而不是偷偷加一句"每轮只能触发一次"。 预演和实际是同一套:随机结果在动手前就定好,预演不改状态、不重新随机。玩家在界面上看到的步骤和数值,就是真正会发生的。一次执行里的多个步骤只算一次触发,靠执行 ID 区分。
  2. Buff 即行为,以及后来补上的"结果 Buff"一层 第一版把 Buff 并进行为体系时,还留着老习惯的影子:技能负责发数值,系统在背后默默记账。跑几轮就出事——修饰散落在各个执行器里,说不清该归谁清理、能不能被净化、界面上该显示成什么。
后来收了一次口:谁发的修饰@###,就归哪个 Buff 实例管。普通技能在该出手的时机授予或更新一个"结果 Buff",提交时只登记数值本身;这个结果不参加被动结算,也不会重复加一遍。纯伤害、治疗、位移、队列操作,以及只算这一次的攻击公式,当场结清,不留结果——"看法宝"每发都重新读遗物数,不会把数量写成永久成长。
这一层顺手解决了"攻击力"这个老问题:棋子没有独立攻击力,所有增减都挂在具体的行为实例上。所以加成打哪儿必须写明——第一个攻击、严格第一个、本次全部攻击、主动加被动的全部攻击、全部抓、本行为、棋子属性,各是各的规则,不能混着用。"淬火"绑的是严格第一个,第一个换人了,也要等下次结算才清掉旧的、绑上新的,不会悄悄把加成搬到新首攻上。
结果 Buff 没有"默认全部攻击"这种好事:目标规则、锁哪个实例、改哪个字段、数值多少、维持还是累计、活几轮,少填一项就不让配。界面文字也跟着改,写"第一个攻击主动伤害+1",不写成棋子攻击力上升。
  1. 涌现式组合:以"抓"为例 单个抓朴素得不能再朴素:射程 1,伤害 3,随机挑一个敌人。放端游里,这种技能大概就是一行配置。
但把它做成一族(BehaviorFamily=Claw)之后,事情开始起变化:
锋利爪牙:场上友方的抓伤害+1,3 变 4; 班门弄斧:身边两格内有三个不同的抓使用者,自己的抓全部翻倍,4 变 8(先加后乘,所以是 8 不是 7); 疯狂乱抓:只要手里有抓,本场连击+1。效果一轮后来源没了,增益还在,第二轮才多一次行动; 抓到你了:自己的抓射程+1,长胳膊换出来的远射程抓也吃得到; 猫抓板:之后三个不同棋子第一次用抓,各自伤害前 +2,本场有效; 长胳膊:把自己的主动原位换成抓,射程取替换那一刻到最近敌人的距离——没有新动词、没有新伤害代码,同一个抓换了个射程; 接骨术:治疗 2,目标手上有抓就计划治 3——认的是同一族,不是同一行配置。 接力是另一个样子:A、B、C 都有接力,按顺序第一次行动,A 让 B、C 的首攻各翻一倍,B 又让还没行动的 C 再翻一倍,C 最后拿到 4 倍。倍率相乘、同一来源不重复翻倍,规则一句话说得完,可这个结果不在任何单个个体身上。
这些配方没有一条写在"棋子"身上。90 枚棋子只负责按顺序装配,组合空间是配置层白送的。猫抓板还顺手推着引擎开了一条口子:要在"第一次抓打出伤害之前"发增益,才有了执行前那个只准改数值、不准改结构的窗口。
  1. 一个时钟:全局轮末统一扣时 删掉的东西里最省心的是计时。现在只有一种时钟:这轮所有行动都结束后,有限期的东西统一减一轮。
单次主动做完、行动点用完、被冻结占着、机会被抢走,都不提前扣; 这轮中途插进去的效果,从这轮开始算,不顺延到目标下次行动; 一轮里 3 个正常行动加 2 个额外行动,等于 5 段被动和最多 5 次主动,有限期效果只在轮末扣 1。 有个能直接验证的例子:一个 3 个行动点的棋子,行动前被冻一轮,三次主动全被"等一轮"占掉,轮末冻结自然到期。不用为"冻结到底算几回合"写任何特例。
TapTap
【童谣镇】聚光灯第二次开发日志截图
【童谣镇】聚光灯第二次开发日志
开发进度: 美术 1、主角人物立绘已细化完成 2、所有NPC的QQ人形象与呼吸动画已设计完成 3、大部分UI界面已设计完成 4、面包房建模与树屋建模以及基础房屋、路灯、树木模型已完成。 5、制作过场动效,制作通用动效材质ing 6、广场资产替换、永续桥和植被的资产替换、房屋资产替换,河流制作 7、学校模型的材质完成 8、石墩子、小道具模型制作ing 9、NPC正比胸像绘制ing 策划 1、任务系统
11 赞
10 回复
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
6 回复
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?截图
【2026聚光灯日志01】什么叫你把手牌,骰子和战棋融合了?
大家好啊,我是官方小编,一位还在学校的独自开发的苦逼带学生 这次算是第二次正式参加GameJam,而这回的比赛主题是【涌现】 嗯…老实说,一开始我还真只是从中文语义上来看,理解成“大量的出现”,直到询问ai哦哦哦我这就才想起来还有英文的“整体大于部分之和”意思来着 说起这个主题的意思,立马想起的类 吸血鬼幸存者 ,或者是 文明 系列的各种爆怪,爆兵的设计,即大量的出现敌人或者单位 而从第二个
4 赞
4 回复
《卡牌工业》开发日志 01|从“涌现”到产线对打截图
《卡牌工业》开发日志 01|从“涌现”到产线对打
大家好,我们正在用 Godot 做一个暂名《卡牌工业》的游戏。目前已经跑通了最小的生产与战斗循环,也做了两轮迭代。这篇先记录一下:面对“涌现”这个题目,我们讨论过什么,又为什么最后收敛到卡牌和工厂。 第一步:头脑风暴,涌现可以是什么? 刚看到“涌现”这个题目时,我们的想法几乎朝每个方向散开了。塔防、物理搭建、探索、解谜、经济系统、叙事,甚至增量游戏,都能让简单规则在玩家的操作中长出新的结果。再想下
1 回复
00:07
雨天決行 开发者日志02-人工智能的自我修养截图
雨天決行 开发者日志02-人工智能的自我修养
又和大家见面啦!第二篇日志,说实话一开始不知道该怎么编排,但团队里惊喜的成果越来越多,我们已经迫不及待把更新的内容端上来给大家啦!那么事不宜迟,快来看看都有什么新情报吧ദ്ദി˶ー̀֊ー́ )✧ 一.美术(重磅升级) 以主美小为的生命力作为燃料(bushi)本次美术组取得了大进程!首先是各个ui界面的优化和细化,上次大家看到时还只是初具雏形的草稿,现在大多都完整起来了哦! 同时,随着配色的补全,手
43 赞
36 回复
《有点不一样的自走棋》开发日志5截图
《有点不一样的自走棋》开发日志5
前几篇讲系统、行为和棋子,这一篇讲它们怎么变成关卡。一开始想靠大量自动对战筛出合适的敌阵,后来逐步改成从后往前手工设计,再用模拟检查和调整。 1. 一开始,想让自动对战把关卡筛出来 棋子和遗物已经有一批了,最初想得很直接:让不同阵容大量自动对战,把难度、损耗、战斗时长这些要求变成筛选条件,留下符合标准的对局,再放进对应阶段。这样既能利用现有组合,也能省掉逐关配阵容的工作。既然游戏本身就在讲简单规则
3 赞
8 回复
00:34
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!截图
《荒原复苏指南》开发日志④:关卡演示堂堂袭来!!
- 人类曾因掌握元素合成技术而一度辉煌,又因滥用元素能量而逐渐从内里衰败。 - 30世纪80年代。社会文化充斥着激进乐观主义与庞大机械美学,在这里,污染和能源共生,幸福与痛苦并存。官方广播和宣传画里依旧在宣扬“科学将战胜一切”、“元素能量将再造新农田”的口号,而世界主城却已经因为污染过度而濒临崩溃、空间挤压严重。为了寻找新的生存空间与无污染能源,官方启动了“重构拓荒计划”。 - 玩家将作为前线拓展
18 赞
6 回复
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
3 赞
1 回复
00:30
《失心》游戏开发者日志01|游戏UI迭代及实机演示截图
《失心》游戏开发者日志01|游戏UI迭代及实机演示
进入《失心》之前,玩家首先看到的是我们工作室 UNLOOK 的标识。我们将原来的标识转成 SVG,并让其中的红色瞳点转动、观察,再逐步显露完整字形,希望这个短暂的开场能带出一点好奇和不安。 这次《失心》的开局 UI,我们围绕小灵通(因为游戏的主要交互道具就是小灵通)做了几轮调整,希望玩家从打开游戏开始,就能感受到故事里的年代和气氛(故事年代背景为2000s)。 早期版本先确定了一个方向:把菜单放进
15 赞
10 回复
开发者日志#01:涌现!! 披着科幻外衣的涌现式增量游戏!!!!截图
开发者日志#01:涌现!! 披着科幻外衣的涌现式增量游戏!!!!
随着Game Jam 主题公示,我们团队立马着手维持了三天的激烈讨论!决定做一个披着科幻外衣的蚂蚁农场以boids算法为灵感的涌现式增量游戏!!! 至此,方案敲定,我们团队将开发一个可升级的自主群体模拟,并且初步规划了玩家游戏时的体验流程: (1)阶段1(开局30s,触发痛点,会有一次提升,但是游戏仍然艰难):一张地图分布着资源点和仓库,玩家此时只能徒手采集资源点的矿石拖入仓库,矿石可以造机器人;
14 赞
7 回复