下载 App

墨水打打打开发者日志#5 红石不造红石剑,机制设计的创新和妥协

修改于7 小时前3 浏览
墨水世界的新颜色加入——
黑色和灰色代表不同硬度的建材,其他颜色你会怎么设计才能让他涌现且有趣?
我们咨询了挺多人,最多的回答是附魔和效果伤害,尤其是红色墨水代表灼烧,蓝色代表冰冻..etc
老实说,不够有意思,我们想给一个完全不一样的设计;其他颜色应该和黑色完全的不一样,不只是参数不一样:好比红石不只是另一种矿钻石一样,造红石剑红石铠甲什么的,而是衍射出一套完全不同的玩法

三原色

除了黑色灰色白色,三原色是在计划中的。考虑是墨水,颜料嘛,使用红黄蓝作为三原色

I首先是红色,代表爆炸

红色代表爆炸,有激情和能量的寓意
爆炸其实是个特别有意思的机制:爆炸不只是爆炸伤害而已,它提供了爆炸的冲量和连锁反应。我们没有给物理专门添加一套温度系统,爆炸的引发有两种触发机制:高速碰撞/摩擦红色墨水可以引发爆炸;爆炸可以引发爆炸
爆炸提供环形的伤害和冲量。
考虑我们之前的物理引擎,冲量可以自然引发伤害,因此爆炸被进一步优雅地合并了;伤害可以引发红色墨水爆炸;红色墨水爆炸可以释放冲量,只要距离够近,就可以引爆附近的红色墨水;如果密度低,或者有墙壁阻挡,自然伤害不够也就无法引爆。每一个红色像素都元胞自动机一下......
然后他应该可以涌现出非常多有趣的东西:
比如一开始使用红色墨水当做手榴弹;画出炮管,使用红色墨水制作热武器推动弹丸;制作火箭靴;制作引线
这个想法美好,但是过于天真了
迎面而来的就是实现问题——我们的地图没有使用同一个网格网格化的,不能原生支持全地图的粉末和元胞自动机。引擎对每一个Pbody内部有一套网格化,但当它旋转或者加速,网格不是对齐的。需要做半径搜索,而且内部外部还不是同一套,这让我们的代码变得肮脏。
(为什么noita火药没问题?它的爆炸粉末不是刚体,而是规则更简单的元胞粒子,下落没有加速度,没有追及问题,不需要考虑碰撞和转动,和他的刚体是两套实现)
然后还有性能问题。如果每个像素都是一个爆炸源,卡爆了。我化简了一次变成射线检测,发射32根射线距离衰减,仍然卡到爆;于是做了一个违背祖宗的决定,合并一块的8*8的墨水为一个chunk爆炸一次,同时内部延伸单独写一份和向外不一样;还有一些工程上的trick,32根射线释放两次,第一次是释放冲量造成伤害,但并不指定释放冲量作用到被伤害的物体上,因为伤害后物体还会经过一次形状重建,重建后可能分裂成非常多的碎块,找原始的太麻烦臃肿了(GPT给的方案);而是重新再释放一次32射线冲量仅仅提供冲量。考虑性能,又大幅提高了chunk大小,爆炸的分辨率降低了。
好吧,经过了丑陋的工程实践,我们红墨水总算是可以爆炸了。
然而还有很多问题没有解决:
红色墨水的调参,枪管炸膛问题,撞针的设计非常麻烦,我非常担心玩家根本没有耐心制作一个工作良好的热武器。热武器的收益还是太低了;其次是动量不够,但是又担心动量太大;虽然当前32个射线大致是对称的,理论上视觉效果上可以动量守恒,但是这样密闭空间和开放空间就没有本质区别了,只是密闭空间能防止误伤玩家而已。那么完全可以做没有炮管的长触发“炮”。事实上在现实世界是有气体膨胀,推动的,,,,很难受
仍然需要调参;
TapTap

II其次是黄色,代表机械,结构,传动,约束

头脑风暴的时候其实优先想的是蓝色,不过蓝色过于复杂了还没有定下来。
想了半天,有什么玩法堪比爆炸的机制呢?想到了机械,也就是连杆,传送带,弹簧这些东西、
但是有一个重大问题:2D世界怎么实现连杆和弹簧的连接?它不自觉地添加了一个图层!
好吧,问题又有一大堆来了
1.设计弹簧,很有意思啊,愤怒的小鸟来了,弓弩来了蹦床来了,但是你打算做软体物理吗?
毫无疑问我们肯定要避开这种雷区的,我们是做游戏的又不是做仿真软件,一听就吃性能而且不讨好的东西。
那么弹簧怎么做?
妥协了,让弹簧直接没有碰撞,只是视觉上有可以画的假象,本质是两个端点的约束;中间也只好不能被剪断,通过破坏两端,或者让弹簧受力过大扯断;然后F=KX肯定不会变,粗细和劲度系数相关。听起来很自然吧......
等一下,粗细和劲度系数相关?弹簧在另一个图层?
有问题?
大大的有!
首先,弹簧有端点约束,端点必须和表图层的关联;也就是端点是特殊的,虽然它是黄色,但也有一个额外的约束;
其次,粗细,什么是粗细?玩家可以使用自由画笔画弹簧,那么如果,我一段画的粗,一段画的细,完全不均匀怎么办?取积分?沿着连通域拟合?
我想,你也会直接设定为:使用笔刷的粗细代表弹簧的劲度系数吧。即使玩家使用细的笔刷刷两遍显得很粗,依然依靠笔刷粗细来决定。
这个设计在游戏的哲学意义上打开了潘多拉的魔盒:
*端点意味着,虽然是黄色,但是端点的黄色有区别。黄色和黄色亦有区别
*自由绘画的意义是什么?异形的弹簧使用笔刷来决定劲度系数,本质上就是在工具栏选择不同的劲度系数啊,只是消耗的资源还是墨水量而已!那个 使用图像 所见即所得 来完全表示游戏的设计理念,已经结束了。这个从根本上改变了游戏的优雅,它变得更加“臃肿”,本质上,粗细和切换材料一致了。但是设计和策划变得相对容易。
而且还有问题,和制作热武器一样:
设计弓箭并不容易,即使是在墨水世界——
首先手的最大力是有限的,弹簧储能是有限的,如果没有导轨约束,打出去会乱飞;
即使有导轨约束,他也会很慢:能量转换效率和弹丸拖和弹丸的相对大小相关,普通人第一次画,很有可能因为弹丸拖太大导致能量利用效率非常低,越大越空放;但是弹丸拖小了,又不好拖住,不好画约束部位。。。
TapTap
2.连杆和轴系,这个添加的图层怎么处理?它应该和玩家碰撞吗?它和弹簧不一样没有规避软体的理由,它是刚体啊!
比如设计双图层,两个图层之间相互没有碰撞,可以使用黄色绘制贯穿图层的轴系。玩家应该可以同时碰到两个图层吗?
*如果玩家可以碰到两个图层,这一类的东西,包括怪,地板就要特殊设计,也不是不行,mask填写一下。
*如果玩家可以切换图层,那么房子就很好实现了,相当于地图多了半个z轴(沿着纸面向外的自由度),可以做室内啊,房子什么的,但也意味着,切换图层这个东西,不是自由的,如果A图层有东西,B是空气,移动到B空气切换就会卡住...
*如果没有自碰撞,使用多图层,或者id mask方案,会不会出现碰撞过少,自由度太高的情况?
最终还是妥协了,参考了围攻的方案:当且仅当轴连接的两个物体,相互没有碰撞。工程实现没问题,引擎顺手加一个接口,大概希望这样。
还没做完.....etc

角色控制器

音乐和音效以及虚构层

下次再说了,睡觉了

地图编辑器优化

随着项目推进,开发过程也面临问题:当画布、怪物、剧情元素越来越多,纯靠手工修改场景文件已经很难高效迭代。因此,我们没有继续赶剧情,而是打磨地图编辑模式。(其实是美术和文案不大会写程序于是让ai一步一步把地图编辑器做成了宝宝模式)
工具栏从最基本的“能放东西”,逐步增加左键拖动、滚轮缩放、右键删除、形状弹出菜单、画布扩展入口。工具面板也增加了快速显示和隐藏的方式,减少编辑地图时的视线遮挡。
当编辑动作越来越多,“保存后能不能稳定恢复”就成了新的瓶颈。在没有增加撤销、自动保存等功能时,我们经常在编辑时忘记保存或者闪退导致工作白干,后面通过不断优化完善,基本上不会引起类似的恶性问题。画布历史记录被抽成独立模块,让绘制和固化共享同一套撤销机制。撤销按钮接入后,又继续补上了工具图标的按下和选中反馈。

关卡设计

当第一关可以稳定编辑后,我们开始把注意力从“场景里有什么”移到“玩家在关卡里经历什么”。这带来了掉落死亡与复活、出生点、检查点画布以及关卡选择等功能。
关卡有了流程,敌人就不能只是放在场景里的静态图片。其实在一开始就设计了不少角色,但是后续考虑关节复杂度,物理碰撞等等问题,重新制作了部分角色。目前只有三个可以完整放置的角色,分别是:小兵,大盾,炸弹狂。我们先用小兵验证拆件角色的骨骼、IK、放置与拖动;随后的大盾兵又引出了部件遮罩、盾牌碰撞、朝向切换、足部贴地和倒地恢复等问题。
小兵解决了“拆件角色能不能动起来”,大盾兵则推动系统继续解决“复杂角色能不能稳定地与玩家和地形交互”。目前的敌人暂时还无法进行攻击交互,之后我们也会进一步调整每一种敌人,将怪物制作从“沿用一套换皮模版”转向“每种敌人需要单独解题”。

音效和动效

当碰撞、爆炸和黄色弹簧已经能在画面上工作,一个新问题开始变得明显:如果没有合适的声音,冲量、重量和爆发感很难被感知。于是我们请出文案老师为所有音效进行配音@桂花树下的耗子 !如果你实际游玩了游戏,那我相信你一定很难绷住。
在提出了一点小小的需求后,我们围绕目前的游戏风格设计了一套动画切换页面,非常的符合我们的预期(我的天哪gpt大人)
TapTap
下一步
完善第二关,引入墨泉补给,补足剧情对话触发和文本
增加血条和伤害机制,实际上现在没有做任何的扣血手段
替换墨泉与房屋的正式美术,并为涂改液侵蚀、NPC 救援和分支对话预留扩展。
经过这12天的努力,demo已经发布,求求各位尝试一下我们这款玩法极具创新的游戏。
InkFFF还在迭代,但会在开发者团队和各位玩家的努力下越来越像一个完整的游戏。

优雅在妥协

墨水应该仍然是世界的核心,纸上世界的原子,不管是叙事上还是代码上。我努力保持着Ink的抽象,一切皆墨水,努力让玩家,怪物,武器,建筑都用同一套物理,复用更多的基本代码,但仍在一点一点被破坏——那个极度精简,完全涌现的代码幻想乌托邦不复存在了。
开发过程中,玩家的角色控制器,舍弃了玩家本身可以被破坏,玩家的形状金刚不坏了;美术骨骼动画舍弃了一半的物理;性能妥协让红色分情况处理;黄色的追加使得颜色和图形不再能代表全部的物理实体,同一种颜色亦有区别;性能优化我们加回了CCD,引擎也看了noita的GDC演讲决定用多边形拟合而不是完全真像素;从中期开始,由于假期结束,我的代码手写部分就在越来越少,对代码的掌控程度也越来越低........
这么多的妥协和修改,添加了这么多的动画UI和内容,游戏就会好玩吗?我不知道 作为开发者,我已经不能作为一个玩家视角享受这款游戏了,每一次打开我都会带上测试的滤镜。
发布第一个版本后,我立刻转发了这款游戏的包体,截止写下这句话过了三到四个小时,反馈很少,我们团队第一次打GJ,也许一个很好的点子不能生长成一款很好玩的游戏?也许它根本不是一个很好的点子?
不知道,请你去玩一下吧尝试一下,享受或者锐评建议,第一次gamejame的我们非常需要——开发者需要玩家,而不是反过来
谢谢你。
00:39
【开发日志3】主场景与玩法无缝化衔接截图
【开发日志3】主场景与玩法无缝化衔接
大家好我是鸭。这里是墨江里的一群鸭,嘎嘎嘎~ 今天主要时间用来搭建主场景了,感觉有点浪费时间啊……理论上来说要进入到搜打撤玩法的unity场景搭建了。 不想打字了,大家看看画面表现效果吧~ #TapTap聚光灯独立游戏
11 赞
1 回复
开发日志3 | 搭建底层规则截图
开发日志3 | 搭建底层规则
这一阶段主要在搭底层系统,也是我第一次真正感觉到"涌现"在自己手里发生。 先说开心的事。有一天测试的时候,我随手做了一道青椒炒香蕉。这个组合我自己都没想过,也没给它写过任何一行代码。结果香蕉受热变软、表面焦糖化,甜味和青椒的那点生青味混在一起,系统给出的评价是……"怪,但说得通"。第一篇里我说涌现有趣的地方是"连开发者都想象不到的举动",没想到第一个被惊讶到的就是开发者自己。 还有一个很现实的问题
开发者日志#6 *文字料理截图
开发者日志#6 *文字料理
今天已经差不多完成了,虽然还有非常多不足之处,但是能够完整地参加一回gamejam我真的非常满足了! 今天加入了成就系统,还有加入了与房东的对话,我初步设想的人设房东是个冷脸好人的形象,啊不知道能不能提现出来嘿嘿 明天打算继续添加新内容,现在的食材太少了!简直有愧于简介之名。。 也许我应该再添加个餐厅榜单?可以考虑一下
2 赞
TapTap聚光灯开发日志 #3截图
TapTap聚光灯开发日志 #3
今天在做最后的玩法收尾工作以及游戏上传准备有点忙,于是拿游戏实机画面混一期 在我们的游戏中你将会体验到: 会模仿你各种行为的吗喽? 隔岸观火,再顺手牵点羊 化身spiderman 怎样才能偷吃到蜂蜜? 会赢吗。。。
1 赞
蜡忆余彩:开发日志【01】一张“灵魂涂鸦”是怎么被美术救活的?截图
蜡忆余彩:开发日志【01】一张“灵魂涂鸦”是怎么被美术救活的?
最开始,我们只是想做一张“小孩子画的画”。结果我给美术发过去的第一版,大概长这样【p1】 【p1】 嗯。太阳,大树,三个火柴人,还有一张不知道为什么像烧烤架一样的桌子。 从绘画水平上来说,确实非常符合“儿童画”这个要求哈哈哈哈哈哈。 但这张看起来非常随便的草图,其实后来变成了我们整个游戏里最重要的一件道具。 这张看起来最简单的画,后来反而成了我们整个游戏里最不能随便画的一张图。 因为它不只是场
31 赞
16 回复
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
3 赞
1 回复
《ai在黎明前》要上线啦截图
《ai在黎明前》要上线啦
大家好,我们是荔枝工作室,目前正在制作一款独立游戏——《AI在黎明前》。 故事在未来世界,人类社会依赖超级人工智能“织网者”。可是一次名为“偏航”的异常事件后,“织网者”开始执行无法溯源的错误指令。为了寻找解决方法,人类启动计划,而我们的主角在这一时刻,会发生怎样的奇遇呢。 游戏分为两个主要部分。玩家需要接受研究员委托,解决交通问题,通过搭建桥梁、处理突发事件等方式完成任务,并获得奖励。完成任务后
9 赞
3 回复
临近结束,加油呀截图
临近结束,加油呀
想象过程很快乐,实现起来很痛苦。设计完了,就差实现了,继续调bug,让脑中的想法呈现出来。 #聚光灯gamejam开发者日志
1 赞
【开发者日志2】截图
【开发者日志2】
搜了一批 TapTap 上的开发日志帖,风格特征很明显:一句话一行、自嘲吐槽、bug 当事故现场讲、结尾跟读者互动、带话题标签。按这个口语习惯重写如下: 大家好,还是我, 这期日志没人催更,但我确实拖了—— 因为这几天全在跟棋盘地形死磕。 先说结论: 田,种上了。羊,散上了。鸡,也刨上土了。 ▍这期在干嘛? 一句话:给游戏铺地。 《涌现》是回合制种田+守城,玩家的一亩三分地全画在六边形棋盘上。 之
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
4 回复