# nomanssky2D **Repository Path**: MagicHackerTeam/nomanssky2D ## Basic Information - **Project Name**: nomanssky2D - **Description**: 无人深空 宇宙生成技术 、随机生成技术、过程生成技术 简单模拟。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2016-09-07 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #nomanssky2D 本人用H5简单的模拟了一下无人深空所用到的随机生成技术和过程生成技术,在实现这个DEMO的过程当中也明白了一些道理,另外在算法方面的知识也得到了提升。 在无人深空发售之后,我看到了很多对无人深空进行剖析的各种文章、帖子,这些帖子的作者有懂技术的玩家也又不懂技术的玩家,也有资深的游戏玩家。在我看了这些高人的见解之后,作为开发者我决定亲自"会一会"这个神奇的算法游戏的技术。 其实整个宇宙是随机出来且是固定的,但每一个星团星系的位置都是固定的都有绝对标识和坐标。所以我们在无人深空中可以将其命名并且上传到服务器上。 整个无人深空的所有的内容物体均是由一坐标种子随机生成出来的,但是这个随机不是正真意义上的随机,而是伪随机,有一定的规则包含在里面。 其实无人深空的动物系统做的并不是很好,还有星球太过于单调,很显然是个半成品,作为H5的开发者来说,像这种半成品的算法游戏,如果我想,我一个星期就可以做到差不多的效果。 接下来说说我开发的DEMO的一些情况: 整个开发时间不超过48小时。 首先说明一点,整个无人深空所使用的技术的原理和我这个DEMO几乎是一毛一样的,从宇宙的生成到星系的生成再到星球颜色的生成等等。 本DEMO理论上有3.13*10^30个星团,每一个星团有150个恒星系,每个恒星系平均有7个行星。 也就是有3.29*10^32次方个星球,这一点上可能和无人深空有点出入,说实话我并不知道我这个数字更大 还是无人深空的数字更大,尴尬 - -~。 镜头和宇宙分离,镜头中宇宙固定区域的渲染技术 采用了大家耳熟能详的过程生成技术,可以使用WASD无缝穿梭整个宇宙。 基于html5 canvas 2D API 绘制出来的,没有使用任何第三方canvas游戏引擎,所有代码纯手工手写,所有核心代码不超过600行。 目前版本实现了整个宇宙星图的渲染,简单的恒星系统渲染(公转速度、颜色、大小、轨道半径)。 操作方法: 键盘 : W A S D (分别代表 上左下右) 鼠标:双击星点进入恒心系统。 体验地址 : http://zxlb.tiesec.org/noMansSky2d/