「java对比游戏引擎」java和游戏开发哪个更有前景

博主:adminadmin 2023-03-19 15:27:12 430

本篇文章给大家谈谈java对比游戏引擎,以及java和游戏开发哪个更有前景对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java游戏开发现状和走向怎样?开发者该怎么选择?

亲,由于Java技术及硬件技术的不断发展,许多基于Java的2D和3D游戏不断产生,其中不乏大型多人在线游戏。现在让我们来看看Java游戏的开发现状和走向是什么样的。

当然,其实现状并没有听起来那么糟糕,对于不使用Java的大多数游戏来说,根本就只能运行在一个平台上,许多游戏对directx或者opengl的版本有要求,更不要提那些运行在家用游戏机上的游戏了,跨平台是整个游戏业的大问题,Java只是像其他人一样没有把这个问题彻底解决掉而已,但仍然比其它技术做得要好。不过,值得一提的是,在那些不直接使用硬件加速的网页小游戏上,Java确实在稳定性和方便安装上输给了flash;在家用机方面,Java是0,而微软的xna(c#)可以跨xbox360和vista。

4. 网络

Java一向强于解决网络方面的问题,在这方面,Java主要有两个优势,第一是基于applet和Java web start的游戏非常容易更新,不会像其他游戏那样需要用户手动下载全新版本;第二是Java在网络交互的api相对比较友好,而对于大型网络游戏来说,分布式系统非常重要,这正是JCP的巨头们喜欢的东西,可能由于这是一个卖硬件的好机会,sun下了不少功夫开发了project dark star来做网络游戏服务端,由于这个工程还没有到1.0,所以现在也很难说具体好用不好用。

5. 速度

这个没什么可讨论的,基于Java的游戏肯定会比写得很好的c++程序慢,当然写一个好的c++程序所花费的庞大的薪水也是Java不能比的。

Java游戏方面主要的技术

1. Java3D

作为sun公司较早推出的一项3d技术,是一种高度封装的api,构建在opengl和direct3d之上,可以说是最有名的Java的3d技术。由于种种原因(api设计,面向的用户不明确),Java3d一直没有办法流行,不久前Java3d的团队宣布暂停对Java3d新功能的开发,转而为JavaFX开发3d 渲染引擎。同时sun的另一个项目 project wonderland宣布将其渲染引擎由Java3d转为JMonkeyEngine。令人唏嘘的是sun的Java3d再次进入尘封状态,大量基于Java3d的程序和教程都面临一个非常尴尬的境地;令人高兴的是在这一领域终于有比sun做得更好的团队出现了。引用别人对此事的评价:Java3D is dead! Long live Java "3D"!

2. Lwjgl()

全名为light weight Java game library。作为一个非官方的对Java游戏的全面解决方案,lwjgl将游戏图形(opengl)、音效(openal)、控制输入集合为一,以成为Java界的directx(不是direct3d)而努力。其在图形方面采用了opengl的Java绑定,其函数与c语言版的完全相同,所以对于习惯opengl编程的程序员来说比较友好。目前有大量的Java游戏和游戏引擎是基于lwjgl的,它可以说是Java游戏社区最广为被使用的函数库之一。

3. Jogl()

Jogl是Java对opengl的一个绑定,或者说是opengl接口的Java实现,它是由sun支持的。其语法与opengl完全相同,api也紧跟随着opengl的版本进行更新,而Nehe的opengl范例程序大多数都有jogl版本。去年jogl正式通过jcp审核成为jsr231,是lwjgl的主要竞争者。值得一提的是,jogl项目的领导者Ken Russell曾经声明并不希望jogl成为jre的一部分,因为他认为这样会使jogl的更新周期与jre相同,从而变得过于缓慢。Ken Russell目前全力工作在新的Java plug-in的开发上,而opengl的api也没有进行更改,所以现在的jogl版本将持续较长的一段时间。

java的游戏开发引擎有哪些

cocos2d-android

这个是cocos2d的安卓版本的,

全部代码都是使用java编写

建议搜索下android

上的游戏引擎,(最好找开源的)这些游戏引擎基本上都是使用java开发的.

各位前辈,请问java游戏引擎哪个比较好

cocos2d-x 这个 多平台开发 只要一种平台写好了 兼容其他各种平台 会编译出不同版本 现在手机游戏多用这个

我想要做游戏的话,我应该学java还是C语言好呢

开发游戏的主流语音目前主要有2种:C++和JAVA

先说C++,目前国际上的大型游戏的开发多数都是以C++为主开发出来的,C++开发出来的游戏具有优化更好的特性,就是占用更少的CPU、内存,但是同时,语言结构的复杂性也是非同一般的。

JAVA,上手容易,深入不难,一个月熟练不是随便说说的,是事实,主要开发跨平台的游戏,具有平台移植性良好的特性,但是优化不好,语句多数比较冗余(C++写1000句能完成的,JAVA可能要写5000句),但是浅显易懂,JAVA开发的游戏有个较大的弊端,内存占用都很高(硬件越来越发达,对于优化的追求没有以前那么高了,这也是这些年JAVA开发游戏能兴起的主要因素之一吧)

当然,你即时熟练掌握了C++或者JAVA,也不是说你立马就能上公司做游戏开发的,一般的游戏公司都会有自己的一套游戏引擎,这些引擎或是用C++写的,或是用JAVA写的,或是其他的……然后封装一下,会让你基于引擎的接口来开发真正的游戏,所以,语言是基础。

手游开发该如何选择合适的游戏引擎

手游开发该如何选择合适的游戏引擎

一、引擎的介绍

随着游戏开发的不断进步,游戏开发越来越庞大复杂,因此游戏引擎已经成为游戏开发必不可少的工具。引擎对基本的功能封装,对工具链的提供等都可以大幅降低游戏引擎的开发难度,提高开发速度和质量。

对于目前市场,3D手游的引擎选择主要分四部分:

Unity:在移动端更有优势占据手游市场70%的占有率,各种品类游戏都有;

Unreal:两款正版吃鸡手游都是使用Unreal引擎,但手游MMO目前国内还没有上线产品,国内端游MMO成功的也很少;

自研引擎:例如楚留香的Messiah,太极熊猫的Flexi等,优点在于非常熟悉可以提供深度定制和优化;

其他引擎:应用较少不进行考虑。

这里其实选择的余地比较小,对于大部分没有自研引擎的公司来说,还是选择Unity居多,但是随着硬件的不断发展以及Epic公司自己的不断优化和持续更新,Unreal在手机上也有越来越多的公司和项目选择使用了。

部分已知手游项目:

(一个重要的选择原因:如果一款引擎在同类型项目中有成功项目,则我们可以很大程度相信这款引擎。)

二、选择引擎的基本原则

按照软件工程的开发流程,我们首先应该明确需求。以下是一些常见的需求点:

游戏类型?

目标用户,目标平台,目标机型是什么?

项目周期,成本和团队实力?

更倾向画质品质还是适配性?

是否有特殊的技术需求?是否大世界?是否支持物理?是否写实风格

何种同步技术?

等等

然后我们需要考察引擎的特性是否和我们的需求相符。

1、必须满足的特性,如果不支持则不能选用该引擎:

是否有成功的同类型产品?

引擎是否支持想要发布的平台,兼容性如何?

引擎的性能如何?包括CPU,GPU,内存等等,例如早期的Unreal如果开发商不做优化无法在低配手机上流畅稳定的运行。

引擎的成本如何,和团队的技术栈是否契合,开发效率如何?

引擎是否支持想要的技术?

2、最好支持的特性,但如果不支持可以第三方库或自主开发解决:

如果是多人在线游戏,引擎是否已经封装了成熟的同步机制?

是否支持更多的DC和更完善的优化?

如果是开发大世界游戏,引擎是否支持成熟的大世界系统(包括地形,植被,LOD,遮挡,优化等等)?

如果需要高级AI,引擎是否能高效完善支持?

如果需要物理碰撞,引擎是否能高效完善支持?

负责逻辑是否支持脚本,是否支持脚本可视化编辑器?

是否支持热更?

引擎是否自带编辑器(动画,场景,特效,UI,粒子等),以及编辑器是否适合,是否支持扩展?

第三方插件和库的支持如何?

引擎是否有良好的文档,是否有开发商官方的技术支持?

引擎是否完善的开发工具?如性能分析,打包等等。

三、引擎的功能划分和对比

有一句话说的好:

美术资源决定了游戏世界的外观,脚本资源决定了游戏世界的内容,而引擎部分决定了游戏世界的规则。

一款引擎往往包含,图形模块,AI模块,物理模块,寻路模块,输入模块,网络模块,UI模块,渲染模块,声音模块,编辑器模块等等,如果要全面评估我们应该针对各个模块进行详细的评估和对比。

但说道引擎,往往大家的第一印象都是引擎的图形渲染能力,可见图形对于引擎来说是至关重要的,因此我们会分为两部分,图形模块和其他模块,然后进行详细的比较。

图形模块

图形是游戏引擎的重中之中,主要功能就是提供封装底层的渲染接口(D3D,OpenGL,Metal,Vulkan等),渲染管线的定制(前向渲染,延迟渲染,多线程等),适配(PC,IOS,Android),以及一些基本渲染功能的提供例如后处理(抗锯齿,景深,屏幕矫色,扭曲,描边,SSAO等等),阴影,地形,捏脸,动画,天气等等。

由此可见在高端渲染技术上Unreal更有优势有强大的官方支持,性能也极佳,但是相对的低端设备的兼容性会略差特别是Android版本。Unity也可以实现相同的效果但是很多工作都需要自己开发。

其他

经过对比可知Unity更容易上手前期开发更快速,更容易做出适配更广(内存和稳定性)的游戏,但一些次时代技术需要自己实现。而Unreal学习成本较高开发效率较低,但是更容易做出顶尖效果的游戏,更适合开放世界,大型项目。

四、总结

如果是项目周期和成本比较宽裕,希望开发超高画质超高品质,开放世界的游戏,同时图形向技术积累较弱推荐使用Unreal,特别是FPS射击类游戏;如果希望开发周期更短,或者有着深厚技术积累和技术支持推荐使用Unity。此外引擎的选择也受美术和策划的影响,特别是美术同学,对编辑器和引擎的熟悉成度对进度,效果和性能也有着非常大的影响。

其实对于大部分的游戏,两款引擎都可以满足需求,主要的差异还是在品质,时间,成本的项目管理三角形的取舍上。适合自己的才是最好的。

JAVA和C#哪个更适合学习游戏开发?

从游戏开发用什么编程语言来解释:

游戏需要运行到不同的平台上,所以平台也在一定程度上影响游戏开发使用的语言。

目前我们熟知的平台主要分为两大类:PC端和移动端。

PC端:使用的编程语言大部分是我们熟知的C/C++,因为我们使用的操作系统如window,mac的底层是C,而使用C/C++可以极大的发挥性能上的优势;

移动端:又可以分为IOS与Android两个方向来说。Android上面的游戏以Java开发居多,大概是因为安卓系统本身就是以Java开发为主的;IOS上面的游戏以object c开发居多,也主要是因为系统本身的因素;

但因为一款游戏要部署到各个平台的成本太高了,所以现在主流的技术是使用跨平台的游戏引擎开发,然后发布到不同的平台。因此现在选择语言主要看主流的游戏引擎使用哪些语言。主流的游戏引擎有:unity,cocos,unreal等。其中,unity是以C#语言为主;cocos有C++、lua、js等开发语言;unreal也主要是以C++为主。

事实上,大部分高水准的游戏是以C++结合lua来开发的。C++负责处理高性能的部分,lua处理逻辑部分来加快开发速度。即使是使用unity引擎,大部分产商也会选择C#结合lua的方式来开发,C#负责核心部分,lua处理逻辑部分。

以王者荣耀为例,王者荣耀团队的相关文章中有明确提到,客户端,也就是手机上的的APP是用的Unity3D游戏引擎。具体的开发语言以C#为主。至于王者荣耀的后端编程语言,基本可以确定是C++,C++到现在都是腾讯公司的核心技术栈,并且游戏领域,使用java/php 等语言很难达到游戏对性能的要求,编程难度较大。

综上分析,如果是想从事游戏开发方向,当然是首选C#(以及其他C语言家族)。

java对比游戏引擎的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java和游戏开发哪个更有前景、java对比游戏引擎的信息别忘了在本站进行查找喔。