-1.编者按
感谢会员@有猫的尾巴的帮助与原作者取得了联系,如需转载此文请务必联系原作者。
《无人深空》预购现已开启。
长文预警,此文怒长。
0.前言
不久之前我有幸联系到了游戏开发团队中的一员。他向我展示部分游戏实际内容(未对外展示的视频等)。有些认识我的朋友也都知道了这件事,我也就不多说了。有些人可能会好奇我为什么能够联系上官方,实际上,只要你敢于写电邮去联系官方,展现出你的诚意,官方还是会给予你一些你可能想象不到的独特待遇。比如说,我联系上的这位员工还送了我一份游戏(掩面逃x),并细心解答了我不少问题。只要你敢于去尝试,而不是去质疑那些迈出了步子去尝试的人。总会有收获的。(话说我之前也是这么勾搭上了re-logic的)
但在贴吧,我看到有不少人对这个游戏 18,446,744,073,709,551,616 颗星球(1840亿亿)的说法表示怀疑,并对其产生机制发出了疑问。
为此,我想对此写一篇文章,为大家讲诉这个奇特的算法是怎样实现这一步的。
同时,作为福利,我还将把部分我向作者咨询的问题得到的回复,在末尾与各位分享。
注意:本人不代表官方,不接受私聊咨询。此文也为中立文,不安利游戏(本文主体为科普算法),也不讨论游戏。各位回复的时候请尽量不要发表撕逼言论(包括黑游戏、预言游戏未来、黑其他同类游戏等等等)。回复时请文明探讨,不要发嘲讽,尽量用敬语。
1."宇宙"是怎么产生的?
为了解释这个问题,我将用比较通俗的方法来为大家讲述“过程算法”。不一定是非常严谨的科学语言,但作为科普文,我希望能让更多的人看懂。因此专业人士请手下留情。
现在,请先让我们回忆起那个神秘的无理数—— π:3.141592654....
我们把这个数字按位/格子写在一条很长很长的纸带上。
为了便于理解,请先想象/认为宇宙是"一维"的,各个星球是排列在一条线上的。数学知识告诉我们这个无理数是无穷的,如果我们为这个数字加上几条规则:
- 遇到1时,代表这是个恒星。
- 遇到2时,代表这是个行星。
- ..............以此类推
那么此时,我就产生了一个“一维”的宇宙。而且由于π的各个位的数字并不是按规律排列的,因此你会感觉这个"宇宙"似乎是随机的。
但我们都知道π是个定值,也就是说此时生成的这个宇宙并不是完全随机的。它就在那里,并不会因为你每次开启游戏都要实时模拟出一个真的宇宙。
现实中,宇宙是个多维的。因此,我们现在可以为这条"纸带"多拉出几个方向(上下左右前后任意组合),并进行任意数字有规律叠加。同时也为它制定一系列复杂得多的规则,于是一个完全有几条"纸带"构成的看似随机的宇宙诞生了。而你的电脑里却不过是记录了一些简单的数据。
专业点来说,开发者们通过一些复杂的"函数"创建了这个多维的数组("纸带集合")。这就是这个游戏宇宙的生产办法。(要知道计算机求π的计算式子是π=16arctg1/5-4arctg1/239 ,也是一个函数)
总结一句:18,446,744,073,709,551,616个星球看似很多,但并不占什么数据量,只不过是一些可由计算获得的数据,通过一系列形成规则,构成了这个看似无限的游戏宇宙。正如你不需要完全记忆π一样,这么多星球的数据也并不要完全存在硬盘里,你只需要知道怎么计算它,并在需要的时候算出来就行。至于怎么算...往下看:
或许你可能仍有疑问。但是别怕,请接着往下看。
我看到有人质疑,我的硬盘放得下这么大的宇宙么?
我要告诉你,可以的。实际上你的电脑里只存放了一个类似 Ta=a(1-sinθ) 和 x2+y2-a×x=a×sqrt(x2+y2)这样的式子(实际上会更复杂),你每次遇到的星球,不过是CPU为这个式子带入一个值,计算后获得的相关数据。比如 0x135486754(代表了这是个靠近恒星的沙漠星球以及有小型植物等等等)。
又有人会发问,我的CPU来得及计算这么大的数据么?
我要告诉你可以的。具体的过程简单一两句话说不清,但是要知道,官方给出的最低配置是i3。
还有人问,这么多的星球,怎么确保它会和其他的星球不一样,生物长相怎么模拟?
同样的道理,开发者既然有办法写一个函数就一定有另外一个方法写另外一个函数。
开发者预置了不少的贴图,并如上赋予了不少的规则。如
- 遇到1代表这个生物高2m
- 遇到2代表这个生物的嘴型是数据库里编号为0x75的那张贴图
- .............
实际方法会很复杂,但是实现原理大致如上。
再一点,学过计算机的都会对计算机得到 18,446,744,073,709,551,616 以及运算这样一个复杂的函数的能力表示质疑,一是怀疑内存不够,二是担心计算能力不足。
关于第一个问题:
同样再次假设宇宙是一条"纸带",星球依次排列。假如在你的视野内,你可以看到5m长的纸带,那么你的内存也只需要保存着5m长的纸带,5m之外的纸带虽然依旧存在,但你并不需要记忆它们,因此实际上你并不需要记录那么多的星球。当你的飞船移动,你就把纸带移动,你可以看到后面的一部分纸带而把你身后那些已经看不见的纸带"遗忘"。
这就是"过程生成"。
关于第二个问题:
我们再举个例子,当你查英语字典的时候,如果你要查 bull 这个单词,你会先去查目录,然后从B开头的单词查起,而不会从 A 开头的单词查起。A/B 之分实际上就是一种标签(tags)。
同样的道理,每次你模拟这个宇宙,你并不需要从 3.14159 开始往下运算,只需要查明你当前的位置,通过预定在函数中的标签,只计算5m长的纸带就好了。因此看起来运算量很大,实际上并不复杂。这也就是为什么游戏敢于给出i3最低配置的原因
PS:这部分暂时就这些,有什么没懂得或者想问的留言吧。
刚刚有人问了,这样随机组合,到时候会不会重复度很大?
我个人看的内部视频感觉其实还好,因为贴图是矢量图,且背后有一定量的复杂设定(变形、上色、纹理等等)作为依靠,实际演示的时候制作人告诉我刚刚那只恐龙和那条鱼用了一样的身体,我是完全没看出来的==。《孢子》游戏里也并不是有着无穷的生物组件,但通过相互间的组合创造,也弄出了数不清的奇特生物。所以我们有理由相信这个游戏里的生物的相似度也并不会太高。
但你非要模拟出 180000 亿个完全不同的星球换我我都不信。毕竟158块,158块买个真实宇宙这种事...再等几百年看看吧.....
对了小声说一句:说到实际效果,我感觉非常不错。对喜欢这个配色的玩家来说简直一颗赛艇。从出宇宙到入星球,每到一个地方都有一种期待感。——个人观点,选择性忽略。
2.我的系统可以玩么?
最低配置:
操作系统: Windows 7
处理器: Intel Core i3
内存: 8 GB RAM
图形: nVidia GTX 480
存储空间: 需要 10 GB 可用空间
结合我刚刚所说的,这样的最低配置需求是完全合理的。
内存占有率低不代表不要内存,毕竟游戏贴图和实时运算还是要空间的。这么多的贴图和渲染,讲真GTX 480已经很低了。
至于你说画面不好啥的...大概你不适合这个画风,还是别买这个游戏比较好。
3.游戏会有中文么?
遗憾的是,我所了解的情报是预定的9种语言中没有简体中文。但这只是个计划,不一定在3个月后还是这样,当我问及有没有计划推出简体中文的时候,他告诉我,这取决于业绩,我们希望这个游戏能像GTAV一样在中囯获得成功,因此我们为中囯区独立设置了价格。
我再继续追问的时候,他用了一个短句回答了我:happened to know..:)
PS:言外之意你们猜吧....
PPS:毕竟只是个工作室,有些事情还是得靠索尼决定的。话说太死,万一到时候索尼不要脸,强行被打一波脸岂不是不好?三上真司同学就是个很好的例子QAQ。
4.我可以在游戏中玩到什么?
就我看到的实机演示来看,基本上都已经做到了。有一些 点 没看到的也可能是没演示到。总之个人感觉还行...还是那句话,158块的东西,别希望它能上天。玩游戏买个乐就好。
懒得看网址的看这里:
生命的数量
大多数星球没有生命迹象.据估计,90%的星球不存在任何形式的生命, 剩下的10%的星球中的90%的生命形式是无聊且原始的.这意味着那些生存资源丰富,有各种形态生命的花园世界将会更加稀有而且有价值.
生物与动物
动物是经过用程序生成的(贴图材质的程序生成可以缩小文件大小).游戏中有大型生物.不是所有的生物都是温和的,可能有可以一击杀死你的动物出现在更加深入的游戏过程中. 抹除一整个物种不会有奖励, 但是也不会限制你这么做. 如果你是第一个发现这个生物的人, 你可以命名这个生物. 作为默认, 生物们会有一个系统生成的名字. 生物不能被驯服或者当做宠物(楼主在最近的采访中听到貌似可以在陆地上骑动物,并不肯定).
基地建造
你并不能建造基地
蓝图
为了制造新的科技物品, 你需要拥有蓝图和相应的资源. 蓝图可以在很多地方找到, 比如:水下,洞穴和坠落的飞船.你也可以从商人NPC那里买到蓝图.通过发现更好的蓝图,你能够解锁新的制造组件.这可以让你不需要购买新的装备,而升级你现有的衣服,飞船和武器.
制造系统
你只有通过得到蓝图,才能制造物品.而蓝图在宇宙的更深处会有更先进和有用的蓝图.制造需要消耗资源,资源通过采矿和交易获得.制造用的组件和货物一样占用你的运输空间, 你需要决定哪个更加重要.
危险
在NMS中,有着各种各样的危险.有的星球有着有毒的大气,如果你的太空服没有升级,那么你会受到伤害.游戏中有星球上的生物具有攻击性.有的生物会被激怒.当你在太空中飞行的时候,可能会受到海盗的攻击.如果你攻击了货船或者太空站,他们同样会攻击你.同样,星际中拥有星际警察.难度会随着你越往宇宙中心进发,而越发困难.
日夜循环
一个星球上的一天的时间取决于该星球的位置, 而星球的自转和附近的恒星有关系.当星球自转时,时间会随之改变.(突然想到了小王子!). 日夜交替并不是人工设定好的, 是在游戏过程中计算得出的.
死亡
当你死亡时,你会损失所有你未上传的发现和你身上的资源.你不会损失Units(货币)和升级的服装.如果你死在了飞船中,你会损失运输空间内的所有东西.你会在一个基础的生命舱中复活,里面会有所有你在游戏开始得到的东西.如果你死在了地面上,你会在飞船旁复活.你永远都不会被强制从头开始.依据宇宙的规律,越接近宇宙中心,你就越难回迁,但是并非不可能.
发现
你会在飞过恒星系统时发现他们,一旦你发现这个恒星系统而且是第一个发现,你会因此而获得奖励.你会在飞进星球大气层时发现他,奖励机制同上.你会在扫描到生物时发现他们,奖励机制同上.你只有在信标处上传你的发现后,才会给予奖励.越危险或者越稀有的发现,将会给予你更多的奖励.当别人经过你的发现时,他们会看到你的名字.
地球
地球不在这个游戏中
派系
在NMS中, AI将会拥有派系.派系是由程序生成的,和他们在宇宙中的数量有关系. 然而,他们仍然会在宇宙中占据很大一块地方. 派系的好感度可以通过这些方法提升: 击毁敌人的飞船, 同NPC进行交易或者帮助他们防御海盗的进攻. 关于你和派系间的关系的改变没有任何提醒. 当你和某个派系有很好的关系时, 你可以请求僚机护航. 当你和派系有很好的关系时, 你会从NPC那得到更好的奖励.
飞行
在星球间飞行和穿梭于大气层只需很短的时间.你可以手动地从一个恒星系统飞到另一个恒星系统,但是会消耗很长一段时间.你可以在恒星系统外一直飞行. 你有可能会飞过银河的"边缘". 飞船并不能水下飞行, 除非你想坠毁. 飞行是很"简单的", 相对于飞船的跃迁来说.
星际地图
星际地图是NMS中重要的导航方式之一. 当你缩小到最小时, 你可以看到整个宇宙, 中间有一个"令人难忘"的黑洞. 在下一个缩放级别中,玩家可以在星球之间飞行, 如果该星球被发现过, 那么你可以获得相应的信息. 最大一级的缩放让你可以观察一个星球, 如果该星球被发现过, 星球上的遗迹点会出现.每过一段时间, 星星会闪烁. 这表明玩家有了新的发现. 将会有小地图在星际地图中出现, 开始时是没有小地图的, 开发者在测试中意识到我们需要小地图.
宇宙的形状
整个宇宙看起来像"一个被微微压扁的球".
语言
在NPC居住的星球上面,他们说外星语言.在与NPC交流之前,你不需要了解这门语言.你可以尝试一些不同的选项,然而你需要很谨慎,因为某些行为会让NPC讨厌你.你可以通过发现"罗塞石"--一种庞然大物来学习语言.一旦你和巨石有了互动,那么你会开始慢慢理解这门语言里的某些单词.这会让你能更好地与NPC交流.有时,你可以发现一些有用的NPC来帮你学习语言.如果你能够很好的理解这门语言,当你与NPC互动时,你可以更好地选择说什么.未学习的单词会像乱码一样显示出来.
本地储存和线上储存
NMS中有两个地方可以储存数据,一个是本地,另一个是线上. 线上只会储存重要的数据,例如:生物和星球的命名和空间站的损毁.地形的变化会在本地储存,不然数据过于庞大.(臣妾做不到啊!)
多人游戏
这游戏有多人游戏的特点, 但是并不会影响到游戏本身. 游戏的离线模式会与多人模式有完全相同的体验.朋友会在星际地图上显示. 你可以看到其他玩家. 你只能同时看到一小部分玩家. 当一大堆玩家出现在同一个地方时 , 你只能看见他们其中的几个. 朋友并不会因为是朋友而会被显示(即朋友没有优先级). 游戏中玩家间没有PVP和交易.
离线模式
在NMS中将会有离线模式,当你在离线模式时,你不能看到别人的发现.当你上线时, 任何你的发现都会上传.
星球
星球是"星球大小的"!星球间的距离比现实中要短很多.一个星球是否有水, 取决于他到恒星的距离.大气的颜色取决于大气中的元素.某些星球是有毒或者有放射性的.每一个星球都有一个普遍的生物群落和天气类型, 这个特性会鼓励玩家探索. 没有巨型气体星球的存在, 每一个星球都能行走. 某些星球会有环带在他们周围.
星球的资源
宇宙中有很多荒凉的星球, 但是这些星球通常有很多资源. 一个星球通常只有一个类型的资源, 其他资源仅有很少一部分. 元素能被合成化合物, 可以用来升级或者出售.
星球的建筑
星球上可以找到建筑, 而且可能有成群的建筑, 但是并不会有很大的建筑.(开发者说:"类似于星战3里的那样").
玩家的战斗
玩家的多功能枪可以被当做武器使用.不同的升级方向可以让枪提高伤害或者伤害类型.飞船与此类似,不同种类的武器可以造成不同类型的伤害.镭射擅长熔化金属,等离子擅长对船体造成伤害.这两种是目前已知的主要的武器类型,不排除其他类型的可能性.
传送门
传送门可以让你到更中心的星球.你不能乘飞船通过传送门. 你应该在传送门另一端尽可能多的收集资源, 然后安全的返回. 每一个传送门需要一个不同的武器或者武器组合来打开.
程序生成
NMS中的"程序生成"(打引号是因为真的不知道怎么翻译合理啊Orz)是使用数学的函数来创造内容.因为是基于数学函数, 同样的输入会给出同样的输出. 这是游戏内容多样化, 而游戏不会很大的保证. 游戏中大多数内容都是"程序生成"的,包括飞船,星球,动物,植物,星星,宇宙,多功能枪,矿物储藏和AI派系.
任务和关卡
NMS的终极目标是,前往宇宙的中心. 同时, 有一个很好的理由让你在到达中心后继续玩下去, 但是到达宇宙中心也是一个很好的完成界限. 游戏中没有直接的任务, 所有游戏过程都取决于玩家. 同时每个系统(不知道是不是指恒星系统)都有一个很大的时间,大到足以让所有玩家的该系统都会改变. 你可以选择你做或者不做这件事.
游戏存档
在NMS中, 没有游戏存档. 游戏进程随着你的前进而储存, 如果你死亡了, 你并不需要从头开始. 你也许可以'储存'(另一种意义上)基于多人账户.
守卫
守卫是NMS中主要的对抗团体之一.守卫是一个自我复制的机器人团体, 任务是保护星球的安全, 免受探险者的侵害. 守卫只会在你破坏星球的生态平衡时攻击你. 开采可见的晶石不会激怒守卫, 但是过度开采会引来守卫. 杀死生物会激怒守卫,所以当身边有动物时,可以通过射击地面来吓跑它们.
飞船的战斗
瞄准将不是问题.在NMS中, 有宽松的瞄准系统. 你需要做的只是把飞船开好,剩下的就交给制导系统吧. 每艘飞船将有1-3种不同的武器. 飞船的武器可以进行升级. 鱼雷会造成大量的伤害, 但是发射速度很慢. 飞船的武器没有子弹限制, 但是拥有热量的限制. 飞船中有可以修理其他人飞船的飞船种类, 在对战中, 应该优先击毁这种飞船.
飞船的种类
飞船的类型分为3种: 战斗飞船, 货运飞船和探险飞船. 你不会被限制使用哪种飞船, 如果你想换一种飞船, 买一艘新的就行了(说的好像我特有钱一样). 飞船的大小都很小, 你不能够买一艘大船.游戏中,3种类型的船都有很多种原型, 可以通过升级成为很多种不同的船. 战斗飞船非常轻小和对称. 货运飞船缓慢而且笨重, 但是能够携带重型武器. 探险飞船拥有更好的超光速推进装置和隐形飞行能力. 飞船拥有独一无二的驾驶舱显示飞船和周围的信息.
太空站
在NMS中有不同类型的太空站, 不同的形状显示了太空站内物品的质量. 太空站可以被攻击,但是不能被摧毁.这可以防止玩家因为不能买一艘新船而被限制在一个恒星系统内.当你降落在空间站的港湾内, 你可以走出飞船, 浏览货物或者看一下新船. 你可以购买的东西取决于在空间站停泊的其他飞船. 如果你买一艘新船, 你会失去现在的这艘船以及船上被升级的部件.
星体
在NMS中,有很多种星体,包括那些现实中不存在的.(是不是说存在三星系统啊,世界属于三体!).游戏中存在双星系统.星体的类型会影响"planet generation".
游戏开始
你出生时的行星会靠近银河的外部. 出生时,你看到的第一个标记点会是你的新手飞船,而且新手飞船不允许星际航行. 你需要赚的更多的Units(货币),然后飞往太空站,买一艘新的船只.
温度
星球上的温度取决于很多种因素,包括到恒星的距离等等.极端的温度会消耗你的衣物耐久,如果你的衣物耐久被耗尽,就会消耗你的血量.
贸易站
贸易站可以在行星的表面被发现.贸易站的类型也有很多, 有些可能购买资源, 有些可能出售衣物的升级物.类似于空间站, 贸易站也有不同的等级取决于它们销售的货物的质量.
宇宙还是星系?
NMS的设定是一个宇宙, 其中有很多星系. 所有的玩家出生在同一个星系.(类似于银河系?)
工具
每个玩家可以装备很多工具, 多功能枪是最重要的工具之一.多功能枪既可以采矿又可以攻击. 手电筒可以在黑暗的地方使用, 类似于夜晚,洞穴,甚至是水下. 在你获得喷气背包后,你可以使用和升级它.
5.其他资讯
这是个主打探索的游戏,联机类似《风之旅人》,讲究的是一种发现快感。想畅爽星球大战的基本可以放弃这个游戏了。
1.游戏联网模式具体是怎么回事?
——引用一段话
这游戏有多人游戏的特点, 但是并不会影响到游戏本身。游戏的离线模式会与多人模式有完全相同的体验。朋友会在星际地图上显示,你可以看到其他玩家, 你只能同时看到一小部分玩家。当一大堆玩家出现在同一个地方时 , 你只能看见他们其中的几个。朋友并不会因为是朋友而会被显示(即朋友没有优先级)。游戏中玩家间没有PVP和交易。
就是类似《风之旅人》、《黑魂》那样的联机方式。你不知道茫茫宇宙中你会遇上谁,转身一眼,却消失在星河的感觉。
——关于行星命名,继续引用。
你会在飞过恒星系统时发现他们,一旦你发现这个恒星系统而且是第一个发现,你会因此而获得奖励.你会在飞进星球大气层时发现他,奖励机制同上.你会在扫描到生物时发现他们,奖励机制同上.你只有在信标处上传你的发现后,才会给予奖励.越危险或者越稀有的发现,将会给予你更多的奖励.当别人经过你的发现时,他们会看到你的名字.
有些人可能会好奇这么多数据存在服务器岂不是很大的一个数据量。但我觉得这有点杞人忧天了。那么多的星球,玩家真的能全部探完?
再说了,正如刚刚所说的,你只需要加载你到访星球的数据(向服务器发送一个位置,服务器返回这个星球的数据,不需要你存在硬盘里),不需要永久的联网。
2.有没有pvp、npc及玩家间的交易
——目前的计划中没有pvp,因为游戏主打的是探索与发现及与人之间的"偶遇之美"。但是不排除在未来有更改计划的决定。
——本来没打算加入,但现在已加入NPC,而且是几个势力的npc(你需要"学习"外星语才能与之沟通,没有学习前他们的语言对你而言是一堆乱码)。
——存在太空站以供玩家进行交易(貌似是与npc间接贸易,而不是直接贸易——比如挂卖系统那样)
3.好棒哦!但是我想先观望一下,不知道以后会不会涨价呢?
——开发者说了,合理的等待也不失为一个好选择,但如果真的喜欢游戏我推荐你们现在就可以行动了(已翻译)。
大伙自己估摸着看意思吧_(:зゝ∠)_
4.会支持VR技术么?
——开发者表示,索尼将会在相关方面对我们提供支持。
6.这是一款什么游戏?它适不适合我?
它不是什么?
- 这不是太空工程师,不能建筑东西
- 这不是EVE。没有太空大战
- 这不是MMORPG,它的联机模式类似黑魂与风之旅人。你并不一定会遇到你的steam好友,你遇到的会是随机的人。
- 这游戏有战斗要素,但这不是ED(精英危险),没有你所期待的华丽的太空战斗。
它是什么?
- 探索发现游戏。大部分时候你只是一个人孤独的在宇宙中探索发现。讲究的是探索的美。
- 在未来会支持VR(索尼大法好)。
- 讲得简单点就是太空步行模拟加强版!
再次强调:这不是一篇安利文。它的主题是算法!
再次强调:这不是一篇安利文。它的主题是算法!
再次强调:这不是一篇安利文。它的主题是算法!
如果你不适合这款游戏的定位,请不要购买这款游戏。
也请不要跟风黑。
它不适合所有人,但这并不说明这个游戏糟糕透了。
希望各位冷静对待这个游戏,不要跟风,理性分析自己是否适合这款游戏。(就像你永远无法让我相信CSGO适合我一样 : 我尊重CSGO,它是个好游戏,但这枪感真的不适合我)
多人模式的感觉应该会很棒,这么大的宇宙能够相遇,应该是缘分。
对了 游戏中AI和人类玩家如果没有近距离接触是分辨不出来的。有着一样的外貌和飞船。只不过可能没有人类那样爱“捣乱”
我还是先观望观望吧 虽然一开始就被惊艳到 ^ ^
等到六月份,好漫长~~
这游戏创意真的很赞,希望最终可以实现。
暂时把它作为星际版的Journey来期待。
目前先观望吧....480不是什么小配置,一开始感觉玩的人很少是个很悠闲的游戏,现在一看....再看看吧
刚出预购就购买了。喜欢这样探索与发现的过程。希望在星空中留下自己的足迹以及名字。哪怕这是虚拟的太空。有没有中文我倒是觉得并没有什么太大的关系。重在发现星空的美丽。(反正当乱码看=。=)
观望观望,感觉会是一个很有意思的游戏,热爱探索~
2015年TGA“玩家最期待游戏奖”便是此文主角=。=
@浑身难受:哈哈哈哈