卡卷网
当前位置:卡卷网 / 每日看点 / 正文

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

作者:卡卷网发布时间:2025-01-17 00:31浏览数量:92次评论数量:0次

真用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几乎就断绝了和客户端共享逻辑代码可能性,而对于很多强战斗的项目,两边共享代码非常重要,一个基础库要用两种语言实现两遍,尤其是还要保证计算结果的一致性的时候那就非常痛苦了(曾遇到过两种语言因为数学库的实现的细微不同导致计算结果不一致的。。。)

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码