开个新坑了,分享一个手游开放大世界的解决方案,也算是我开发研究了一年多的结果吧。之前项目需要,做了一整套的手游开放大世界解决方案,这里做一个总结归纳,将所需要的技术栈和解决方案等汇总。
这篇文章只是起头一个目录,后续更新了具体内容会补充链接到这里。
项目介绍
在介绍技术栈之前,需要先了解下项目需求(因为有不少方案都是基于需求而定制的)。我们这个项目是一个海洋主题的项目,整个大世界是由一片大洋和星罗棋布的岛屿组成。最大的岛屿占地 2048*2048 米,最小的岛屿占地 256*256 米,整个世界大大小小岛屿总量约 1万。评估下来,总世界面积超过 4000 平方公里,总陆地面积约 922 平方公里。
其中,岛屿有上岛玩法,即玩家可以扮演一个 NPC 登陆游玩,类似 RPG 游戏,可以进行解谜、战斗、探索等。玩家岛屿固定大小,可以在地图上迁移。整个大世界需要网络同步,同服设计人数上限为 5000 。
在岛屿设计上,需要做到 “千岛千面” ,各个岛屿需要根据气候、文明等游戏设定进行变化。玩家可以驾驶船只在大世界航行,在各个岛屿之间进行探索。
总体来讲,就是 MMORPG+开放大世界+SLG,可以说是难度相当大的。基于需求,我计划了一整套解决方案(当然也有依据项目定制的),在理论上可以实现上述要求。
技术栈整理
渲染
- GpuTerrain(RVT):开放大世界的 GpuTerrain + RVT-CSDN博客
- GpuDriven 海量静态物体渲染:GPU驱动的大规模静态物件渲染-CSDN博客
- Dots + Gpu Instance:基于 Dots + GPU Instance 的大规模物体渲染-CSDN博客
- 移动端草海系统:【Unity】移动端草海解决方案-CSDN博客
- 大规模特效解决方案:海量粒子特效解决方案:VEG-CSDN博客
游戏逻辑
- 数据结构、流式加载方案:开放大世界的数据管理-CSDN博客
- 碰撞方案:开放大世界的碰撞与物理-CSDN博客
- SLG寻路方案:开放大世界的全局寻路-CSDN博客
- RPG寻路方案:基于SDF的碰撞和寻路-CSDN博客
- 网络同步方案:开放大世界千人同屏网络设计-CSDN博客
-
大量单位的管理,AI、GPUSkin
开发流水线
- 游戏场景生产开发流程:场景生产流程的环节-CSDN博客
- 工程结构以及开发流水线:什么是游戏开发流水线?以及我们为什么需要他?-CSDN博客
- 以白模为基础的开发流程:开放世界的开发利器:白模-CSDN博客
- 基于 Houdini 的程序化生产管线
其他
- 负反馈性能调节系统:负反馈性能调节系统-CSDN博客
- 调试工具
-
自动化测试与预计算
由于技术水平有限,所以有的方案并不具备通用性,也不是最佳方案。欢迎大家探讨更好的解决方案。