当前位置:首页 > 每日看点

游戏服务器开发为什么很少使用Java?

卡卷网2年前 (2025-01-17)每日看点259

真用Java写过上线的大型游戏项目服务器的路过。根据我的使用经验,如果是卡牌、回合等弱战斗的还好,但是对于MMORPG,动作类,Java可以写但是使用过程中存在以下问题:

1、缺少值类型影响较大,很多游戏项目中对于数值计算是强需求,对于移动、战斗、寻路、物理等逻辑都需要大量空间位置,旋转这类计算,Java缺少值类型的情况下不得不用class来实现各种Vector3,Vector4,Matrix等,实测这么做会造成服务器较大的GC压力,而且会限制你没法把移动、战斗等做的较为复杂,做复杂了内存和GC就炸了,而且因为内存不连续导致计算性能也差口气。

2、缺少运算符重载影响中等,游戏开发中会使用较多的数学和物理公式,有没有运算符重载写出来的就是两个长相,没有写出来的计算公式看着比较丑,并且难以理解,不过也不是不能用。

3、与C++交互能力较差影响较大,目前游戏开发中大量的第三方的开源库或者中间价都是使用的C++开发,与C++的交互能力对于游戏项目来说还是很重要的,你总不想连物理库之类的都自己写(2D还好,3D物理库写起来会要命)。

4、内存问题:影响较小,这个还好,Java会多吃不少内存,但是总体还在可接受范围之内。

5、共享逻辑:影响较大,客户端基本是C++(UE)/C#(Unity)/Lua,用Java几乎就断绝了和客户端共享逻辑代码可能性,而对于很多强战斗的项目,两边共享代码非常重要,一个基础库要用两种语言实现两遍,尤其是还要保证计算结果的一致性的时候那就非常痛苦了(曾遇到过两种语言因为数学库的实现的细微不同导致计算结果不一致的。。。)

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/9606.html

分享给朋友:

相关文章

电视参数哪个最重要?

电视参数哪个最重要?

在选择智能电视时,面板类型是一个关键因素。 IPS面板以其宽广的视角和出色的色彩还原能力受到青睐,尤其适合日常观看和游戏。 尽管可能会有轻微的漏光,但在大多数情况下,这并不影响使用体验。 相比之下,VA面板提供更高的对比度和更深的黑色,增强…

为什么微服务一定要有网关?

为什么微服务一定要有网关?

网关 一句话总结,网关的作用是上浮公共逻辑,下沉差异逻辑。公共逻辑就是所有接口都需要做的事,比如权限校验,限流算法等,这样业务就只需要关心业务逻辑即可。下面是一个对比图: 当然除了一些公共逻辑外, 路由也是网关的核心功能,它可以进行流量…

是什么让你抛弃了 Windows 而转向 Mac?

是什么让你抛弃了 Windows 而转向 Mac?

别的不说,这玩意儿是真抗造啊,我这2012年买的MacBook Pro,依然在用…… 这台电脑我博士最后两年用来写代码(只写不运行,运行要上集群)和写论文,工作之后就变成生活和娱乐了,因为我一直用架子和外接键盘(颈椎不好)所以电脑看…

无人机真的是中国领先吗?

无人机真的是中国领先吗?

巧了这是。 捡到了一台大疆。应该是别人飞丢的。在草丛中泡过水,轴承锈死,电池鼓涨已,经没有维修价值了。但作为玩电子的,免不了要把它解剖,研究一番。那么,我们看看它的国产化率能有多少吧。图片说话: 解释一下吧。…

为什么说不懂电脑的不要碰AMD?

作为一个资深垃圾佬,说缺点前,先说优点吧AMD CPU(后续简称AU)的优点:处理器对比Intel,三级缓存更大,最明显的感知就是,网游帧数更高(5900X,7900X之类高端型号都是双CCX共享大缓存,反而不如次一点的CPU帧数更高);相…

如何判断 Java 工程师的基础知识是否扎实?

我来给你出几道大题,能答对70%,你就算基础扎实了。 第一部分 Java基础(27)1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法3. 引用类型:…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。