成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Java游戲開發現狀和走向

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

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

Wurm online一個多人在線網絡游戲(06年的時候進入了收費運行階段,不過你還是可以申請一個免費帳號進去看看):

http://www.wurmonline.com/

2007年Javaone上jmokeyengine演示視頻:

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

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

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

上面這些只是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不能比的。

#p#

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. Lwjglhttp://new.lwjgl.org/index.php

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

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

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

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

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

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

Java對非標準輸入設備(游戲手柄,操縱桿)的解決方案。

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

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

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

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

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

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

值得一提的Java游戲

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

Wurm online一個多人在線網絡游戲,大多數商業版本的Java游戲實際上都是將Java代碼預先編譯成字節碼,因而不需要客戶安裝Java虛擬機,這個游戲是少有的幾個確實要求客戶安裝Java虛擬機,而同時又運營的相當不錯的游戲。地址:http://www.wurmonline.com/

未來

目前來看Java游戲并沒有出現顯著的上升趨勢,除手機游戲外,Java游戲基本處于蟄伏狀態。未來Java游戲可能迎來幾個契機:

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

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

實際上一旦applet變得穩定,Java面對flash將體現出巨大的性能優勢,因此Java SE 6 Update N的發布將是Java游戲界未來一段時間內最大的契機。

2. JavaFX的發布

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

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

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

4. 手機進一步發展

目前看來移動設備的功能已經越來越強大,手機的性能也許在不久的將來可以達到電腦的水準,手機游戲也將占據游戲市場越來越大的份額,那么由于手機的操作系統種類繁多,跨平臺的Java自然也會越來越受青睞。

【編輯推薦】

  1. Java正則表達式入門
  2. 成為Java高手的25個學習要點
  3. Java遠程通訊可選技術及原理
責任編輯:楊鵬飛 來源: 編程之家(冉)的博客
相關推薦

2009-09-16 14:56:23

C++

2009-07-07 09:25:08

Linux開發FOSS開發項目

2013-10-30 12:31:38

2022-11-24 14:46:14

網絡社區發現

2011-01-28 15:20:53

開發者MGF

2013-10-29 13:25:03

開源社區

2016-10-26 13:45:45

云計算IaaS趨勢

2009-02-12 09:12:27

JPAEJBJSF

2023-06-09 14:07:42

量子計算

2022-06-22 13:20:21

物聯網傳感器機器

2014-09-18 09:06:06

SDN

2020-01-21 09:10:04

AndroidGoogle 移動系統

2009-02-03 09:15:20

C#VB.NETLinq

2019-10-25 15:55:33

工業互聯網制造業生產

2011-05-23 15:10:16

接入網

2011-07-04 13:36:15

2012-09-26 10:39:02

2012-07-18 10:12:41

移動應用軟件

2016-09-29 22:54:55

2011-11-08 11:29:39

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天干夜夜拍 | 久久久国产一区 | 午夜精品一区二区三区在线视 | 国产综合精品一区二区三区 | cao视频| 91精品国产高清久久久久久久久 | 久久99蜜桃综合影院免费观看 | 国产一区免费 | 免费精品在线视频 | 免费在线看黄 | 看片国产 | 国产精品视频久久久久 | 在线视频日韩 | 成人精品在线视频 | 婷婷午夜天 | 999久久久| 欧美三级在线 | 国产精品美女久久久av超清 | 男人的天堂视频网站 | 视频一区在线观看 | 日本精品一区二区在线观看 | 99国内精品久久久久久久 | av高清 | 成人精品视频免费 | 久久一本| 国产精品视频一区二区三区四蜜臂 | 国产精品美女一区二区三区 | 亚洲欧美激情国产综合久久久 | 成人久久18免费网站图片 | 二区中文字幕 | 国产精品欧美一区二区三区 | 国产精品入口 | 日韩快播电影网 | 欧美一区在线看 | 丝袜美腿一区二区三区 | 91精品一区二区三区久久久久 | www日| 亚洲综合婷婷 | 91精品国产91久久久久久丝袜 | 成人不卡在线 | 久草在线 |