Unity手游开放大世界解决方案

ops/2024/10/18 7:51:48/

        开个新坑了,分享一个手游开放大世界的解决方案,也算是我开发研究了一年多的结果吧。之前项目需要,做了一整套的手游开放大世界解决方案,这里做一个总结归纳,将所需要的技术栈和解决方案等汇总。

        这篇文章只是起头一个目录,后续更新了具体内容会补充链接到这里。

项目介绍

        在介绍技术栈之前,需要先了解下项目需求(因为有不少方案都是基于需求而定制的)。我们这个项目是一个海洋主题的项目,整个大世界是由一片大洋和星罗棋布的岛屿组成。最大的岛屿占地 2048*2048 米,最小的岛屿占地 256*256 米,整个世界大大小小岛屿总量约 1万。评估下来,总世界面积超过 4000 平方公里,总陆地面积约 922 平方公里。
        其中,岛屿有上岛玩法,即玩家可以扮演一个 NPC 登陆游玩,类似 RPG 游戏,可以进行解谜、战斗、探索等。玩家岛屿固定大小,可以在地图上迁移。整个大世界需要网络同步,同服设计人数上限为 5000 。
        在岛屿设计上,需要做到 “千岛千面” ,各个岛屿需要根据气候、文明等游戏设定进行变化。玩家可以驾驶船只在大世界航行,在各个岛屿之间进行探索。
        总体来讲,就是 MMORPG+开放大世界+SLG,可以说是难度相当大的。基于需求,我计划了一整套解决方案(当然也有依据项目定制的),在理论上可以实现上述要求。

技术栈整理

渲染

  • GpuTerrain(RVT):开放大世界的 GpuTerrain + RVT-CSDN博客
  • GpuDriven、HizCull
  • Dots + Gpu Instance
  • 多线程草海系统
  • 大规模特效解决方案

游戏逻辑

  • 数据结构、流式加载方案
  • 碰撞方案
  • 寻路方案
  • 网络同步方案
  • 大量单位的管理,AI、GPUSkin

开发流水线

  • 工程结构、资源导出、管理流程
  • 以白模为基础的开发流程
  • 基于 Houdini 的程序化生产管线

其他

  • 负反馈性能调节系统
  • 调试工具
  • 自动化测试与预计算


        由于技术水平有限,所以有的方案并不具备通用性,也不是最佳方案。欢迎大家探讨更好的解决方案。


http://www.ppmy.cn/ops/94197.html

相关文章

c++割圆法求圆周率

前言 上期的Python(加了turtle 所以带图片)割圆法点赞数量感人 但洛谷那期已经让我飞了 于是我准备掉点头发 以五升六之躯硬刚初三 这期请教了大量的高年级同学 把这个要用到九年级知识点的割圆法搞出来了 不要怕难 像我这样的xxs也能看懂 先声明 割圆法不一定要用循环 …

Python入门基础知识总结

这篇文章总结了Python入门的一些基础的知识点,如果你从未接触过编程,这篇文章可以帮助你很好地了解相关的内容;如果已经学过至少一门编程语言,你可以借此快速地上手Python。 总体框架 输入输出函数注释和缩进变量与常量基本数据…

科研绘图系列:R语言多分组箱线图(grouped boxplot)

介绍 分组箱线图(Grouped Boxplot)是一种用于展示不同组别数据分布情况的统计图表。它将箱线图(Boxplot)按照不同的类别或组别进行分组,使得可以同时比较多个组别的数据特征。 箱线图本身是一种标准化的显示数据分布的方法,它能够展示数据的中位数、四分位数以及异常值…

玩转 JavaScript 反射(Reflect)

引言 反射的基本概念及其在JavaScript中的作用: 反射其实就是一种编程的概念,它存在于很多现代编程语言之中:Java ,C#等等,它允许程序在运行时检查和修改其自身的结构和行为。 在 JavaScript 中,通常通过…

Apache-JMeter压测工具教程

下载安装 《JMeter官网下载》 下载完成后,找个文件夹进行解压 配置环境变量 JAVA_HOME(如果是JAVA8还需要配置CLASSPATH)、JMETER_HOME JMETER_HOME修改bin目录下的jmeter.properties文件编码为UTF-8 5.6.3这个版本encoding已经默认为UT…

【git】gitee 提交错误,如何回退

文章目录 查看提交记录设定退回到位置提交 查看提交记录 git log git log如下图所示共2次提交记录 最近一次是错误提交(笔者提交是在错误的工作路径上传了) 设定退回到位置 git reset --hard hash值 git reset --soft 83fcc380d5250599eca********…

前端框架(三件套)

学习网站 HTML 系列教程&#xff08;有广告&#xff09; HTML&#xff08;超文本标记语言&#xff09; | MDN (mozilla.org)&#xff08;英文不太友好&#xff09; 1.HTML5 & CSS3 1.1HTML5表格 <!DOCTYPE html> <html lang"en"> <head>…

【算法速刷(7/100)】LeetCode —— 200.岛屿数量

这题是典型的深搜题&#xff0c;只需要额外记录每个格子是否被搜索过&#xff0c;然后挨个进行陆地的深度搜索即可。&#xff08;如果要使用lambda进行递归&#xff0c;需要显式指出变量的模板类型&#xff0c;不能使用auto推导&#xff09; int numIslands(vector<vector&…