您的位置:广东在线游戏网 > 游戏策略 > 《我的世界》这个游戏为什么用Java写而不用C语言或者c#写...-我的世界这款游戏为什么要用java的语言编写

《我的世界》这个游戏为什么用Java写而不用C语言或者c#写...-我的世界这款游戏为什么要用java的语言编写

作者:广东在线游戏网日期:

返回目录:游戏策略


您好,

了解到您的问题zhidao,我觉得有必要和您科普一下。

我的世界(Minecraft)分为多个版本:JAVA版、基岩版、源主机版、教育版、携带版……

其中,JAVA版和基岩版是当前主流的Minecraft版本,也是人数最多的两个Minecraft版本。

Java版由JAVA语言编写,编解码需要JAVA,1.7.10版本以前运行需要JAVA7.0,自1.7.10版本以来都需要JAVA8.0运行,JAVA不可在移动设备运行。因此JAVA版也是PC专用版(JE版)。


基岩版是由C++编写,也称BE版,可在各大平台上运行:台式计算机、手提电脑、andriod设备、iOS设备、Andriod智能电视、apple TV等等。并且,基岩版优化良好,没有JAVA版吃配置。不信的话,你试试在JAVA版和基岩版都输入这条指令(生存模式下):

/give @s minecraft:cake 100000

就一见分晓了。


好了,我有点扯远了,JAVA是一种编程软件,它可以支持Minecraft Java版的运行。简单来说,Java的作用就是翻译,把游戏核心呈现出来。

希望这对您有帮助。



原因无从而知。个人认为Java版便于爱好者开发Forge、OptiFine之类zhidao的东西,同时跨Windows/Mac OS/Linux等支持Java的平台,可玩性比较强。
不过Mojang被微软收购之后,Minecraft从1.2版开始有跨平台的基岩版,是用C++写的。它同时支持Windows 10/手机/游戏主机等平台,只需一个Microsoft帐户便可无缝联机,极大扩展了计算机游戏“跨平台”的观念。
在Windows 10下,基岩版相比Java版明显更加流畅。但扩展仅限于原生支持的Add-ons,可玩性暂不及Java版;同时基岩版尚未完全跟进Java版的开发进度,直到1.16下界更新,二者的版本号才保持同步。
《我的世界》是用java语言编写的,需要java环境才能运行。而且《我的世界》有很多懒人包的,就是整合到一起,免于玩家安装游戏出现问题,你如果有问题也可以去《我的世界》中文论坛提问,,,在我的世界中文论坛可以下载到很多版本的《我的世界》,还有多种mod即模组可以使用,非常有可玩性的。模组是玩家自制的游戏插件,如工业mod,建筑mod,极限生存mod等,还有龙珠,魔兽等另类玩法的mod,增加游戏的趣味性。

1、mod 插件系统为提高兼容性会降低优化。

众所周知,性能优化和兼容程度成反比。而 mod 作为一类即插即用插件,必须要提高兼容性以适应这一操作。所以,绝大多数游戏的 mod 系统都会牺牲一部分性能,导致加载很多 mod 时会卡的不行,比如老滚和捡破烂。别问,问就游戏内置了就不卡了。

2、我的世界在游戏制作行业算是比较出了名的渲染优化差。
举个例子,比如用其他游戏引擎(如unity)做一个你无法进入、只能站在外面官网的摩天大厦,在游戏中这个摩天大厦的模型可能只有外壳,7a686964616fe59b9ee7ad94365而且如果是远距离的话可能就会优化成面片(反正你也看不出来是不是立体的)然后通过处理材质来提高真实度,而且还可以设置成近距离外壳、远距离自动优化成面片来全自动优化性能。
我的世界就不同了,假设这栋大楼高80米宽30米,放到我的世界里就是 30 * 30 * 80 = 72000个方块,然后每个方块6个面,就是 7200 * 6 = 432000 个 1 X 1 的面片加贴图同时渲染,去掉反向面至少也得有 266000个面片需要渲染。就算只有外壳,也是至少 29 * 4 * 78 + 30 * 30 * 2 = 10848 个方块共计 65088 个面去反后至少 32544 个面需要渲染。而无论你在远在近,这栋大楼均是由这些个方块组成,不会自动优化(众所周知我的世界唯一的自动优化只有视距和区块系统2333)。

3、我的世界游戏引擎存在一些硬核问题,以及开发者的优化问题。
我之前开发我的世界mod的时候就发现很多东西确实比较脑壳痛。像什么地形扫描,地形扫描,地形扫描,地形扫描。我的世界性能方面最头疼的地方就是地形扫描,线性15米就等于是扫描15格,面积15*15就等于扫描了255个方块,稍微大一点的区域简直就是恐怖。
比如我如果要做实时的矿产勘探,假设半径15格,模拟为玩家处于正中间、长宽高30的立方体区域。这个放在现实中也就是相当于高科技半径15米的矿产雷达,但是就这15米就需要扫描27000个方块,也就是说某一段代码至少要重复27000次才能保证一次完整的扫描。
然后问题来了,如果1秒扫描一次的话就需要循环27000次,为降低性能开销我当时就改为5秒一次,平均优化摊开变成了5秒150游戏帧分别扫描这27000个方块,每一个游戏帧扫描180个方块,这样极大降低了性能,但是让算法更复杂。
而有一个简单粗暴的优化方式,就是一口气扫描完27000个方块,然后等待5秒钟,再进行下一次扫描。这样做的话性能开销比摊开优化要好一点,但是每一次扫描都会导致游戏卡顿一下,卡顿时间长度根据当时瞬间系统性能,我实测最惨的一次是连续5次卡顿半秒以上。
然后更大的问题是,很多 mod 开发者觉得自己的 mod 性能消耗很小,就都这样简单粗暴写(别问,问就我的世界开发投入的精力与收入严重不对等导致优化和后期维护变成了纯粹费力不讨好)。单独加载都没啥大问题,但是万一赶巧了运算扫描卡在同一瞬间……这个概率还真的不低。

相关阅读

关键词不能为空

标签导航

我的世界暮色森林,如何解除恶魂塔的封印 我的世界我下了一个暮色森林mod可是怎么也找不到恶魂塔,恶魂... 我的世界暮色森林恶魂塔怎么过 暮色森林 我的世界暮色森林魔法地图暮色恶魂周围四个是什么,看不出来啊! 还有啥仙侠的电视剧?像三生三世十里桃花一样的,仙的,不要武侠... 古剑奇谭3电视剧是古剑奇谭1的续集吗 和三生三世相似的电视剧都有那些 请问《古剑奇谭》《三生三世》等电视剧里面出现的狐狸是真的吗?... 魔兽世界声望排行,尊敬过后是什么?后面还有吗? 魔兽世界声望一开始是友善,然后升上去是什么,再然后又是什么详... wow的声望分几种?有中立、友善、尊敬、还有什么? 魔兽世界公会声望是怎么排的?先是中立,然后友善,后面呢?求助 我的世界,Minecraft为什么要下载Java,Java... 我的世界为什么要用Java啊 《我的世界》这个游戏为什么用Java写而不用C语言或者c#写... 《我的世界》这款游戏为什么要用java的语言编写? 地下城与勇士狂战士技能点什么点几点? 地下城与勇士狂战士(红眼)怎么加技能点 地下城与勇士狂战士怎么加技能点 地下城与勇士里狂战士怎么点技能 WOW 部落哪个地方毛料掉的多? WOW,哪里刷出来的毛料最多 魔兽世界毛料在哪里打? wow哪里出毛料最多 古剑奇谭2有什么办法能让战意值升的快一点吗 古剑奇谭2怎么抓怪物 100%成功抓怪物方法 《古剑奇谭2》如何捕获怪物? 古剑奇谭2如何捕获怪物 dnf分解有异界气息的装备一定能分解出异界精髓吗 DNF矛盾晶体哪来的?只能分解气息装备吗?异界图会不会掉矛盾... DNF带异界气息的装备可以分解出矛盾吗 DNF带有异界气息的装备分解后出浓缩和矛盾的概率分别是多少?... 魔兽世界声望折扣是多少? 魔兽世界声望对NPC的折扣 魔兽世界现在买马还打折吗?打几折?怎样才能打折? 是不是主城... WOW学骑术声望打折,崇敬有没有打折 古剑奇谭有没有第二部有的话是什么时候上映 古剑奇谭电视剧第二部什么时候上映? 古剑奇谭电视剧有第二部是真的吗?什么时候播出?演员是那些人 古剑奇谭第二部电视剧什么时候上映演员阵容翻新 我的世界打败末影龙后龙蛋怎么孵化 我的世界打死末影龙后掉了龙蛋怎么孵化 我的世界打败末影龙后怎么把龙蛋孵化 我的世界打败龙后的龙蛋怎么孵化 魔兽世界怀旧服,人一多就卡 求推荐一个魔兽世界80怀旧服 求一个高人气魔兽世界80级WLK版本完全仿官服的怀旧服 求推荐一个魔兽世界60级怀旧服务器,要人多的,服务器稳定的人... dnf异界3怎么打 dnf勇者套装3期怎么做 dnf异界3怎么打?详细点 DNF异界3图的顺序是什么? 古剑奇谭2激活问题 古剑奇谭2 怎么反激活?