新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC

《我的世界》在不同群体眼中 , 都是一种不同的存在 。 所以今天 , 我叫Minecraft就带领大家看一看 , MC在以编程的角度来看时 , 那个在程序员眼中的 , 不一样的MC 。 程序员眼里的MC , 和我们有什么不一样?聊聊你不知道的MC 。
编程世界里的Minecraft , 究竟是一种怎样的存在呢?
新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC
文章图片
来自一位Modder:你知道《我的世界》为什么会有这么多的BUG么?因为早期 , 也就是2009年的时候 , Notch决心开发Minecraft的时候 , 只是计划作为一个小项目来开发 , 并没有预料到会火到这个程度 。 而且最初是Notch一个人在制作 , 所以在底层代码的逻辑构建上 , 并不是多么的宏观 , 甚至是混乱 。 而后续的更新一直是在底层代码的基础上来构建 。 假设一下 , 在十年前的汽车发动机上一直修改 , 改到现在 。 这个发动机会不会出毛病呢?
新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC
文章图片
开发前瞻性不足:也正是由于当初Notch的开发前瞻性不足 , 导致《我的世界》从根本上 , 缺乏一些漂亮的逻辑代码架构 。 所以现在Mojang在开发的时候 , 我们经常会看到一些字眼 。 例如重写光照系统 , 重写水源光影 , 重写战斗系统等等 , 实际就是对底层代码的重写 。 当然 , 其实也不是完全的重写 。 依旧要遵循这Notch留下的代码规则来改 。
新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC
文章图片
MC的地图生成算法:简单来说 , 《我的世界》一个地图的生成 , 是分为很多个步骤的 。 第一个步骤 , 是生成基础地形 , 例如平原、山地这样一类的群系 。 第二个步骤 , 是河流、树木、洞穴等等 。 第三个步骤 , 村庄、要塞、遗迹等等 。 可以看出 , 重复多次的结构生成 , 会产生类似峡谷村庄 , 峡谷要塞等等这一类奇葩的BUG景象 。 虽然称之为特性 , 但从编程的角度 , 这可能不是什么完美的编码 。
新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC
文章图片
随机数缺陷造就了特性之美:Minecraft的代码中 , 大量的运用随机数 。 这也带动了整个《我的世界》进度的展开 。 例如随机的区块、随机的生物生成、随机的天气、随机的僵尸围城 。 随机事件带动情节发展 , 固然是MC的特色 , 但因为JAVA随机数的局限性 , 也同样会出现BUG 。 就例如种子107038380838084和164311266871034 , 这两个种子因为随机数的BUG , 而导致地形大量的无限循环和重复 。
新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC
文章图片
最后 , 从编程的角度来说说《我的世界》流畅性的问题 。 你是否发现 , 几乎所有的低端设备 , 包括电脑 , 或者是安卓、等游戏主机设备 。 运行Minecraft的时候 , 都是极为流畅的 。 而王者一类的游戏就不行 。 其实最根本的原因不是MC的优化多么的好 , 而是Minecraft真的太流行了 , 几乎所有的设备GPU , 也就是图形处理 , 都会针对MC做专门的优化 。 这就是MC在游戏界的地位!
新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC
文章图片
所以 , 从这样的一个编程视角来看《我的世界》 , 虽然它缺陷很多 , BUG很多 。 但无论缺陷也好 , 特性也罢 , 它们都造就了时下最火的Minecraft!
【新民讲电竞和我们有什么不一样?看完才知道差距,我的世界:程序员眼里的MC】看完才知道差距!我们这群普通玩家 , 体验的是游戏性 , 而程序员们看到的是代码背后的故事 。 也许当真你弄懂了一切 , 再玩《我的世界》会失去原本的乐趣吧!


推荐阅读