查看: 433|回复: 1
打印 上一主题 下一主题

[资料Wiki] 一篇文章告诉你-Mojang开发MC是怎么节省内存的

[复制链接]

19

主题

18

回帖

29

积分

Lv.2 石器学徒

UID
9629374
小麦
1
金锭
158
下界之星
0
跳转到指定楼层
楼主
发表于 2024-7-17 23:58:21 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:浙江
在Minecraft中,当玩家创建一个方块的时候,Minecraft底层代码并不会直接创建一个Block类的类实例化对象,而是创建一个PosBlock类的类实例化对象,这是为什么呢?
Mojang之所以这么做,主要是优化游戏性能,背后的工作原理在于:
1.当游戏初始化(玩家打开游戏后),Minecraft会创建很多很多的Block类的类实例化对象,每一个类实例化对象都对应着一个方块,内部有方块的信息(这需要消耗巨大的资源)
2.当玩家在游戏里面创建一个方块的时候,游戏内部会创建一个PosBlock类的类实例化对象,这个类实例化对象会有一个属性,这一个属性指向于指定方块的Block类的类实例化对象,还有一个属性,用于记录方块的(x,y,z)坐标
3.游戏系统会通过PosBlock获取到指定方块的Block类实例化对象,然后获取到方块的贴图,数据,并创建临时数据存储
4.当玩家相机没有在这一个方块上,临时数据就会被释放,从而节省内存空间

总结: Mojang使用享元设计模式优化方块类,让我们玩家可以在游戏里面流畅游玩

致敬每一位开发者,感谢开发者们的辛勤工作!!!

19

主题

18

回帖

29

积分

Lv.2 石器学徒

UID
9629374
小麦
1
金锭
158
下界之星
0
沙发
 楼主| 发表于 2024-7-18 00:17:10 来自手机 | 只看该作者 IP:浙江
好吧,楼主是一个模组开发者,今天学习23种设计模式,正好学到享元模式,就和minecraft内部的特性管理了一些,没想到mojang开发游戏的时候也这么厉害,看来minecraft的底层代码写的还是健壮的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部