从编程的角度看,经典游戏《我的世界》是一种怎么的存在?
《我的世界》在不同群体眼中,都是一种不同的存在。所以今天,我叫Minecraft就带领大家看一看,MC在以编程的角度来看时,那个在程序员眼中的,不一样的MC。程序员眼里的MC,和我们有什么不一样?聊聊你不知道的MC。
编程世界里的Minecraft,到底是一种怎么的存在呢?

来自一位Modder:你知道《我的世界》为什么会有这么多的BUG么?由于早期,也就是2009年的时候,Notch决心开发Minecraft的时候,只是计划作为一个小项目来开发,并没有意料到会火到这个程度。而且最初是Notch一个人在制作,所以在底层代码的逻辑构建上,并不是多么的宏观,甚至是混乱。然后续的升级一直是在底层代码的基础上来构建。假设一下,在十年前的汽车发动机上一直修改,改到现在。这个发动机会不会出毛病呢?

开发前瞻性不足:也正是因为当初Notch的开发前瞻性不足,导致《我的世界》从根本上,缺乏少量漂亮的逻辑代码架构。所以现在Mojang在开发的时候,我们经常会看到少量字眼。例如重写光照系统,重写水源光影,重写战斗系统等等,实际就是对底层代码的重写。当然,其实也不是完全的重写。仍旧要遵循这Notch留下的代码规则来改。

MC的地图生成算法:简单来说,《我的世界》一个地图的生成,是分为很多个步骤的。第一个步骤,是生成基础地形,例如平原、山地这样一类的群系。第二个步骤,是河流、树木、洞穴等等。第三个步骤,村庄、要塞、遗迹等等。可以看出,重复屡次的结构生成,会产生相似峡谷村庄,峡谷要塞等等这一类奇葩的BUG景象。尽管称之为特性,但从编程的角度,这可能不是什么完美的编码。

随机数缺陷造就了特性之美:Minecraft的代码中,大量的运用随机数。这也带动了整个《我的世界》进度的开展。例如随机的区块、随机的生物生成、随机的天气、随机的僵尸围城。随机事件带动情节发展,诚然是MC的特色,但由于JAVA随机数的局限性,也同样会出现BUG。就例如种子107038380838084和164311266871034,这两个种子由于随机数的BUG,而导致地形大量的无限循环和重复。

最后,从编程的角度来说说《我的世界》流畅性的问题。你能否发现,几乎所有的低端设施,包括电脑,或者者是安卓、等游戏主机设施。运行Minecraft的时候,都是极为流畅的。而王者一类的游戏就不行。其实最根本的起因不是MC的优化多么的好,而是Minecraft真的太流行了,几乎所有的设施GPU,也就是图形解决,都会针对MC做专门的优化。这就是MC在游戏界的地位!

所以,从这样的一个编程视角来看《我的世界》,尽管它缺陷很多,BUG很多。但无论缺陷也好,特性也罢,它们都造就了时下最火的Minecraft!
看完才知道差距!我们这群普通玩家,体验的是游戏性,而程序员们看到的是代码背后的故事。也许当真你弄懂了一切,再玩《我的世界》会失去本来的乐趣吧!
笔者是一个有着7年工作经验的架构师,对于c++,自己有做资料的整合,一个完整学习C语言c++的路线,学习资料和工具。可以进我的Q群7418,18652领取,免费送给大家。希望你也能凭自己的努力,成为下一个优秀的程序员!另外博主的微信公众号是:C语言编程学习基地,欢迎关注!
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 从编程的角度看,经典游戏《我的世界》是一种怎么的存在?