11 Star 28 Fork 6

无鞘之刃 / nomanssky2D

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT
 _   _       __  __                 ____  _          
| \ | | ___ |  \/  | __ _ _ __  ___/ ___|| | ___   _
|  \| |/ _ \| |\/| |/ _` | '_ \/ __\___ \| |/ / | | |
| |\  | (_) | |  | | (_| | | | \__ \___) |   <| |_| |
|_| \_|\___/|_|  |_|\__,_|_| |_|___/____/|_|\_\\__, |
                                               |___/

一、前言

无人深空(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:

源码可以直接下载下来研究。

The MIT License (MIT) Copyright (c) 2016 无鞘之刃 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

无人深空 宇宙生成技术 、随机生成技术、过程生成技术 简单模拟。 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/lisniuse/nomanssky2D.git
git@gitee.com:lisniuse/nomanssky2D.git
lisniuse
nomanssky2D
nomanssky2D
master

搜索帮助