下载 App

《无人过错》开发日志(四):车走得快,就算路口通畅了吗?

6 小时前1 浏览综合
上一篇主要在补体验:让道路落到地面上,把车辆遮挡和操作界面修稳,再给观察留一点声音。
最近,我终于往之前提到的城市道路方向迈了一步,新增了第六关「城市等待」。但做完红绿灯以后,又遇到了一个比“功能有没有做出来”更重要的问题:
如果玩家只需要把绿灯拉长、红灯缩短,就能让车队跑得更顺,那这个路口到底在考验什么?
这次的调整,就是从这个问题开始的。

从一条路,走到一个路口

第六关增加了城市街区、十字路口、停止线、斑马线和信号灯。车辆接近路口后,需要根据灯色减速、等待,再重新起步。
操作也尽量跟场景对应:点击道路,调整跟车需求和限速;点击信号灯,调整灯时。屏幕上仍有备用切换按钮,避免灯不在镜头里时无法操作。
道路与灯时共用原来的三次干预。选择对象、输入草稿不会扣次数,真正应用了变化才会扣;灯时改动在下一周期生效,不会突然把正在通行的车或人截在路中间。
顺手也修了一个一直影响观感的问题:之前车辆有些像骑在道路中线上,现在统一放到右侧车道中心,跟车镜头也跟着调整。
TapTap
「城市等待」的路口近景:车辆沿右侧车道行驶,路旁已经能看见候行的小人。此时车辆绿灯剩余10秒,5人等待、无人正在过街;右侧展示的是道路设置面板。
不过,这还不是一个完整城市交通系统。当前仍然只有一股闭环车流,横向支路没有另一股车辆,也没有转向、换道或多个路口联动。先把一个路口的关系做清楚,比一下子铺出很大的路网更重要。

24辆车,为什么俯视还是会卡?

城市关做出来以后,俯视画面出现了明显卡顿,声音也有断续的反馈。
第一反应很容易是:是不是车辆太多了?但这一关只有24辆车,检查后发现,主要开销并不在车辆数量上。
真正比较重的是道路点击检测。原来即使玩家没有点击,程序也会每帧对整圈道路做精细的遮挡裁切,生成大量用于判断“这里能不能点”的碎片。切到俯视,整圈道路都进入画面,这部分工作就特别明显。
这次改成了:固定相机下缓存道路投影,只有实际点击时,才对点击附近的候选路面做精确遮挡判断。
没有靠减少车辆或删掉景观来换流畅,也没有放弃“被车、树或建筑挡住的道路不能点穿”的规则。
在同一套离线Lua算法测试里,城市俯视绘制的中位耗时从约89毫秒降到了20毫秒左右。这是加入持续行人之前的优化对照,不是最新版本的真机帧率,也不是GPU性能测试。 后续小人的画法也做了轻量化,避免重新堆回大量遮挡计算。
至于声音是否已经完全不再断续,还需要手机上实际确认,不能把渲染优化直接当作音频问题已经解决。

红绿灯,不应该先考验玩家读术语

另一轮反馈很直接:灯时名称看不懂,左侧数据也太杂。
于是把设置改成了更直白的三个字段:绿灯时间、红灯时间、黄灯时间,单位都是秒。
这不是只换名字。黄灯现在确实是可调整的黄灯阶段;红灯时间则包含车辆清空、行人过街和恢复通行前的安全保护。路口还没清空,或者人还没走完时,车辆不会因为倒计时结束就被强行放行。
界面也重新取舍了一遍:城市关不再把坡度、高度、投影入画数量等信息都堆出来,主要保留灯色、剩余时间、路口排队和行人状态。
之前的“等待车·秒”和“信号约束次数”也从主界面移走了。它们对调试有用,但不等于玩家能直接读懂的拥堵程度,更不能把程序的停车修正次数当成事故或违规次数。
不是数据越多,玩家就越了解路况。先让人看懂自己正在观察什么。
TapTap
另一时刻的跟车画面:绿灯剩余23秒,路口仍有11辆车排队,15名行人等待,当前最久等候38秒。绿灯不等于队列马上消失,车辆状态和行人等待需要一起看。

行人不能只是每轮红灯出来走一下

最开始的行人实现,其实更接近演示:每轮红灯出现几个人,走过斑马线,让玩家看出这里有过街过程。
但这样并没有形成真正的需求。绿灯再长,画面外也不会积压越来越多的人;红灯再短,只要那几个展示用行人走完,就好像没有代价。
所以这次把行人改成了持续到达、跨周期保留的队伍:
  • 每2.5仿真秒到达一人,两侧交替。
  • 两侧各自按到达顺序排队,没有过街的人留到下一轮,不会被清空。
  • 同一侧每1.2秒放行一人,两个方向分别过街,不挤在同一条线上。
  • 过街需要9秒;剩余时间不足以安全走完的人,不再进入本轮。
  • 已经进入斑马线的人必须走完,才恢复车辆通行。
同时增加了一个明确的服务目标:行人到达后,45秒内开始过街。
这里说的是排队到开始走的时间,不是要求45秒内已经走到对面。还在队伍里、没有过街的人,如果超过目标,也会计入超时,不能只统计已经服务的人,把一直等着的人藏起来。
画面上的线状行人也换成了有头部、衣服、手臂和分腿的矢量小人,并加上行走动作。俯视时也能辨认,不需要引入外部人物模型或贴图。人多时只展示队首,等待人数仍然完整计算,不会因为画不下就从仿真里删人。
TapTap
切到俯视后,可以看见整条闭环与横向支路。此时车辆红灯剩余15秒,28人等待、8人正在过街,已有36人完成过街;当前最久等候69秒,以红色提示超过45秒目标。已经有人通过,并不代表还在排队的人得到了及时服务。

终于有了一个需要取舍的问题

新的规则加入以后,长绿灯、短红灯仍然能让更多车辆通过,但不再意味着整个路口都好用了。
在同样道路和车辆参数下,各运行600仿真秒,得到了一组对照:
绿/红/黄灯时间车辆累计通过结束时仍等待的行人本局最长行人排队时间
60/18/3秒84次192人477.5秒
18/30/3秒40次1人41.7秒
8/60/3秒15次0人30.5秒
这些是当前简化模型的逻辑测试,不是真实城市交通测量。时间均为仿真时间;车辆通过次数包含同一辆车绕行后的再次通过。非默认方案在开局提交,第一次改动在49秒时生效,因此前三行都包含相同的默认首周期。
如果只照顾车辆,行人队伍会越来越长;如果把大部分时间都留给行人,车辆又会长时间排队。
18/30/3秒在这次测试里是一种可行的折中:没有行人等待超时,车辆也仍能持续通过。但它不是绝对最优,更不是可以套到所有道路上的标准答案。
我觉得这比单纯追求更高车速有意思。玩家终于需要问:我改善的是谁的通行?代价又由谁承担?
结果页也开始同时记录车和人。即使车速看起来不错,只要行人等候超时,也会明确指出这一点,而不是把“车跑通了”当成路口已经解决。

做到了什么,也还有什么没做到

这轮完成了城市关、对象式设置、红黄绿灯时、持续行人需求,以及对应的等待观察和结算。小屏结果页增加了必要时的滚动兜底,完整记录不会把操作按钮挤出安全区;输入框也修正了先截断文本、再误把非法内容当作有效数字的问题。
测试过程中还找到了极端长红灯下的一处跨环停车队列问题,在城市外层补齐了约束传播。原来的IDM核心没有改动,安全修正仍然记录,没有把修正后的表现说成模型天然保证。
四组各600秒的逻辑安全测试已经通过,原五关的轨迹回归也通过,项目构建成功。这次补上的实际游戏截图展示了跟车与俯视界面、候行小人,以及正在过街和等候超时的状态。不过,单张截图无法确认动画连续性、手机流畅度或声音表现,这些仍需要动态体验验证;此前的布局测试与离线投影检查也不能代替全面真机验收。
这一轮也没有加入星级、排行榜或完整的通关系统。45秒目前是一个清楚的行人服务目标,让观察有了方向,不意味着整个玩法已经定型。
上一篇留下的问题是:玩家看懂操作以后,究竟想从车流里发现什么?
现在至少多了一个更具体的答案:一条路上,不能只让车走,人也要走。
《无人过错》还是在观察交通,但这次,开始观察的不只是车速,而是谁在等,以及为什么要等。
【给他们一点钱 Give Them Money】#开发者日志03小小进度,拿下截图
【给他们一点钱 Give Them Money】#开发者日志03小小进度,拿下
日志03更新啦,本期汇报来喽!这两天再完善了一下游戏逻辑和核心,以及—美术老师们的手已经画出重影了!!!希望在18号之前更新完所有的内容。 世界规则设计 地图内部存在网格逻辑,但不会向玩家显示网格线条。 生成出来的物件位置被锁死,物件本身无法自主移动。 所有环境物件会固定生成、驻扎在网格地块之上。 开局世界只会生成一名普通小人作为初始居民。 游戏时间每经过两天,系统就会随机挑选地图地块,在上面生成
1 赞
00:39
【开发日志3】主场景与玩法无缝化衔接截图
【开发日志3】主场景与玩法无缝化衔接
大家好我是鸭。这里是墨江里的一群鸭,嘎嘎嘎~ 今天主要时间用来搭建主场景了,感觉有点浪费时间啊……理论上来说要进入到搜打撤玩法的unity场景搭建了。 不想打字了,大家看看画面表现效果吧~ #TapTap聚光灯独立游戏
9 赞
1 回复
灌水:劳累啊,晚睡的后果截图
灌水:劳累啊,晚睡的后果
今天不聊开发了,轻松一下吧(一点都不)。 如图所示,今天真是忙飞了,所有工作史无前例地吻了上来。一谈到发布活就多了起来。 想着忙到3点了,刷刷手机写篇日志就睡吧,一打开论坛刷了一会被吓哭了。 天下英雄如过江之鲫啊[表情_晕了][表情_晕了][表情_晕了][表情_晕了] 一种无力感油然而生。 但没有办法,我们6.5个小白一路走来都到这一步了,咬咬牙也要继续走下去吧。 看着这一篇一篇教程,一次一次会议
1 赞
【开发者日志#5】gj小队也可以是少女乐队截图
【开发者日志#5】gj小队也可以是少女乐队
大家好,我是三叠纪石室天团工作室(这个名字是我现起的)的主美兼TA兼主策兼运营! 周三画了一天ui……我的腰现在好痛👻 这两天压力全部给到画ui的我,做特效的我,还有画立绘的我🥰🥰🥰程序老师把合成功能,rpg系统,甚至npc好感度系统都给我做好了(你们几个不用上学写作业的吗喂!怎么动作这么快啊)剩下美术在一堆作业中凌乱…… 周一上机上到晚上十点,然后紧急打了个语音拉了一遍整个游戏流程。(关于我们编
2 赞
1 回复
00:10
群迹·上取其下,下取其上截图
群迹·上取其下,下取其上
#聚光灯gamejam开发者日志 向大家汇报一下今日进度,目前在和蚁群的默认移动算法进行斗智斗勇。或许是我的AI对蚂蚁有别样的理解,其实最初写出的方案更接近于围绕着恒星公转的行星。 哦我还以为文章里可以插入多支视频视频,想要展示一些其它的运动方式,可惜了。那么就简单在上方传一个比较典型的,有点类似于蟑螂的运行方式。 目前仍在解决蚁群的随机运动,和玩家可操纵性之间的平衡问题。以及如各位所见,目前的
3 赞
1 回复
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合截图
《气味之城》开发日志#1|为什么"涌现"和猫是天作之合
大家好,我是一个人报名了 2026 聚光灯 21 天游戏创作挑战 的独立开发者。今年主题公布那一刻我就笑出了声——涌现。因为我已经想做这个游戏很久了: 《气味之城》:你不是猫神,你只是一只猫。 先说一个所有养猫人都懂的事实:你永远无法"教会"一只猫任何它自己不想学会的事。但你家猫可能自己学会了——听见冰箱开门就瞬移到厨房;你心情不好时过来踩奶;凌晨三点准时在你身上练马拉松。没人教过它,这些行为是它
3 赞
2 回复
《无人过错》开发日志(三):先把看路这件事做好截图
《无人过错》开发日志(三):先把看路这件事做好
最近几次调整,我没有继续往《无人过错》里塞新玩法,而是回头整理了一下已经做出来的东西。 这个游戏不让玩家开车,只让玩家改变跟车需求和限速,再观察车流。如果界面不好用、车辆时不时闪一下,道路又像悬在空中,那玩家还没开始观察,注意力就已经被这些问题带走了。 所以这一篇,主要是补体验。 先把操作变简单,把画面修稳 之前跟车和俯视各占一个按钮,现在合成了一个:显示“跟车”时,点击切到“俯视”,再点就切回来
1 赞
开发者日志02截图
开发者日志02
完蛋了21天的gamejam又要被我打成7天的了,今天确定了一下玩法和表现,棋子和UI元素想做成欧美风格的,也想做成不织布的质感比较柔和,明天先让taptap制造给我出一板棋子;希望能按时端上来,明天上午早点起来开始落地! 加油555555 #聚光灯gamejam开发者日志
2 赞
1 回复
开发日志#2:这个AI又好用又不好用啊……截图
开发日志#2:这个AI又好用又不好用啊……
大家好我们是笛笛龙! 今天,终于,策划案落地了!足足花了3天,虽然如果从10/1开始的话3天不算什么,但是我们只剩下最后7天了啊! 这次预计是在18号周日要发版的,到现在还没有任何游戏实机来得及吗? ——说着AI大哥就帮我们把实机的标题页做好了! 但是,我只是让它把图拼一拼做个画面,为什么要额外写“四种元素·万千可能”这种AI味超足的描述啊!太羞耻了! 不过AI生产美术素材清单是真好用啊,一次性把
2 赞
02:32
开发者日志03|主界面与新武器截图
开发者日志03|主界面与新武器
大家好!这几天,我们更新了开场动画和飞船拼装界面,接入了更多新的战斗组件,也继续完善了地图制作工具。 我们的游戏名终于定下来了:中文叫《银河系拼装指南》,英文叫 Galassemble,由 Galaxy(银河)和 Assemble(拼装)组合而成。 一、飞船拼装界面改版 飞船编辑器界面的工具和信息布局也进行了优化。 编辑、放置、删除和镜头操作现在有了独立的工具按钮。编辑模式下,可以点击选择组件、拖
3 赞
3 回复