偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺析Java游戲開發(fā)現(xiàn)狀和走向

開發(fā) 后端 游戲開發(fā)
由于Java技術(shù)及硬件技術(shù)的不斷發(fā)展,許多基于Java的2D和3D游戲不斷產(chǎn)生,其中不乏大型多人在線游戲。現(xiàn)在讓我們來看看Java游戲的開發(fā)現(xiàn)狀和走向是什么樣的。

這些年由于Java技術(shù)的不斷發(fā)展,Java程序的運(yùn)行速度有了顯著提升,同時(shí)硬件技術(shù)也在不斷進(jìn)步,從而使得Java處理比較復(fù)雜的3D圖形成為可能。Lwjgl,Jogl,Java3D等技術(shù)的出現(xiàn),使Java語言可以方便的利用現(xiàn)在的顯卡日益強(qiáng)大的硬件加速能力。實(shí)際上目前已經(jīng)有許多基于Java的2D和3D游戲,其中不乏大型多人在線游戲。

Wurm online一個(gè)多人在線網(wǎng)絡(luò)游戲(06年的時(shí)候進(jìn)入了收費(fèi)運(yùn)行階段,不過你還是可以申請一個(gè)免費(fèi)帳號進(jìn)去看看):

http://www.wurmonline.com/

2007年Javaone上jmokeyengine演示視頻:

http://www.youtube.com/watch?v=ho_b18HRmGA&eurl=http%3A%2F%2Fwww%2Ejmonkeyengine%2Ecom%2F

一個(gè)比較老的視頻2005GDC上Java游戲演示視頻:

http://www.youtube.com/watch?v=Pc3LxBIVaBs&feature=related

上面這些只是Java游戲的一小部分。然而,即使還有其它很多基于Java的游戲,相對于整個(gè)游戲產(chǎn)業(yè)來說,Java游戲社區(qū)仍然非常小,以至于其力量在手機(jī)游戲之外的領(lǐng)域幾乎可以被忽略不計(jì)。但是實(shí)際上Java作為一種游戲編程語言和平臺,這些年還是取得了長足的發(fā)展,在后applet時(shí)代走著復(fù)興之路。

當(dāng)然,Java可以做游戲,并不意味著Java就適合做游戲,那么:

Java對于一個(gè)游戲的意義

1. Java是一門經(jīng)過充分發(fā)展,已經(jīng)十分成熟的語言

Java語言稱霸企業(yè)級應(yīng)用這么多年,事實(shí)證明了它非常適合于開發(fā)大型軟件。當(dāng)Java的運(yùn)行效率不再是問題的時(shí)候,JJava語言嚴(yán)謹(jǐn)、高抽象、可讀性強(qiáng)的優(yōu)勢就體現(xiàn)出來了。這對于規(guī)模越來越龐大的游戲軟件來說,有著不小的誘惑。

2. Java作為平臺,極大的方便了游戲腳本的使用

對于游戲開發(fā)來說,由于涉及到比較復(fù)雜的情況(有時(shí)候甚至是美學(xué)問題),開發(fā)過程很多時(shí)候是一個(gè)不斷修改的過程,可以方便的修改游戲內(nèi)容是十分關(guān)鍵的。對于很多游戲引擎來說,都有自己編寫的腳本解釋器,用來解釋一些自定義的游戲腳本語言(一般為命令式腳本,比如moveplayer(int x,int y),playersmile()之類的東西),另一些則提供了例如lua和rubby等的腳本語言來訪問游戲引擎。由于其虛擬機(jī)特性,Java本身就可以用來編寫游戲腳本,目前也有例如beanshell、groovy等腳本語言可以方便的無縫的和Java語言進(jìn)行交互,這些都極大的方便了Java游戲編程。

3. 跨平臺

跨平臺,每當(dāng)比較Java與其他語言的時(shí)候,總是要談到跨平臺。但是在Java游戲領(lǐng)域,write once ,run everywhere,聽起來更像是一個(gè)冷笑話。這個(gè)笑話有多冷呢?(手機(jī)游戲我不熟悉,但是確實(shí)有人用“痛苦”來形容開發(fā)運(yùn)行在不同手機(jī)上的Javame游戲)對于其他大多數(shù)Java游戲來說,或者通過applet或者通過Java web start來部署,這兩種方式無一例外的都要用到瀏覽器。對于Java web start來說,問題相對較小,程序員必須處理的問題主要是如何讓非專業(yè)用戶成功安裝指定的JRE版本的問題,雖然很麻煩,但是是可以解決的。對于applet來說,問題就變得復(fù)雜的多,很多問題只會在特定的操作系統(tǒng)配上特定的瀏覽器時(shí)才會出現(xiàn),即使是同一品牌的瀏覽器,不同的瀏覽器版本也會出現(xiàn)不同的問題,同時(shí)這里還涉及到客戶機(jī)默認(rèn)是使用opengl pipeline還是directdraw pipeline的問題。而我們現(xiàn)在甚至還沒有開始討論當(dāng)3d游戲需要使用底層圖形api時(shí)的情況,無論是applet還是web start一旦在程序中使用了任何一種opengl的Java綁定,客戶機(jī)各不相同的顯卡以及同一款顯卡的不同驅(qū)動(dòng)都會帶來不同的問題,而這些問題是隨著操作系統(tǒng)和瀏覽器的不同而不同的,操作系統(tǒng)數(shù)×瀏覽器數(shù)(web start不需要考慮瀏覽器)×顯卡數(shù)×每款顯卡平均的驅(qū)動(dòng)版本數(shù)=噩夢。最后你不得不妥協(xié)于這樣一個(gè)現(xiàn)實(shí)-----即使電腦在硬件上滿足程序的要求,你也無法讓你的程序運(yùn)行在這些電腦中的每一臺上,除非你的用戶都是專業(yè)人士。

當(dāng)然,其實(shí)現(xiàn)狀并沒有聽起來那么糟糕,對于不使用Java的大多數(shù)游戲來說,根本就只能運(yùn)行在一個(gè)平臺上,許多游戲?qū)irectx或者opengl的版本有要求,更不要提那些運(yùn)行在家用游戲機(jī)上的游戲了,跨平臺是整個(gè)游戲業(yè)的大問題,Java只是像其他人一樣沒有把這個(gè)問題徹底解決掉而已,但仍然比其它技術(shù)做得要好。不過,值得一提的是,在那些不直接使用硬件加速的網(wǎng)頁小游戲上,Java確實(shí)在穩(wěn)定性和方便安裝上輸給了flash;在家用機(jī)方面,Java是0,而微軟的xna(c#)可以跨xbox360和vista。

4. 網(wǎng)絡(luò)

Java一向強(qiáng)于解決網(wǎng)絡(luò)方面的問題,在這方面,Java主要有兩個(gè)優(yōu)勢,第一是基于applet和Java web start的游戲非常容易更新,不會像其他游戲那樣需要用戶手動(dòng)下載全新版本;第二是Java在網(wǎng)絡(luò)交互的api相對比較友好,而對于大型網(wǎng)絡(luò)游戲來說,分布式系統(tǒng)非常重要,這正是JCP的巨頭們喜歡的東西,可能由于這是一個(gè)賣硬件的好機(jī)會,sun下了不少功夫開發(fā)了project dark star來做網(wǎng)絡(luò)游戲服務(wù)端,由于這個(gè)工程還沒有到1.0,所以現(xiàn)在也很難說具體好用不好用。

5. 速度

這個(gè)沒什么可討論的,基于Java的游戲肯定會比寫得很好的c++程序慢,當(dāng)然寫一個(gè)好的c++程序所花費(fèi)的龐大的薪水也是Java不能比的。

#p#

Java游戲方面主要的技術(shù)

1. Java3D

作為sun公司較早推出的一項(xiàng)3d技術(shù),是一種高度封裝的api,構(gòu)建在opengl和direct3d之上,可以說是最有名的Java的3d技術(shù)。由于種種原因(api設(shè)計(jì),面向的用戶不明確),Java3d一直沒有辦法流行,不久前Java3d的團(tuán)隊(duì)宣布暫停對Java3d新功能的開發(fā),轉(zhuǎn)而為JavaFX開發(fā)3d 渲染引擎。同時(shí)sun的另一個(gè)項(xiàng)目 project wonderland宣布將其渲染引擎由Java3d轉(zhuǎn)為JMonkeyEngine。令人唏噓的是sun的Java3d再次進(jìn)入塵封狀態(tài),大量基于Java3d的程序和教程都面臨一個(gè)非常尷尬的境地;令人高興的是在這一領(lǐng)域終于有比sun做得更好的團(tuán)隊(duì)出現(xiàn)了。引用別人對此事的評價(jià):Java3D is dead! Long live Java "3D"!

2. Lwjglhttp://new.lwjgl.org/index.php

全名為light weight Java game library。作為一個(gè)非官方的對Java游戲的全面解決方案,lwjgl將游戲圖形(opengl)、音效(openal)、控制輸入集合為一,以成為Java界的directx(不是direct3d)而努力。其在圖形方面采用了opengl的Java綁定,其函數(shù)與c語言版的完全相同,所以對于習(xí)慣opengl編程的程序員來說比較友好。目前有大量的Java游戲和游戲引擎是基于lwjgl的,它可以說是Java游戲社區(qū)最廣為被使用的函數(shù)庫之一。

3. Joglhttps://jogl.dev.Java.net/

Jogl是Java對opengl的一個(gè)綁定,或者說是opengl接口的Java實(shí)現(xiàn),它是由sun支持的。其語法與opengl完全相同,api也緊跟隨著opengl的版本進(jìn)行更新,而Nehe的opengl范例程序大多數(shù)都有jogl版本。去年jogl正式通過jcp審核成為jsr231,是lwjgl的主要競爭者。值得一提的是,jogl項(xiàng)目的領(lǐng)導(dǎo)者Ken Russell曾經(jīng)聲明并不希望jogl成為jre的一部分,因?yàn)樗J(rèn)為這樣會使jogl的更新周期與jre相同,從而變得過于緩慢。Ken Russell目前全力工作在新的Java plug-in的開發(fā)上,而opengl的api也沒有進(jìn)行更改,所以現(xiàn)在的jogl版本將持續(xù)較長的一段時(shí)間。

4. Joal (https://joal.dev.Java.net/)

Java對openal的一個(gè)綁定,是Java音效的一個(gè)解決方案。

5. Jinput (https://jinput.dev.Java.net/)

Java對非標(biāo)準(zhǔn)輸入設(shè)備(游戲手柄,操縱桿)的解決方案。

6. JMonkeyEnginehttp://www.jmonkeyengine.com/

JMonkeyEngine是一個(gè)開源Java游戲引擎,對底層高度封裝,經(jīng)過4年的開發(fā),在去年的10月終于發(fā)布了1.0版本。在2007的Javaone會議上發(fā)布了相當(dāng)震撼的演示視頻,從而廣受關(guān)注,據(jù)說會場的許多屏幕特效也是由它完成的。在底層,JMonkeyEngine采用了lwjgl,而jogl可能會在2.0版本中得到支持。去年著名的網(wǎng)絡(luò)游戲公司ncsoft(天堂系列,激戰(zhàn),英雄城市,Tabula Rasa等游戲的開發(fā)商)將JMonkeyEngine的三位主要開發(fā)人員招入麾下,也許不久的將來我們就可以看到這一引擎的商業(yè)版本。值得一提的是,在任職ncsoft之后,引擎的主要開發(fā)者聲稱現(xiàn)在有了更多的時(shí)間進(jìn)行游戲引擎開源版本的開發(fā),而目前JMonkeyEngine的開發(fā)速度也確實(shí)大幅提升,2.0本版可能在08年稍晚一些時(shí)候就會發(fā)布。此外,由sun開發(fā)的project wonderland不久前宣布將把其渲染引擎由Java3d轉(zhuǎn)為JMonkeyEngine,使得JMonkeyEngine進(jìn)一步受到廣泛關(guān)注。

7. Project Darkstarhttp://www.projectdarkstar.com/

目前project darkstar為0.95版,是sun專門針對網(wǎng)絡(luò)游戲的方面的應(yīng)用所開發(fā)的。這個(gè)項(xiàng)目主要致力于解決大型游戲服務(wù)器的分布式應(yīng)用問題,個(gè)人感覺類似于網(wǎng)絡(luò)游戲應(yīng)用中的j2ee。對于普通游戲的網(wǎng)絡(luò)傳輸,project darkstar也給出了自己的解決方案。但是不少人認(rèn)為darkstar并不致力于簡化普通游戲的網(wǎng)絡(luò)應(yīng)用,因?yàn)檫@個(gè)項(xiàng)目主要是對大型網(wǎng)絡(luò)游戲服務(wù)器的分布式應(yīng)用進(jìn)行解決,從而促進(jìn)sun自己生產(chǎn)的服務(wù)器的銷售。當(dāng)然我并沒有真正使用或研究過它,只是道聽途說,很有可能有錯(cuò)誤。

8. Project Wonderlandhttps://lg3d-wonderland.dev.Java.net/index.html

Sun開發(fā)的一個(gè)3d虛擬世界構(gòu)建工具,sun使用這個(gè)工程制造了一個(gè)虛擬工作環(huán)境MPK20,物理上處于不同大陸的人們在這個(gè)虛擬世界中可以在一間屋子里協(xié)同工作,這個(gè)項(xiàng)目的演示視頻非常不錯(cuò),建議去它的主頁看一下。

值得一提的Java游戲

國內(nèi)有一個(gè)叫《海天英雄傳》的2d網(wǎng)絡(luò)游戲號稱是用Java實(shí)現(xiàn)的,地址:http://herogame.njoys.com/,這款游戲幾年前最鼎盛的時(shí)期也沒什么名氣,目前這個(gè)游戲基本已經(jīng)處于生命周期的最后階段了,可能不久后就會停運(yùn)。

Wurm online一個(gè)多人在線網(wǎng)絡(luò)游戲,大多數(shù)商業(yè)版本的Java游戲?qū)嶋H上都是將Java代碼預(yù)先編譯成字節(jié)碼,因而不需要客戶安裝Java虛擬機(jī),這個(gè)游戲是少有的幾個(gè)確實(shí)要求客戶安裝Java虛擬機(jī),而同時(shí)又運(yùn)營的相當(dāng)不錯(cuò)的游戲。地址:http://www.wurmonline.com/

未來

目前來看Java游戲并沒有出現(xiàn)顯著的上升趨勢,除手機(jī)游戲外,Java游戲基本處于蟄伏狀態(tài)。未來Java游戲可能迎來幾個(gè)契機(jī):

1. Java SE 6 Update N (之前被叫做 "Consumer JRE")的發(fā)行

在這個(gè)新的版本中,sun號稱其將讓Java升級更方便,部署更簡單(方便的探測客戶端的Java版本,并安裝程序需要的版本),用戶將能夠只安裝jre中他們需要的部分,對于暫時(shí)用不到的部分可以等到用的時(shí)候再安裝,同時(shí)加速Java虛擬機(jī)的啟動(dòng)速度(實(shí)際上就是在電腦剛開機(jī)的時(shí)候就啟動(dòng)Java虛擬機(jī),而不是在第一次運(yùn)行Java程序的時(shí)候),增加對swing的硬件加速支持。而新的Java plug-in將大幅增強(qiáng)applet的穩(wěn)定性,可靠性,將允許applet更改自己可以使用的內(nèi)存大小,選擇使用哪個(gè)特定版本的jre執(zhí)行。

實(shí)際上一旦applet變得穩(wěn)定,Java面對flash將體現(xiàn)出巨大的性能優(yōu)勢,因此Java SE 6 Update N的發(fā)布將是Java游戲界未來一段時(shí)間內(nèi)最大的契機(jī)。

2. JavaFX的發(fā)布

JavaFX的目標(biāo)是讓JavaFX像flash一樣易于開發(fā),如果這個(gè)項(xiàng)目真的能成功的話,對于Java游戲的影響將非常巨大(不過由于缺乏flash所擁有的方便的開發(fā)工具,我對JavaFX成功的可能性深表懷疑)

3. Sony或是任天堂決定在家用游戲機(jī)上支持Java

這個(gè)的希望非常渺茫的,但是考慮到微軟的XNA做到了跨windows和xbox360平臺,也許sony在ps3屢遭敗仗的情況下會考慮一下支持Java。實(shí)際上現(xiàn)在的家用游戲機(jī)就是電腦,很多發(fā)燒友已經(jīng)可以在ps3和wii上運(yùn)行Java程序了,只是目前Java無法使用這些機(jī)器的硬件加速功能。

4. 手機(jī)進(jìn)一步發(fā)展

目前看來移動(dòng)設(shè)備的功能已經(jīng)越來越強(qiáng)大,手機(jī)的性能也許在不久的將來可以達(dá)到電腦的水準(zhǔn),手機(jī)游戲也將占據(jù)游戲市場越來越大的份額,那么由于手機(jī)的操作系統(tǒng)種類繁多,跨平臺的Java自然也會越來越受青睞。

【編輯推薦】

  1. Java正則表達(dá)式入門
  2. 成為Java高手的25個(gè)學(xué)習(xí)要點(diǎn)
  3. Java遠(yuǎn)程通訊可選技術(shù)及原理
責(zé)任編輯:楊鵬飛 來源: 編程之家(冉)的博客
相關(guān)推薦

2009-09-16 14:56:23

C++

2009-07-07 09:25:08

Linux開發(fā)FOSS開發(fā)項(xiàng)目

2013-10-30 12:31:38

2022-11-24 14:46:14

網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)

2011-01-28 15:20:53

開發(fā)者MGF

2013-10-29 13:25:03

開源社區(qū)

2016-10-26 13:45:45

云計(jì)算IaaS趨勢

2009-02-12 09:12:27

JPAEJBJSF

2022-06-22 13:20:21

物聯(lián)網(wǎng)傳感器機(jī)器

2014-09-18 09:06:06

SDN

2023-06-09 14:07:42

量子計(jì)算

2020-01-21 09:10:04

AndroidGoogle 移動(dòng)系統(tǒng)

2009-02-03 09:15:20

C#VB.NETLinq

2019-10-25 15:55:33

工業(yè)互聯(lián)網(wǎng)制造業(yè)生產(chǎn)

2011-07-04 13:36:15

2011-05-23 15:10:16

接入網(wǎng)

2012-09-26 10:39:02

2012-07-18 10:12:41

移動(dòng)應(yīng)用軟件

2016-09-29 22:54:55

2011-11-08 11:29:39

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號