美食健康数码游戏家居教育娱乐生活时尚旅游社会情感汽车健身育儿科技自然历史文化国际宠物财经星座体育

为什么Java不适合游戏开发?

|2024-08-02 22:50:41|浏览:78

一、为什么Java不适合游戏开发?

作为一个多年游戏服务端开发者,我来回答一下这个问题。只要你仔细去招聘网站看,会发现游戏招java的非常少(我希望杠精不要抬杠,我说的少,而且非常少,并不是说没有)。那么为什么在其他领域的霸主在游戏行业连喝口汤的资格都没有呢?其实主要有两个原因,而且这两个原因都和程序员最关心的效率有关系,一个是开发效率,一个是运行效率。很遗憾的作为一个不上不下的java两个都占不了。

首先是开发效率,在几年前手机游戏开始火爆,游戏公司多,产品相似度高,那么如何能以最快的速度开发完游戏并且上线运营,在快速迭代中试错,降低开发周期就是减少开发成本。在这种环境下,很多脚本语言成了首选,比如nodejs、php甚至还有lua和python(这里多说一句,别看lua语言本身简单,其实lua在游戏领域的使用成本是非常高的,至少在这四种脚本语言中是最高的,因为他只是一个胶水语言,要依附于c/c++,作为游戏周边的库都要自己造轮子或找轮子,同时对于引擎部分来说,对核心开发人员要求也非常高,如果公司没有经验丰富的c/c++程序员,lua基本玩不转)。在这些脚本语言面前,java毫无优势。nodejs开箱即用,用js可以前后端一起写(html5的流行让这种情况更是越来越多)。而php上手容易,开发简单,而且像一些用http的弱交互游戏,热更新简直不要太爽,无感知修bug。一些简单的休闲游戏,用这些脚本语言完全可以很快速的完成,就拿之前比较火的刀塔传奇来说,用这些脚本语言一点压力都没有,还有特别是棋牌类游戏,脚本语言更是首选。

其次再来说说运行效率,在一些密集型计算的游戏中,c++是首选,一些大型游戏,对计算要求很高,业务逻辑复杂的情况下,提升效率就能多容纳在线人数,也是成本的减少。同时对内存要求也高,使用c++可以数着内存写代码(手法过于夸张[捂脸]),对象啥时候申请,啥时候释放都是程序员说了算,gc消耗不存在的。而java生成的都是字节码,代码执行都要经过jvm来跑,这中间的消耗对于那些对性能要求苛刻的程序来说,绝对不能接受。

综合以上两点,java处于运行效率和开发效率中间的语言,在游戏这个行业自然是不会受到青睐。

二、java开发什么?

java开发是:

1、WEB,用于表示Internet主机上供外界访问的资源。javaweb,使用java技术开发web页面。供浏览器访问的项目;

2、web开发分类,静态和动态web资源。

三、开发大型游戏用C++还是JAVA好?

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

JAVA,上手容易,深入不难,一个月熟练不是随便说说的,是事实,主要开发跨平台的游戏,具有平台移植性良好的特性,但是优化不好,语句多数比较冗余(C++写1000句能完成的,JAVA可能要写5000句),但是浅显易懂,JAVA开发的游戏有个较大的弊端,内存占用都很高(硬件越来越发达,对于优化的追求没有以前那么高了,这也是这些年JAVA开发游戏能兴起的主要因素之一吧)当然,你即时熟练掌握了C++或者JAVA,也不是说你立马就能上公司做游戏开发的,一般的游戏公司都会有自己的一套游戏引擎,这些引擎或是用C++写的,或是用JAVA写的,或是其他的……然后封装一下,会让你基于引擎的接口来开发真正的游戏,所以,语言是基础。

四、JAVA和C sharp哪个更适合游戏开发?

学习、使用C#两年了,对于C#有一些自己的看法:

1. 上手快

相比于其他的上位机语言,C#的学习时间很短,大部分都是在应用中,而且它提供了大量的封装函数、方法,无需自己设置,调用即可

2. 界面直接简单

以开发Windows界面为例,C#可以直接拖拽控件到界面上,双击控件即可进入语法编辑界面,简单方便快捷

五、如何用JAVA开发游戏服务器?

首先,我得说明的是,目前市场上新人很难去做pc游戏开发,要么是做页游要么是手游。

页游不清楚我就不说了,手游里面,客户端主要就是c2d和u3d。

如果你想做客户端,那么你可以转学u3d,因为它使用的语言是c sharp,这个语言和java相似。网上unity的教程也很多,你随便找一下就有了。

再说说手游服务器,其实我入行服务器还是挺巧合的,当初本来是打算做客户端的,都入职了,因为招不到服务器,就让我转服务器了。。

服务器的教程,我至今也没找到,而且也找不到系统的教程。

开源的服务器框架也只熟悉kbengine和scut。其中一个是cpp做底层python做开发的,一个是c sharp做开发。而且scut已经两年没有更新了,应该是死掉了。

所以,想要学服务器开发,得碰点运气。

java服务器目前主流框架技术有 网络层netty或mina,数据协议protobuf,数据库mysql,缓存数据库redis,jdbc一般是mybaits或者jpa,项目管理maven,设计层面spring

然后还需要熟悉多线程,linux的基本操作,git或者svn。

差不多了,这些都有个大致的了解,会用,应该就能找到工作了。

后面再深入需要学习的也挺多的,到时候你再根据业务需求自己琢磨着学吧。

六、java初级项目开发?

  

1、首先要学习java的基础知识。  不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对于这些新技术的理解也是一知半解,学不到根源。  

2、做一个java项目  在学习完java的基础知识之后,做一个java项目来巩固一下,在项目中会发现很多问题,通过解决问题,加深基础知识的掌握。  

3、学习数据库的基础知识和开发应用  软件开发离不了数据库,掌握几种流行的数据库:Oracle、SQL  server、MySQL等。  

4、JEE基础  在这里首先要学习网站基础,包括HTML、DHTML、JavaScript;接着要学习XML,XML JAXP;然后学习JEE基础,包括JEE开发环境,RMI/IIOP、JNDI;最后学习JDBC数据库的应用开发。  

5、web开发  全面的JEE的web开发知识:Servlet JSP javaBean TagLib,到这里做一个完整的web应用项目开发。  

6、EJB开发  包含全面的EJB知识:1)EJB入门和无状态会话Bean;2)有状态会话Bean;3)BMP和CMP是实体Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的开发和应用;  

7、开源框架的学习  学习几种现在流行的开源框架:Struts、Spring、Hibernian、Webwork等。完整的学习这些框架的开发和应用。如果有兴趣还可以学习Ibati框架、AJAX技术和DWR框架的开发和应用。  

8、JEE项目  综合应用JEE的知识来开发一个完整的应用。  

9、面向对象分析与设计  java是一种面向对象的语言,所以要深入学习面向对象的分析与设计,另外还要学习UML统一建模语言。  

10、接下来就是系统设计与架构  这里要学习的是Java设计模式、EJB设计模式、JEE核心设计模式、JEE应用程序框架设计。  

11、软件工程  软件工程基本理论知识的学习,还有Rup和极限编程。  

12、技术研究  学习搜索引擎技术:如Lucene等、工作流技术:包含Shark、JBPM等、SOA架构和应用。  

13、综合项目实战  实现一个企业级的应用。  每个阶段在做项目的基础上牢固的掌握应用到的知识,只有在实际的应用中发现问题,加深所学的知识。

七、visualstudio可以开发java吗?

不可以。Visual studio是微软的.net开发平台,可以开发Asp,JSP,C#等,但是,它无法编译Java文件,同样也无法编译jsp文件,虽然,它能识别jsp,并能够自动检查jsp的一些格式,但是你要将你写好的jsp移到Eclipse下编译,或者在cmd中编译。所以不如直接使用Eclipse。

八、java开发优势是什么?

阿里巴巴是 java深度使用的大型公司。阿里挖了很多曾经参与jdk开发的大佬。

java拥有几百万开发者,超过一半以上的互联网公司使用java语言开发,这就是它的优势。庞大的用户群体,会不断的完善这门语言。让他独领风骚。

Java是世界上最好的语言。

九、java能开发什么项目?

java 能开发桌面程序,服务器后台,java web 程度等

十、macbookpro适合java开发吗?

MacBook Pro可以做Java开发工作,主要使用MyEclipse。

使用MyEclipse之前需要安装好Windows系统和JDK集成环境。因为MyEclipse开发软件和JDK集成环境都是运行在Windows系统上的,没有开源,不能再Mac OS X系统下运行。

Windows7系统、MyEclipse开发软件、JDK集成环境的安装、配置、破解教程网上都有,可以上网查询。

zhongyao00-1
08-02 22:50优质作者
关注

猜你喜欢

为你推荐