下载 App

《元素兄弟》开发日志03

8 小时前2 浏览
#聚光灯gamejam开发者日志 《元素兄弟》的战场上会同时出现六把武器、元素反应、掉落物和伤害反馈。随着效果叠起来,手机需要处理的画面工作量也会增加。因此我把性能设置做成了三个明确档位,并把帧率上限、环境氛围和伤害飘字单独开放给玩家调整。

每个档位具体改了什么

当前的默认预算是:
  • 省电:30帧上限,画布像素比例最高0.85,同时存在的装饰粒子最多100个,默认关闭环境氛围特效。
  • 均衡:60帧上限,画布像素比例最高1.25,粒子上限260个。
  • 精致:60帧上限,画布像素比例最高2,粒子上限600个。
这里的帧率是绘制上限,实际帧率仍取决于设备和运行环境。档位还会限制命中装饰和文字数量,让预算落到实际绘制对象上。玩家可以先选一个档位,再独立调整30/60帧、氛围特效和伤害飘字,这些选择会保存在设备本地。
切档时还会立即裁掉超出新预算的既有粒子,避免满屏效果已经造成压力,选了省电后还得等旧粒子自然消失。这个处理让新预算能在当前场景生效,玩家可以直接观察切换前后的画面变化。
TapTap
图1:V16开发阶段的浏览器横屏验证截图,设置为省电、30帧上限,环境氛围和伤害飘字关闭。截图保留当时版本的界面状态。

绘制频率与战斗计算分开处理

调整画面时,我需要保证移动、攻击和冷却仍按统一的时间步长计算。当前战斗更新使用60Hz固定步长,绘制按玩家选择的上限调度。自动检查对比了30帧和60帧绘制条件下的战斗更新次数。
大厅等空闲状态也有限帧处理,隐藏页面停止绘制。省电档降低的是画布像素量、装饰粒子和氛围效果,敌人、弹道及危险提示继续保留。关闭伤害飘字后,治疗、闪避、破盾等战术反馈也保留,避免玩家丢失重要事件的信息。
粒子缩减还有一个实现细节:这段生成流程保留原有的随机数消耗顺序。否则画质不同,后续战斗使用的随机序列也可能发生偏移。相关检查会同时核对粒子数量限制和随机数调用次数。

设置本身也要在手机上能用

性能开关放在设置面板里,内容区域可以滚动,完成按钮独立留在底部。战斗中打开设置会暂停,关闭后按原来的游戏状态返回。切换档位、再做自定义调整、重载页面后重新检查,是这轮浏览器验证的一部分。
TapTap
图2:V16桌面浏览器开发截图。均衡档使用60帧上限,环境氛围和伤害飘字可以分别控制。图中也能看到设置内容区与固定底部按钮的布局。
在667×320的测试视口里,省电画布为567×272,显示区域仍保持667×320;相机范围没有跟着缩小。设置面板没有横向溢出,自定义选项在重载后也能恢复。
现阶段的验证记录覆盖了渲染预算、战斗步长和浏览器操作,还没有低配置手机长时间运行的帧率、温度与耗电数据。我希望后续收到的性能反馈能附上设备型号、所选档位和明显卡顿的波次,尤其是首领战、元素反应密集时的表现,这样才能继续缩小问题范围。