下载 App

开发者日志 04 · 把玩法藏起来

昨天 05:1812 浏览综合

《绿洲涌现》开发日志 · 第 4 篇

一个反直觉的决定:不做教程

游戏有固沙、种植、防护链、水预算、天气、洪水、养殖、章节验收……一套下来十来个系统。常规做法是做一个教程关,一条条教。
我们没做。原因是:治沙本身就是"慢慢发现规律"的过程。 如果开局就把所有规则糊在玩家脸上,那种探索感就没了。
替代方案是章节引导 + 逐层揭示。

引导系统:只推下一步

界面上永远只显示"现在该做什么",而不是"全部能做什么":
第一章 · 第1/5项 · 进行中
第一道沙障 · 新铺 8 块草方格
                         0 / 8    [领取 +80]  [选择铺设]
引导不是静态文本,而是实时读取游戏状态后给出的建议。同一句"还差 8 块",会随情况变成完全不同的指引:
情况引导文案
正常还差8块;在未保留流沙铺草方格。
有幼苗未成活还差12块成活;已有5块幼苗,先供水养护。
资金不足铺设资金不足8;等待收入,巡护可用时可补充资金。
无可施工地块当前无可施工流沙;天然保留可维持。
这套逻辑在 ChapterGuide.Describe() 里,是整个项目里最"啰嗦"但最值得的一段代码。

长文本去哪了

早期版本的界面非常拥挤——每个面板里塞满了规则说明,占了大量空间,沙漠反而被挤小了。
玩家反馈很直接:“无关的文字太多,边上一圈文字占据太多空间,必须在横屏手机上一屏内显示整个沙漠。”
于是我们做了一次彻底的信息分层:
信息类型去哪
动态状态(当前水、压力、进度)主界面常驻
短提示(下一步做什么)引导卡
长篇规则说明「查看规则」弹窗
比如洪水面板,原本有三段共 264px 的规则文字,现在压缩成一个按钮:
lua复制
lua
Button("查看洪水规则", function() self:ShowRules("洪水 · 调蓄规则", { { body = "低洼通道:6 → 16 → 26 → 36 → 46 → 47 → 48。水纹只沿这七格;防风绿带不是堤坝。" }, { body = "可选工程,不占地、不拆植被。容量24,最多截留1.5/秒……" }, { body = "洪水、调蓄水与生态水分账:未转入生态或生产库,不改善水预算……" }, }) end, false, { id = "floodRulesEntry", ... })
效果:横屏沙漠绘图区从 245px 涨到 279px(+14%)。

逐层揭示:让引导"看得见"

引导说"点这个按钮",但按钮可能在滚动区域外——玩家看不到。所以我们实现了逐层揭示:引导要指向某个控件时,先把它所在的所有滚动容器滚到能完整显示的位置,再让玩家点击。
这带来一个测试上的挑战:怎么验证"揭示后目标真的可见"?我们的做法是断言内到外的增量——从最内层滚动容器开始,逐层向上检查目标矩形是否完整落在每一层的可见裁剪区内:
lua复制
lua
local full = box.x >= clip.x - 1e-6 and box.y >= clip.y - 1e-6 and box.x + box.w <= clip.x + clip.w + 1e-6 and box.y + box.h <= clip.y + clip.h + 1e-6 V.assert(full, "引导逐层揭示保留完整目标高度:" .. widget.props.id)

一个被玩家骂出来的修复

上线预览后收到反馈:“点击方块区域,整个屏幕的列表会突然往上滚动。”
排查后发现,是"设施导航"功能惹的祸——点击地图上的设施图标时,代码会自动把侧栏滚动到对应工程卡片。逻辑本身没错(想让玩家立刻看到相关内容),但体感极差:玩家只是想点一下看看,结果整个界面跳了。
修复很干脆:点击只切页签、停掉惯性,绝不改变滚动位置。滚动只能来自玩家主动划动或滚轮。
lua复制
lua
-- 点击不滚动:只切换页签并停掉惯性;id 保留给调用方语义,不再用于定位滚动。 function View:FocusGuideTarget(tab, id) self:SwitchTab(tab) UI.Layout() local side = self.root and self.root:FindById("sidebarScroll") if side then side:SetState({velocityX=0, velocityY=0, isDragging=false}) end end
教训:"帮玩家滚动"是一种打扰。 导航可以,但视口位置是玩家的领地。

这一篇的教训

引导的目标不是告诉玩家所有规则,而是让玩家在想问"接下来呢"的时候,恰好看到答案。
这种差评说的都不是我的游戏都不能申诉成功么截图
这种差评说的都不是我的游戏都不能申诉成功么
这种文字和截图对不上(截图里根本没称号),而且这个截图也不是江湖侠客行的游戏截图,这么明显的恶意差评都不能申诉删评吗?Tap差评申诉到底是什么标准?@Tap官方
官方
1 赞
4 回复
关于太肝截图
关于太肝
我后面优化下数值
1 回复
开发者日志 05 · 六天之后 《绿洲涌现》
交出来的东西 GameJam 结束时,《绿洲涌现》的规模: 数量 游戏逻辑代码 约 6,300 行 Lua 模块数 20 个(含 4 个联网后台模块) 测试文件 24 个 断言调用点 867 处(运行时按数据展开为上万条检查) 已开放章节 2 章(锁住流沙 / 以水定绿) 功能上,玩家可以做这些事: 铺草方格固定流沙,种梭梭、柽柳等乡土灌木 让植被连成上风向防护带(2 格链 = 强防护,1 格 =
官方
轮回异常
这个游戏采用的是边玩边下载,所以你会在游戏中可能看到暂时的空白,因为图片和视频在加载中。 轮回异常源于对灵魂朴素的理解,如果人类死后是有灵魂的,那么人口增长的过程中,灵魂数会变多,那么灵魂怎么来?游戏中是地府制造,所以有一个灵魂到人间,那么死后就有一个灵魂回到地府,如果灵魂无法回归地府,则成孤魂野鬼,轮回就陷入异常。
官方
开发者日志 03 · 以水定绿
《绿洲涌现》开发日志 · 第 3 篇 让"有限"真的有限 "以水定绿"是治沙领域的一句行话:绿化的规模,要适应当地水资源的承载力。种得多不等于种得好——水供不上,苗全得死。 设计上最难的一点是:怎么让玩家真的感到水是有限的? 如果水只是一个缓慢增长的进度条,玩家很快就会忽略它。我们试过几种方案: 方案 问题 水无限,只限制种植速度 失去了"定绿"的核心张力 水会枯竭,用完就 Game Over 太
官方
开发者日志 02 · 把一千行拆开
警报:Simulation.lua 到 1000 行了 第 1 篇结尾提到,D6 结束时核心模拟文件已经超过一千行。当时的 Simulation.lua 什么都管:地块状态、水资源预算、天气推进、洪水、养殖试点、章节验收、存档校验——全塞在一个文件里。 这不是"能跑就行"的问题。真正的问题是:改任何一处都可能踩到别处。 举个当时真实发生过的 bug:我调整了水预算的计算顺序,结果章节验收的"全年非
官方
8月25号16:00更新
1.修复部分UI显示高度不够的问题 2.优化战场格子区域显示 3.活动关卡结束才扣次数 4.修复其他零碎BUG
官方
8 回复
开发者日志 01 · 从一块草方格开始
治沙功在当代利在千秋,我认为值得做一个游戏让更多的人知道。 它慢。一块草方格铺下去,要等风沙停下来,等灌木扎下根,等一个季节过去,才能看到一点点变化。它也不爽——没有一击必杀的快感,没有数值暴涨的反馈,甚至连"赢"都很难定义:把沙漠变绿不是目标,守住绿洲的边缘才是。 但正因为这样,它才值得做。GameJam 开始时我们定的第一条设计原则就是:不做"征服沙漠"的爽游,做"守住一条线"的经营模拟。 这
官方
5.16更新
1.暴击已经改回原来的算法 2.“浪哥”属性修复 3.秘境通关必定获得+1秘境石 4.炼丹翁价格调整 5.看完广告时“广告加载中。。。”的黑幕去除。
官方
2 赞
34 回复
游戏常规攻略
初始可以进群领个兑换码(群内也有攻略),这样你上手就有元宝可以去集市买珍品装备,一套橙装,基本可以爽打一阵。然后去侠客行探索一次,江湖行副本首通有装备奖励,群英会可以打到秘籍和装备,兵器谱主要是掉落饰品,把能打的都打了,然后去侠客行把体力用完,可以在驿站切换城市领取奖励,然后加入门派,门派主要就是可以买丹药加属性,银两的主要用处。 玩家兵器谱可以买到韧性丹药。中后期开始,主要就是挂机,然后银两去门
官方
4 回复