_ _ __ __ ____ _
| \ | | ___ | \/ | __ _ _ __ ___/ ___|| | ___ _
| \| |/ _ \| |\/| |/ _` | '_ \/ __\___ \| |/ / | | |
| |\ | (_) | | | | (_| | | | \__ \___) | <| |_| |
|_| \_|\___/|_| |_|\__,_|_| |_|___/____/|_|\_\\__, |
|___/
《无人深空》是一款以太空探索冒险生存为主题的游戏。游戏中理论上有18,446,744,073,709,551,616颗星球可以供玩家探索,几乎可以看做是无限大。同时因为游戏是使用算法生成星球,所以游戏本身体积不大,而且可以完全离线游玩。
目前线上的交流社区比较活跃的是百度的贴吧:无人深空贴吧
在无人深空发售之后,我看到了很多对无人深空进行剖析的各种文章、帖子,这些帖子的作者有懂技术的玩家也又不懂技术的玩家,也有资深的游戏玩家。在我看了这些高人的见解之后,作为开发者我决定亲自"会一会"这个神奇的算法游戏的技术。
其实整个宇宙是随机出来且是固定的,但每一个星团星系的位置都是固定的都有绝对标识和坐标。所以我们在无人深空中可以将其命名并且上传到服务器上。
整个无人深空的所有的内容物体均是由一坐标种子随机生成出来的,但是这个随机不是正真意义上的随机,而是伪随机,有一定的规则包含在里面。
其实无人深空的动物系统做的并不是很好,还有星球太过于单调,很显然是个半成品,作为H5的开发者来说,像这种半成品的算法游戏,如果我想,我一个星期就可以做到差不多的效果。
整个开发时间不超过48小时。
首先说明一点,整个无人深空所使用的技术的原理和我这个DEMO几乎是一毛一样的,从宇宙的生成到星系的生成再到星球颜色的生成等等。
本DEMO理论上有3.1310^30个星团,每一个星团有150个恒星系,每个恒星系平均有7个行星。 也就是有3.2910^32次方个星球,这一点上可能和无人深空有点出入,说实话我并不知道我这个数字更大 还是无人深空的数字更大,尴尬 - -~。
镜头和宇宙分离,镜头中宇宙固定区域的渲染技术 采用了大家耳熟能详的过程生成技术,可以使用WASD无缝穿梭整个宇宙。
基于html5 canvas 2D API 绘制出来的,没有使用任何第三方canvas游戏引擎,所有代码纯手工手写,所有核心代码不超过600行。
目前版本实现了整个宇宙星图的渲染,简单的恒星系统渲染(公转速度、颜色、大小、轨道半径)。
另外在实现这个DEMO的过程当中也明白了一些知识和真理,另外在算法方面的知识也得到了提升。
键盘 : W A S D (分别代表 上左下右) 鼠标:双击星点进入恒心系统。
http://case.tiesec.org/noMansSky2d/
源码可以直接下载下来研究。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型