学习Java和游戏有什么关系

学习java已越来越成为一种趋势,java也应为它的应用范围广而备受热捧,学习java和我们平常玩的游戏有什么关系呢?以下是笔者的总结

java特点

  • 01

    Java是一门经过充分发展,已经十分成熟的语言 Java语言称霸企业级应用这么多年,事实证明了它非常适合于开发大型软件。当Java的运行效率不再是问题的时候,JJava语言严谨、高抽象、可读性强的优势就体现出来了。这对于规模越来越庞大的游戏软件来说,有着不小的诱惑。

  • 02

    Java作为平台,极大的方便了游戏脚本的使用 对于游戏开发来说,由于涉及到比较复杂的情况(有时候甚至是美学问题),开发过程很多时候是一个不断修改的过程,可以方便的修改游戏内容是十分关键的。对于很多游戏引擎来说,都有自己编写的脚本解释器,用来解释一些自定义的游戏脚本语言(一般为命令式脚本,比如moveplayer(int  x,int y),playersmile()之类的东西),另一些则提供了例如lua和rubby等的脚本语言来访问游戏引擎。由于其虚拟机特性,Java本身就可以用来编写游戏脚本,目前也有例如beanshell、groovy等脚本语言可以方便的无缝的和Java语言进行交互,这些都极大的方便了Java游戏编程。

  • 03

    跨平台 跨平台,每当比较Java与其他语言的时候,总是要谈到跨平台。但是在Java游戏领域,write once ,run everywhere,听起来更像是一个冷笑话。这个笑话有多冷呢?(手机游戏我不熟悉,但是确实有人用“痛苦”来形容开发运行在不同手机上的 Javame游戏)对于其他大多数Java游戏来说,或者通过applet或者通过Java web start来部署,这两种方式无一例外的都要用到浏览器。对于Java web start来说,问题相对较小,程序员必须处理的问题主要是如何让非专业用户成功安装指定的JRE版本的问题,虽然很麻烦,但是是可以解决的。对于 applet来说,问题就变得复杂的多,很多问题只会在特定的操作系统配上特定的浏览器时才会出现,即使是同一品牌的浏览器,不同的浏览器版本也会出现不同的问题,同时这里还涉及到客户机默认是使用opengl pipeline还是directdraw pipeline的问题。而我们现在甚至还没有开始讨论当3d游戏需要使用底层图形api时的情况,无论是applet还是web start一旦在程序中使用了任何一种opengl的Java绑定,客户机各不相同的显卡以及同一款显卡的不同驱动都会带来不同的问题,而这些问题是随着操作系统和浏览器的不同而不同的,操作系统数×浏览器数(web start不需要考虑浏览器)×显卡数×每款显卡平均的驱动版本数=噩梦。最后你不得不妥协于这样一个现实-----即使电脑在硬件上满足程序的要求,你也无法让你的程序运行在这些电脑中的每一台上,除非你的用户都是专业人士。 当然,其实现状并没有听起来那么糟糕,对于不使用Java的大多数游戏来说,根本就只能运行在一个平台上,许多游戏对directx或者 opengl的版本有要求,更不要提那些运行在家用游戏机上的游戏了,跨平台是整个游戏业的大问题,Java只是像其他人一样没有把这个问题彻底解决掉而已,但仍然比其它技术做得要好。不过,值得一提的是,在那些不直接使用硬件加速的网页小游戏上,Java确实在稳定性和方便安装上输给了flash;在家用机方面,Java是0,而微软的xna(c#)可以跨xbox360和vista。

  • 04

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

  • 05

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

(0)

相关推荐

  • 学习java的步骤和心得体会

    我做开发也是刚满一年,现在回想自己学习java的经历,当时真希望有一部大体的学习框架,这样自己就不会走许多弯路了,这是我在这一年工作和多年学习中的,希望对迷茫的java爱好者有所帮助: 第一步:首先要 ...

  • 学习java如何入门

    入门要一步一步完成,需要在途中为自己确立一个一个的目标来完成.下面为大家介绍一下,依照这样的目标完成,相信你一定会成为高手! 操作方法 01 你需要精通面向对象分析与设计(OOA/OOD).涉及模式( ...

  • 学习Java的步骤以及职业规划

    很多初学Java的朋友都想明确学习Java这门语言对于后续工作上的发展,在这里我们整合了一张图,来给大家提示. 既然走上了这条Java学习就业之路,那就必须要脚踏实地,切莫急功近利. 操作方法 01 ...

  • 学习java编程不会英语怎么办

    随着互联网的发展,很多人已经投入到IT行业当中来,而编程是IT行业中一个有技术,薪资也不错的一个门类,所以很多人想学习编程,其中java课程是现在比较主流好学的课程之一,但是很多人因为学习当中因为编程 ...

  • 零基础学习java看书视频相结合

    操作方法 01 近年来,Java视频逐渐取代了"书"的作用,许多初学者已经将看视频作为最主要的学习方式.然而,通过长期对java自学者的观察研究,我们发现,书和视频均有各自的作用, ...

  • 怎样高效快速学习JAVA?

    Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器显示了Java的魅力:跨平台.动态的Web.Int ...

  • 如何学习java?:[6]数组的定义及使用

    java目前非常流行,那么如何学习java呢?本系列经验将一步一步的带你进入java世界,遨游java的太空.本经验介绍java的数组的定义及使用. 一维数组 01 数组是一组相关数据的集合,一个数组 ...

  • 如何学习JAVA

    Java是一门面向对象编程语言,有简单性.面向对象.多线程.动态性等特点.那如何学习java? 操作方法 01 选好合适的教材. 不管是学哪种编程语言,基本的教材都必不可少,如果想要系统的专业的学习, ...

  • 如何学习java?:数组的定义及使用

    现在是一个高速发展的信息时代,越来越多的人都想要去学习java,今天小编就来跟大家讲讲如何学习java以及数据的定义和使用,希望对大家有所帮助. 操作方法 01 虽然java的学习过程非常辛苦,但是只 ...