上面这些只是Java游戏的一小部分。然而,即使还有其它很多基于Java的游戏,相对于整个游戏产业来说,Java游戏社区仍然非常小,以至于其
力量在手机游戏之外的领域几乎可以被忽略不计。但是实际上Java作为一种游戏编程语言和平台,这些年还是取得了长足的发展,在后applet时代走着复
兴之路。
当然,Java可以做游戏,并不意味着Java就适合做游戏,那么:
基于java对于一个游戏来说到底意味着什么?
1、Java是一门经过充分发展,已经十分成熟的语言。
Java语言称霸企业级应用这么多年,事实证明了它非常适合于开发大型软件。当Java的运行效率不再是问题的时候,Jjava语言严谨、高抽象、可读性强的优势就体现出来了。这对于规模越来越庞大的游戏软件来说,有着不小的诱惑。
2、Java作为平台,极大的方便了游戏脚本的使用
对于游戏开发来说,由于涉及到比较复杂的情况(有时候甚至是美学问题),开发过程很多时候是一个不断修改的过程,可以方便的修改游戏内容是十分
关键的。对于很多游戏引擎来说,都有自己编写的脚本解释器,用来解释一些自定义的游戏脚本语言(一般为命令式脚本,比如moveplayer(int
x,int y),playersmile()之类的东西),另一些则提供了例如lua和rubby等的脚本语言来访问游戏引擎。由于其虚拟机特
性,java本身就可以用来编写游戏脚本,目前也有例如beanshell、groovy等脚本语言可以方便的无缝的和java语言进行交互,这些都极大
的方便了java游戏编程。
3、跨平台?
跨平台,每当比较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。
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([url]http://new.lwjgl.org/index.php[/url])
全名为light weight java game
library。作为一个非官方的对java游戏的全面解决方案,lwjgl将游戏图形(opengl)、音效(openal)、控制输入集合为一,以成
为java界的directx(不是direct3d)而努力。其在图形方面采用了opengl的java绑定,其函数与c语言版的完全相同,所以对于习
惯opengl编程的程序员来说比较友好。目前有大量的java游戏和游戏引擎是基于lwjgl的,它可以说是java游戏社区最广为被使用的函数库之
一。
分享到:
相关推荐
通过本项目能帮助你掌握Java小程序的工作原理和使用方法、熟练掌握Java的事件处理机制、简述Java游戏开发现状和走向、了解AWT的基本体系结构,掌握窗口的基本原理、了解Swing的基本体系结构,掌握Swing组件的使用...
同时,学生还需要了解 Java 游戏开发现状和走向、图形用户界面的概念、Java 小程序的工作原理和使用方法等知识。 该毕业设计项目的主要参考文献包括: 1. 张红旭. 浅谈 Java 的发展及特点[J]. 硅谷, 2010(6):50-50...
本文将对Java的发展现状和趋势进行分析,并对Java在与其他主流编程语言的竞争中的发展前景进行预测。 一、Java的发展现状 根据TIOBE排行榜,Java仍然位居榜首,占据着17%的权重。从图1可以看到,Java的流行度虽然...
手游的开发涉及Java和C语言等编程语言,它们从简单的游戏如“俄罗斯方块”发展到具有高度娱乐性和交互性的复杂游戏。其中,《愤怒的小鸟》就因其出色的游戏体验而成为手游市场中的佼佼者。 在移动网络游戏行业特点...
1. 服务外包的基本概念、特征和分类,以及中国服务外包市场的现状和未来走向。 2. 熟悉国家对服务外包的政策支持,并理解外包企业的工作模式和人才需求。 3. 了解服务外包的风险及其应对策略,以及国际外包行业标准...
标题中的“2006-2007年中国软件技术应用现状和趋势分析”表明了这份资料主要关注的是中国在2006年至2007年这段时间内,软件技术在实际应用中的状况以及未来的发展走向。这涉及到的领域可能包括但不限于操作系统、...
综上所述,这个Java作业管理系统毕业设计涵盖了教育信息化的需求、系统开发的技术选型、需求分析方法、系统设计思路以及实际应用效果等多个方面的知识,对于理解和掌握软件开发过程具有很好的参考价值。
本课题的目标是设计并开发一个基于Java Web的仿淘宝购物网站,包括用户管理和商品展示、购物车管理、订单处理等前台功能,以及分类管理、商品管理和订单管理等后台管理功能。 【研究内容】 1. 前台功能: - 用户...
10. 计算机软件开发技术的现状及应用探究:全面分析当前软件开发的技术现状,探讨其在各行业的应用和发展趋势。 11. 基于计算机软件开发的 JAVA 编程语言探讨:深入研究JAVA编程语言在软件开发中的优势和挑战,以及...
Java作为一种跨平台的编程语言,具有丰富的类库和强大的网络功能,适合开发分布式应用,如本项目中的视频监控系统。其面向对象的特性使得代码结构清晰,易于维护,而Java的多线程处理能力则能够支持高并发访问。 ...
也就是要将水电管理的各项数据,如统计信息、维修信息、收费信息等在收录、存档、报表分析、交流等方面实行计算机网络化运行,为高校水电管理工作提供优质高效、可靠、实用、及时、准确的信息支持和信息服务,以全面...
- **休闲游戏兴起**:手机游戏走向大众化,开发商和发行商更加关注消费者需求,大品牌占据主导地位,如电影、电视、流行文化及经典游戏品牌。 - **游戏机巨头入场**:传统游戏机行业的公司开始涉足手机娱乐领域。 #...
基于Java的可视化高校公寓管理系统将采用Spring、SpringMVC和MyBatis(SSM)框架进行开发。Spring提供依赖注入和面向切面编程,SpringMVC负责处理请求和响应,MyBatis则作为持久层框架,用于数据库交互。前端界面将...
- **Java**:作为系统的主要开发语言,Java以其跨平台性和丰富的类库,使得开发过程更加便捷。Java的面向对象特性使得代码组织清晰,易于维护。 - **SQL**:用于构建和操作数据库,与Java配合实现数据的增删改查,...
### Flash AS3.0游戏制作大全 #### 一、引言与Flash游戏发展...本书不仅介绍了Flash游戏的历史和发展,还深入探讨了如何利用ActionScript 3.0进行高效的开发工作,是学习和提高Flash游戏开发技能不可或缺的参考资料。
在公司,他从零开始学习Java编程,经过一段时间的磨练,他逐渐从修改简单代码、制作报表,走向独立开发模块和工作流项目,成长为一个可以独当一面的Java程序员。 在程序员的道路上,他非常幸运地得到了一位“小师父...
将采用MVC设计模式,利用Java Web平台和相关开发工具进行系统设计与开发,包括需求分析、系统功能设计、代码编写、服务器调试等步骤。 6. **进度安排**: - 搜集资料、完成开题报告; - 安装配置开发环境,熟悉...
该论文首先分析了互联网环境下农产品交易的现状,然后提出了基于互联网+朋友圈农产品交易的研究内容,对该系统进行需求分析和系统设计。最后,对系统实现细节进行研究。 关键词:Android应用;Java服务器;农产品...