游戏引擎是什么概念?为什么Java不适合游戏开发

本文目录
- 游戏引擎是什么概念
- 为什么Java不适合游戏开发
- 如何学习安卓手机游戏开发
- Java可以应用到Unity引擎当中吗
- 安卓游戏开发引擎有哪些安卓游戏开发引擎
- 国内公司开发自研游戏引擎的意义何在
- 参加游戏开发培训需要什么基础
- 怎么用java做游戏
- 腾讯手游助手游戏引擎下载失败,显示网络故障,要怎么办
游戏引擎是什么概念
游戏引擎主要是一些已编写好的可计算机游戏系统或者一些交互式实时图像应用程序的核心组件。大多数引擎集成了图形、声音、物理和人工智能等功能部件。游戏引擎会被称为“中间件”,因为它们可以提供灵活和重用平台,向游戏开发者提供所需要的全部核心功能,其目的在于让游戏设计者能容易和快速地写出游戏程序而不用从零开始。
开发游戏引擎目的是简化游戏制作的复杂度,缩短游戏开发周期,降低产品制作成本,因为封装好的引擎可开发多种类型的产品,所有这些对于高竞争性的游戏产业来说都是关键因素。
硬件型号:惠普暗影精灵6
系统版本:Windows10 专业版
软件版本:Unity3D 5.0Unreal Engine 4 v4.5
为什么Java不适合游戏开发
作为一个多年游戏服务端开发者,我来回答一下这个问题。只要你仔细去招聘网站看,会发现游戏招java的非常少(我希望杠精不要抬杠,我说的少,而且非常少,并不是说没有)。那么为什么在其他领域的霸主在游戏行业连喝口汤的资格都没有呢?其实主要有两个原因,而且这两个原因都和程序员最关心的效率有关系,一个是开发效率,一个是运行效率。很遗憾的作为一个不上不下的java两个都占不了。
***隐藏网址***
其次再来说说运行效率,在一些密集型计算的游戏中,c++是首选,一些大型游戏,对计算要求很高,业务逻辑复杂的情况下,提升效率就能多容纳在线人数,也是成本的减少。同时对内存要求也高,使用c++可以数着内存写代码(手法过于夸张),对象啥时候申请,啥时候释放都是程序员说了算,gc消耗不存在的。而java生成的都是字节码,代码执行都要经过jvm来跑,这中间的消耗对于那些对性能要求苛刻的程序来说,绝对不能接受。
综合以上两点,java处于运行效率和开发效率中间的语言,在游戏这个行业自然是不会受到青睐。
做游戏引擎,当然还是看性能啦,c的性能最好。java性能其实也很好了,看谁出个简单快速的框架呗
JAVA可以做游戏服务端的开发,也就是网络游戏的开发,网络游戏的实时性高,对高并发,数据的一致性处理要求较高,并且因为是自身JVM的垃圾回收机制对服务器的内核性能要求高,会占用一定的资源去处理这部分数据,游戏的实时性代表了大量数据会经常被更改替换。
JAVA不是不能做,而是对开发人员的能力要求高!如果能够充分利用JAVA的并发优势,那是可以做到的,并且这已经被有些小公司当做网络游戏服务端的开发语言了。
PC端,移动端的单机游戏就不用再考虑JAVA了,显然JAVA的2D3D处理效果没有一些主流的游戏开发语言好!语言具有其使用场景,抓住其优点去利用之,而不是拿它的缺点如何别的语言优点相比!如今JAVA是做服务端开发的不二人选,因为他的帝国大厦已经很完善,开发人员也多!
因为java中间多出来一个jvm,效率低,游戏实时性很重要。
看一个语言适合开发什么,主要有三点
1.效率问题,包括开发效率和执行效率。
2.生态圈,有人家提供好的成套解决方案,为什么不用呢?
3.产品的侧重点。
就拿java和c++来说,java主要用于web开发,但是c++通过cgi也可以写web,而且c++的执行效率甩java几条街,但是为什么不用c++写web呢,因为c++的开发web的效率太低,而java有各种web方面的框架,开发效率高。
如果产品是游戏,游戏实时性很重要,你玩个游戏反应慢半拍那肯定很恼火。游戏这个产品的实时性就注定了要采用高效率的语言开发,那c,c++自然就跑不掉了。
Java何来不适合游戏开发一说的呢?
毕竟游戏有分类,而且游戏也分客户端,服务端
很多游戏的服务端就是Java的
而且实时性要求不高的游戏客户端,也可以用Java开发,例如我的世界
我想题主想问为什么3A大作没有用Java开发的吧
这其实是一个路径绑定问题,目前大作基本上都是用游戏引擎做的,而且这些游戏引擎都是发展多年的,如果用Java做,可能要用没经过业内验证的新东西,大公司不想冒险,还有Java的垃圾回收机制本身也是个难点,不适合做实时性非常强的游戏。
java开发游戏性能和效率差,开发一些小游戏还可以,java面向对象,所有方法都是封装在类里的,要调用方法就得实例类,而游戏主要侧重的是逻辑
对象就像是很多功能的机器,但是我的游戏逻辑只要每台机器的其中一个功能,但要用的话必须把这一整台机器制造出来。这就是面向对象的缺陷吧
而c是面向过程的可以更加灵活地设计过程逻辑,少去很多多余东西,大大提高性能
java的长处就是利用各种现存的类包,达到复用的效果,大大提高开发效率,
当然java也可以只针对逻辑来设计类,但那不是java的长处,没有多大的意义
百度搜索圈T社区()免费视频教程
如果你问我java适合开发游戏吗?我回答肯定是适合的,java开发效率高,运行效率一般,需要运行效率的地方用c或者cxx写就好了,现在市面大多数游戏都不是单一编程语言开发的,不需要在语言方面纠结太久。
很多人说,运行效率也很重要,但实际上,一般逻辑,你是感受不出差异的,普通逻辑使用java或者c#,或者脚本语言等这种开发效率,调试效率高的语言会让你开发更舒服。特别是脚本语言。
c和cxx只在特别需要效率的地方才使用。
哈_,这里子期!java开发游戏性能和效率差,开发一些小游戏还可以,远标老师讲过java面向对象,所有方法都是封装在类里的,要调用方法就得实例类,而游戏主要侧重的是逻辑
对象就像是很多功能的机器,但是我的游戏逻辑只要每台机器的其中一个功能,但要用的话必须把这一整台机器制造出来。这就是面向对象的缺陷吧
而c是面向过程的可以更加灵活地设计过程逻辑,少去很多多余东西,大大提高性能
java的长处就是利用各种现存的类包,达到复用的效果,大大提高开发效率,
当然java也可以只针对逻辑来设计类,但那不是java的长处,没有多大的意义
如何学习安卓手机游戏开发
1、首先要有Java基础
安卓是基于Java的,所以想要从事android开发相关工作一定要先有一定的Java基础知识,这里的Java基础主要包括两方面:JavaSE基础和JavaWeb开发基础。
2、JavaSE基础
JavaSE是整个Java的核心,其他所有的Java相关知识点,都是在JavaSE的基础上进行的扩充而已。所以对JavaSE的学习,需要牢固掌握Java的基本语法、理解面向对象的一些概念、Java异常、集合框架、JavaI/O,反射、泛型和多线程以及网络编程等知识。
3、JavaWeb开发
JavaWeb的主要内容包括:
Java解析XML文件DOM4J、MySql数据库的应用、多表连接查询的应用、Jsp和Servlet应用、Http协议解析、Tomcat服务器的应用配置、WebService服务配置应用。
4、Android基础
有了Java基础之后还要学习一些android开发的基础知识,包括学Android的基本控件开发和使用、高级控件的使用,掌握布局和自定义控件、Android的数据存储方法,Android的图形编程技术,2D图形的编程,图像的旋转、动画框架等。
5、android游戏编程知识
android开发也分为很多方面,所以从事android游戏开发就要学习一些安卓游戏开发方面的专业知识,包括Android游戏开发概述,SurfaceView的使用方法,物理小球技术碰撞检测技术,游戏引擎基础概念,Cocoa2d-Android引擎使用方法,OpenGLES使用方法,图片、文字和背景音乐等资源的使用方法。
拓展资料
关于大型游戏的开发:
大型游戏(cs已经有些过时了)魔兽世界,星际等等还有国内的剑侠情缘,这类游戏都是大型游戏。开发它们肯定不是一个人能完成的,一般的大型游戏开发绝不是用某种语言这么单纯的问题。
一个大型游戏的开发需要庞大的团队使用各种各样的语言和工具来完成。总结一下主要有C/C,汇编语言,着色器语言,脚本语言,高效的开发语言C#或Java。
开发游戏我们经常听到的是游戏引擎,一个游戏引擎决定一个游戏最基本的东西操作和效果,那么一般的游戏开发架构从底到顶一般是DirectX(Windows平台)——游戏引擎——游戏。DirectX可是大名鼎鼎相当于所有显卡的一个统一接口,为游戏提供一个利用硬件渲染的编程模型,但DirectX接口为了追求高性能功能非常简单基本的绘图功能,不利于游戏的高效开发。
此时就需要根据游戏特点对其进行适当的取舍和封装,实现一组更高抽象的游戏开发接口和框架,可以理解成游戏引擎中的图形引擎。这部分的开发一般使用的语言是C/C和少量的汇编语言。
Java可以应用到Unity引擎当中吗
java不太适合unity引擎或者说java不适合游戏开发:
Java不具备脚本特性。很多游戏的逻辑层是用脚本或者胶水语言写的。这是因为游戏的核心架构是一个类似实时模拟器的系统。绝大多数引擎都把每个单元封装成一个module。对于每一个module的代码都用脚本来写,方便新增和删除。但是Java的语法繁琐,面向对象逻辑结构深,不太适合脚本化。
Java作为静态语言,内存控制较弱。这一点其实并不主要。因为大多数引擎都是C++底层,上层用脚本。所以Java对内存控制弱的部分当然也可以用C++控制。但是Java脚本性,语言表达能力的不足,Java作为上层语言太繁琐,作为下层语言对内存控制能力不如C++。
Java的跨语言能力较弱。现代化语言都有Foreign language interface用于跨语言交互。其主要都是C接口。然后Java在这方面的能力不算非常多,这就导致了Java不太方便Host其他语言。
最重要一点,Java语言表达能力低。Java当然是个好语言,而且设计非常严谨。严谨的好处是大型企业应用更健壮,坏处是表达能力太弱。在游戏中,矩阵向量运算是最最最最频繁的运算之一。不支持算符重载的Java,相信我,写不超过100行代码你就会崩溃。
安卓游戏开发引擎有哪些安卓游戏开发引擎
android游戏都用什么引擎?
作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。
常见的Android游戏引擎
Angle
Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGLES技术开发。
Rokon
rokon是一款Android2D游戏引擎,基于OpenGLES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,该项目最新版本为2.0.3。
LGame
LGame是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本,目前最高版本同为0.2.6。
javaSE以及Android和Unity3D引擎哪个能开发出安卓系统的游戏?
javase是语言
Android是系统
Unity3D是引擎
android的语言的基于java的
用哪个都能开发android的游戏
只不过用unity开发游戏比较方便,毕竟是一款很成熟的游戏引擎
国内公司开发自研游戏引擎的意义何在
在我国已经有5款自主研发的游戏引擎了,接下来就让我来介绍这5款自主研发的游戏引擎吧!
1. 《九阴真经》全新3D引擎Flexi :Flexi引擎是一套完全由蜗牛自主开发、为研发“真武侠觉醒”巨作《九阴真经》而精心量身打造的全新3D游戏开发架构,该引擎包含游戏客户端、服务器、内容工具,支持高端开发团队的基础项目建设。Flexi引擎的架构设计能够兼容多种需求,在研发的过程中也参考了大量的图形学论文,同时包含了很多蜗牛公司创新的设计,是一款实实在在的国产3D引擎。
2. 完美时空的Angelica引擎:由完美时空公司自主研发并拥有自主知识产权的游戏引擎Angelica,自推出之日起,就从来没有停止过自身的改进情况,推出了包括《武林外传》、《完美世界》、《诛仙》等网络游戏,号称采用了Angelica 2.0开发的《赤壁》更是博得了众多好评。其后的休闲网游《热舞派对》、3D飞天网游《口袋西游》也采用了此游戏引擎。《完美世界》更是成为了第一款进军韩国网络游戏市场的国内网络游戏产品。
3. 游艺道游戏引擎:游艺道是一家专业的游戏引擎研发商,其自主研发的游艺道游戏引擎拥有5年以上的技术积累,经历过多款成功产品的上市运营验证,历经多年迭代,功能丰富,底层架构稳定。该引擎提供开放式的前端接口、后端引擎及丰富的游戏模板,拥有开放、多变的特性。
4. 金山的剑网3引擎:金山凭借自己的研发实力,完全自主研发,获得国家863计划支持的图形3D引擎,经过不断的完善3D引擎的功能和效果,《剑网3》的即时演算效果已经达到了电影水准。从游戏截图可以看到,草地树木岩石的细节表现、林间的光影效果、水面的动态引擎技术,都已经达到了国内网游的顶级水准。
5. 《功夫英雄》的Dominancen引擎:《功夫英雄》使用的由空中网大承网络自主研发,具有完全知识产权的第三代次世代画面引擎Dominancen(支配)。该引擎完全由国人自主研发,自04年起至今,历经近7年,投入近5000万,画面效果堪比国际顶级引擎,但同时更适合中国网游玩家的需要,低配高效,单组服务器能同时容纳万人同时在线。
参加游戏开发培训需要什么基础
接下来就来为大家介绍参加游戏开发培训需要的基础,一起来看看吧。
:man_technologist:编程语言基础
需要掌握常用的编程语言,包括C++、javascript等,手机开发使用的开发语言是C++,3D游戏开发使用的编程语言一般要使用c#或者javascript。
:video_game:开发引擎基础
掌握开发引擎,游戏开发经常用到的游戏开发引擎有unity3D和Cocos2dx。
:books:主要课程
游戏开发培训的课程主要课程:Java、C++编程语言、游戏图形系统实现、OPENGL游戏编程、网络游戏开发实战、游戏引擎设计。
:artist_palette:其他课程
其他课程:ps、Flash、游戏造型与色彩、游戏动画与特效、游戏美术实战开发、游戏开发语言基础等。
怎么用java做游戏
主要是用Java分支中的J2ME来写,但是J2ME中需要Java的基础知识。
现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明。
J2ME中使用到的Java基础知识:
1、Java语法基础:包括基本数据类型、关键字、运算符等等
2、面向对象的思想:类和对象的概念,继承和多态等等。
3、异常处理
4、多线程
J2ME中没有用到的Java基础知识:
1、JDK中javac和java命令的使用
2、Java基础中的很多类在J2ME中没有,或者类中的方法做了大量的精简。所以建议在J2ME中熟悉类库。
3、Applet、AWT、Swing这些知识在J2ME中根本使用不到。
简单说这么多,希望学J2ME的朋友们能少走一些弯路,不足之处希望大家积极指正和补充
1
相关问题全部
Iamxiaowutonxue.Firstandforemost,Iwouldliketoexpressmysinceregratitudetomysupervisor,professorHuAnjiang,forhisintellectualguidance,invaluableinstructionsandcommentsonmythesis.ItiswithhisvaluableassistancethatIhavefinallyaccomplishedthisthesis.
我来了。
1.设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。
2.所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。
3.定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。
4.豆豆的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。
5.接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。
6.开始游戏后,我们定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。
在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理。这是游戏的主要逻辑。
7.最后,游戏结束我们弹出一个对话框提示是否保存游戏得分。我们制作了排行榜信息,只保留前10名的游戏得分。首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。
8.游戏结束时保存得分信息,看是否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。
通过保存和读取排行榜信息,我们也熟悉一下文件读取操作,还有集合、排序算法的功能。
9.我是传播爱与正义的小芜同学,我的回答结束。
啊,不止一次的被问过这个问题。
作为世界上最强大的开源语言之一,Java能做任何事,写个框架?写个程序?或者说——做个游戏?
但首先你得会使用引擎——unity、虚幻,哪怕是寒霜都成,但你得会一个。
然后是最难的部分之一——模型,和贴图。一般来说,3DSMAX较多的用作游戏开发,但如果是虚幻,MAYA更方便一些。建好模型,再绘制贴图,把它扔到引擎里,第一步就算完成了。
然后,绘制场景——这需要你拥有高超的关卡设计能力,这步通常需要很长时间的学习。
然后你就可以进行程序开发了,使用Java,制作主程序,再在主程序的基础上,制作条件、精灵,和任务等等。
最后,再用你那高超的UI设计能力,做一个UI,除错后打包,你的游戏就算是完成了!
题主加油,等着你的游戏。
Java可以做3D游戏,可以做非常酷炫的3D游戏,性能并不比那些C++的引擎差!而开发效率又要高处好几个数量级!
为什么呢?因为游戏底层的图形渲染实质上都是OpenGL或者Direct3D,现代游戏引擎不大可能让你手动去做图形运算,复杂的东西都是交给底层的dll/so静态库文件以及GPU执行的,上层代码主要做好场景管理和逻辑控制。这也是为什么Unity3D这个引擎居然可以使用C#和JavaScript作为它的游戏脚本,而从来没有人说Unity3D引擎的游戏性能差。
另外,游戏的画面,不管3D还是2D游戏,影响画面效果的主要因素是游戏素材,而不是编程语言。3D游戏又有独特的着色器语言专门负责图形特效。什么HDR、PBR、SSAO、动态模糊、次世代法线贴图,通通都是靠Shader搞定的,跟你用什么语言来写游戏逻辑没有半毛钱关系。
反观Java本身的性能,现代编程语言除了C/C++,真没有哪个敢在Java面前夸自己性能的。而且Java有众多的开源类库,凭什么我们不能用Java来做游戏呢?
诚然,Unity3D、CryEngine、Unreal这样的商业引擎不仅仅是个游戏引擎,它们还有很多成熟的配套工具和资源工厂,这是Java游戏引擎所不具备的。
腾讯手游助手游戏引擎下载失败,显示网络故障,要怎么办
可能是软件的安装包不完整导致,可以尝试到官网下载【腾讯手游助手】重新安装。方法为:
1.首先在百度搜索【腾讯手游助手】,点击进入软件的官方网站。
2.在软件的官方网站中,点击下载对应的版本,目前官网提供了【傲引擎专版】和【标准版】,建议下载【傲引擎专版】,这样可以提升游戏体验。
3.下载完软件后将其打开开始安装到电脑上。由于软件体积较大,安装过程需要一定的时间。
4.安装完成后,点击页面上的【立即体验】打开进入软件。
5.打开软件后,软件即可自动连接服务器开始下载所需要的引擎,由于是官方的软件版本,因此不会出现“引擎下载失败,网络故障”等情况。

更多文章:
procreate教程(《procreate》移动局部图层教程)
2026年11月3日 17:30
pccamera摄像头驱动下载链接(有免费下载联想小新电脑相机驱动的软件吗)
2026年11月3日 17:10








