下载 App
宇宙的游戏开发者日志
修改于10/145 浏览
一部单机文明模拟。从一颗沉寂的海洋星球开始,看大陆隆起、生命萌发,
直到第一批先民踏上河岸——此后,世界的故事交由你续写。
开发过程技术上的一点事:
全程序化低多边形场景里没有一张外部模型贴图。房子、陶罐、栅栏、船、雪松,全部由引擎基础形状与程序化几何生成,颜色来自共享 PBR 色板,地表纹理也是程序化色纹。这带来一个好处:换文明 = 重建场景,五片土地可以各有各的样子,而资源体积很小。人物:从 76 个部件到 1 个光点早期每个村民由 76 个模型拼成(脸、发、衣褶、四肢……)。很精致,但代价是:同屏只能显示 30 人。后来我们把人物改成了发光的光点:一人一个模型。颜色按文化区分,亮度按年龄、大小按成长阶段。结果是:同屏从 30 人变成 100 人,而绘制批次从 1240 降到 143。远看是一片流动的星光,近看能分辨族群与老少。这一周:性能攻坚这周主要在解决卡顿,过程挺典型,记下来给同路人:症状一:阶段切换时画面一顿、声音断续。一开始我们怀疑是渲染批次太多,查下去发现城市场景只有 176 批(很健康)——真正的大头是碰撞查询。人物的导航图重建是"全对全"的:140 个路点两两检查是否可达,共 9730 次;而每次检查又要把 210 个建筑障碍全扫一遍。累计约 200 万次线段测试,卡在一个帧里。修法很直接:给障碍建均匀空间网格,每次查询只测邻近格子。阶段切换的单帧耗时从 25ms 降到 15ms。症状二:10 倍速时声音爆音。查出来是倍速被同时乘给了两个地方:CityScene.Update(dt * speed) -- 10 倍速 = 人物每帧走 10 步
模拟加速是合理的,但把 3D 场景的推进也放大 10 倍就失控了——单帧冲到 60ms,音频缓冲直接被饿死。修法是把场景推进与倍速解耦:倍速只加速世界演化,人物动作保留一个合理上限。10 倍速的帧成本降了约 40%。
现在的状态
- 五类文明、完整时代阶梯、9 种灾害、聚落网络、关系网、事件账本 —— 已实现
- 序章、星球视角、3D 聚落场景、13 个 UI 面板、存档 3 槽 —— 已实现
- 四季 / 昼夜 / 天气 / 森林演替 / 气候漂移 —— 已实现
- 议会投票、婚礼、遗产分配等治理细节 —— 文字设定,尚未执行
下一步
- 让高阶段的聚落网络真正"像一座城"
- 把制度从"文字"推进到"能玩"——让议决、法令、继承真的影响世界
- 继续压性能,让更多人口在手机上流畅运行











