在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:nomanssky2D开源软件地址:https://gitee.com/lisniuse/nomanssky2D开源软件介绍: _ _ __ __ ____ _ | \ | | ___ | \/ | __ _ _ __ ___/ ___|| | ___ _| \| |/ _ \| |\/| |/ _` | '_ \/ __\___ \| |/ / | | || |\ | (_) | | | | (_| | | | \__ \___) | <| |_| ||_| \_|\___/|_| |_|\__,_|_| |_|___/____/|_|\_\\__, | |___/ 一、前言无人深空(NomansSky)是什么:《无人深空》是一款以太空探索冒险生存为主题的游戏。游戏中理论上有18,446,744,073,709,551,616颗星球可以供玩家探索,几乎可以看做是无限大。同时因为游戏是使用算法生成星球,所以游戏本身体积不大,而且可以完全离线游玩。 目前线上的交流社区比较活跃的是百度的贴吧:无人深空贴吧 项目起因:在无人深空发售之后,我看到了很多对无人深空进行剖析的各种文章、帖子,这些帖子的作者有懂技术的玩家也又不懂技术的玩家,也有资深的游戏玩家。在我看了这些高人的见解之后,作为开发者我决定亲自"会一会"这个神奇的算法游戏的技术。 其实整个宇宙是随机出来且是固定的,但每一个星团星系的位置都是固定的都有绝对标识和坐标。所以我们在无人深空中可以将其命名并且上传到服务器上。 整个无人深空的所有的内容物体均是由一坐标种子随机生成出来的,但是这个随机不是正真意义上的随机,而是伪随机,有一定的规则包含在里面。 其实无人深空的动物系统做的并不是很好,还有星球太过于单调,很显然是个半成品,作为H5的开发者来说,像这种半成品的算法游戏,如果我想,我一个星期就可以做到差不多的效果。 接下来说说我开发的DEMO的一些情况:整个开发时间不超过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/ PS:源码可以直接下载下来研究。 |
请发表评论