京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5049|回复: 0

从编程的角度看,我的世界是一种怎样的存在?聊聊你不知道的MC

[复制链接]

22

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2019-4-5 05:26:39 | 显示全部楼层 |阅读模式 来自 中国
《我的世界》在不同群体眼中,都是一种不同的存在。所以今天,我叫Minecraft就带领大家看一看,MC在以编程的角度来看时,那个在程序员眼中的,不一样的MC。程序员眼里的MC,和我们有什么不一样?聊聊你不知道的MC。: U, T- H$ a( v
编程世界里的Minecraft,究竟是一种怎样的存在呢?! U4 H' R5 g+ c( A8 q* n" a
来自一位Modder:你知道《我的世界》为什么会有这么多的BUG么?因为早期,也就是2009年的时候,Notch决心开发Minecraft的时候,只是计划作为一个小项目来开发,并没有预料到会火到这个程度。而且最初是Notch一个人在制作,所以在底层代码的逻辑构建上,并不是多么的宏观,甚至是混乱。而后续的更新一直是在底层代码的基础上来构建。假设一下,在十年前的汽车发动机上一直修改,改到现在。这个发动机会不会出毛病呢?
; m" ]" u, k% {# I8 J& x8 O开发前瞻性不足:也正是由于当初Notch的开发前瞻性不足,导致《我的世界》从根本上,缺乏一些漂亮的逻辑代码架构。所以现在Mojang在开发的时候,我们经常会看到一些字眼。例如重写光照系统,重写水源光影,重写战斗系统等等,实际就是对底层代码的重写。当然,其实也不是完全的重写。依旧要遵循这Notch留下的代码规则来改。
, N* M8 }$ |8 ^; M/ eMC的地图生成算法:简单来说,《我的世界》一个地图的生成,是分为很多个步骤的。第一个步骤,是生成基础地形,例如平原、山地这样一类的群系。第二个步骤,是河流、树木、洞穴等等。第三个步骤,村庄、要塞、遗迹等等。可以看出,重复多次的结构生成,会产生类似峡谷村庄,峡谷要塞等等这一类奇葩的BUG景象。虽然称之为特性,但从编程的角度,这可能不是什么完美的编码。
) {% ?/ @: r+ F0 |, P+ V% t随机数缺陷造就了特性之美:Minecraft的代码中,大量的运用随机数。这也带动了整个《我的世界》进度的展开。例如随机的区块、随机的生物生成、随机的天气、随机的僵尸围城。随机事件带动情节发展,固然是MC的特色,但因为JAVA随机数的局限性,也同样会出现BUG。就例如种子107038380838084和164311266871034,这两个种子因为随机数的BUG,而导致地形大量的无限循环和重复。
. r7 s4 n" d7 `8 @4 d最后,从编程的角度来说说《我的世界》流畅性的问题。你是否发现,几乎所有的低端设备,包括电脑,或者是安卓、等游戏主机设备。运行Minecraft的时候,都是极为流畅的。而王者一类的游戏就不行。其实最根本的原因不是MC的优化多么的好,而是Minecraft真的太流行了,几乎所有的设备GPU,也就是图形处理,都会针对MC做专门的优化。这就是MC在游戏界的地位!
6 P; l% H- j7 W6 \' B. r$ ^$ `+ N所以,从这样的一个编程视角来看《我的世界》,虽然它缺陷很多,BUG很多。但无论缺陷也好,特性也罢,它们都造就了时下最火的Minecraft!
+ v- W7 ?5 ]" K' C+ l1 s
, u- h* m; P9 K0 Z  ]看完才知道差距!我们这群普通玩家,体验的是游戏性,而程序员们看到的是代码背后的故事。也许当真你弄懂了一切,再玩《我的世界》会失去原本的乐趣吧!
* C7 X# u$ b, R. H4 W) ~$ q5 `6 c% U7 n. n3 ^7 C" Q  x+ _
来源:http://www.yidianzixun.com/article/0Leehwx5
& N# E: g! Q1 W- n. Q5 p# U  t4 p# f  y免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-9 08:34 , Processed in 0.038982 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表