程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 手機游戲趨勢和相關J2ME APIs

手機游戲趨勢和相關J2ME APIs

編輯:J2ME

縱觀IT產業的歷史,計算機游戲已經成為技術創新背後的動力之一。計算機游戲者渴望更加強大的硬件計算能力;渴望不受不同的軟件的限制——無論是將圖形強制在人工智能(AI)上 還是網絡安全性。游戲開發者和玩家常常是前沿計算機技術的最早的采用者。由於他們的創新天性,游戲不再是由大型采購公司控制的技術產品——游戲領域總是有充足的空間給那些在這方面有天分的單個創新者。

隨著技術對游戲經驗的促進,游戲市場持續增長。商業IT革命為我們節省了時間和金錢,從而提高了我們的工作水平,我們因此花費更多的時間和金錢在游戲上,來改善生活的整體質量。甚至在當今困難的經濟時代,游戲仍保持快速增長,他仍然是盈利行業的組成部分。Java開發者應該注意到這裡蘊藏著的巨大的商機。

作為IT產業的剩余部分,游戲行業中最新的熱點就是可移動性。手機游戲將來自傳統商業公司(如Sun Microsystems 的新游戲區)、設備生產廠(如:Nokia的 N-Gage 和Qualcomm的 Brew 設備)、和網絡經營者(如Vodafone 的內容服務)的那些原本不可能在一起的商家拉到了一起。

作為Java開發者,我們很適合進入這個可盈利的新行業部分因為Java 2 平台,微型版(J2ME)是最廣泛支持手機游戲的平台之一。在本文中,我將站在Java 開發者的角度來討論手機游戲的商機和面臨的挑戰。我也將概觀重要的J2ME 規范中的藝術級的移動Java 技術。

手機游戲特征

手機游戲的盈利主要是由於它們的涉及面很廣。手機已經與現代生活方式緊緊地結合在一起。他們是最普遍攜帶的個人用品中僅次於鑰匙和錢包的東西。傳統的台式機游戲將目標鎖定在低級趣味的人和青少年身上,而手機游戲則每個人都可以訪問的到——隨時,隨地。盡管每個手機游戲都不貴,但是巨大的使用量(如:每人每星期一個新游戲)將使得這個市場商機無限並且有利可圖。但是,對於開發者來說,將控制台游戲遷移到手機游戲工程很大因為他們所面向的對象、生活方式和分布式模型都有著極大的區別。讓我們從手機游戲的需求談起吧。

需求

一個成功的手機游戲大多具有以下特征:

·易於學習: 既然手機游戲面向的是普通消費者而不是計算機高手,那麼他們不可能深入的學習游戲技巧。消費者不會花幾個小時去研究一個3美元的手動操作的游戲。所以游戲必須是一下載就可以玩的。保持游戲的簡單是最基本的要求。

·可中斷性: 多任務處理是手機生活方式的基本特征。手機用戶常常在任務(如等一個電子郵件或者等車)之間有一小段時間。而游戲、日歷管理、通訊和工作數據訪問使用的是同一個設備。所以一個好的手機游戲應該提供短時間的娛樂功能,並且允許用戶在游戲和工作模式之間順利切換。

·基於訂閱:手機游戲的盈利成功取決於他們巨大的使用量。一開始開發和設計每個游戲都是昂貴的。如果一個手機游戲開發者要賺錢的話,重要的是:同一個游戲引擎,多個標題,基本的故事情節類似。基於訂閱的游戲是不斷產生收入的最好方法。

·豐富的社會交互: 不管一個游戲設計得多好,只要玩家找到了它的根本模式或者玩完了所有的游戲路徑很快就會厭煩這個游戲。對於一個基於訂閱的游戲,重要的是與別的玩家合作以增強所玩游戲的智力和隨機性。在今天紛繁復雜的多玩家游戲中具有豐富社會交互的游戲證明是成功的。

·利用手機技術的優點: 巨額的手機技術研發費用都花在提高設備和網絡的可用性和可靠性上面。因此,手機設備硬件和網絡協議與桌面/控制台世界(如全球定位系統(GPS)擴展、條形碼掃描儀、和短消息服務(SMS)/多媒體信息服務(MMS)通訊)有著非常大的差別。好的手機游戲應該利用那些更新的設備特征和網絡基礎設備的優點。

·無違法內容:既然所有年齡/性別的人群都玩手機游戲並且常常在公共/工作場合,你應該避免明顯的暴力或者色情內容。

手機游戲的類型

基於以上標准,最有可能成功的手機游戲就是那些臨時小游戲,它可為廣泛的玩家在所有的社交場合提供娛樂。特別是,下列類型的游戲將是明天最具有殺傷力的游戲:

·多玩家游戲: 這些游戲可以提供手機訪問以便建立在線游戲團體。或者,他們利用手機專有特征如多媒體通訊和基於位置的服務,從而創建完全不同的社會結構。好的游戲設計和管理是這種類型游戲成功的關鍵。

·基於內容的游戲:這些游戲傳送版權的多媒體內容,如名人的圖片、視頻片斷、音頻立體聲、和私人的體育節目,給那些音樂/電影/體育迷們。它成功的關鍵就是提供值得訂閱的高品質的內容流。

·高沖擊的視頻游戲:PC 和台式游戲已經從2D 進化到3D。手機游戲也會遵循這種趨勢。現在已經出現手機3D工具箱和聽筒。但是,3D是非常資源集中型的。他們要求開發者和圖形設計者都是專家級的。專業的商店最有可能開發這些游戲。

在手機游戲的早期,大多數開發者都是想要玩轉設備、學習技巧和快速攻關的狂熱分子。但是,隨著更多的開發者加入這個行業,手機游戲已經進化成涉及到專業設計師、構造師、開發者、產品經銷商、律師、和藝術家在內的主導產品。這是行業走向成熟的必然趨勢。盡管在某人的業余時間內要開發和推銷簡單的游戲更加困難,但是更多的專業商店將為許多人提供更多的就業機會。

手機的價值鏈

要完全理解手機游戲的前景,你必須理解資金是如何流動的。這種商業的價值鏈與傳統游戲或者企業應用有著相當大的區別:

·開發者: 軟件開發者通過創建偉大的應用驅動價值鏈。但是,大多數的開發者沒有能力來處理巨大的營銷問題。他們也缺乏到達消費者的分布式渠道。

·發行商: 游戲發行商收集來自開發者的論題。他們建立商標名,確保游戲的技術正確性,將游戲升級,並且建立與無線通信公司的商業關系。他們還站在開發者的立場上處理賬目問題。並且它們一般都是與開發者共享收益。

·無線通信公司: 無線通信公司是手機游戲分布渠道的中心。通信公司不僅僅控制網絡而且擁有客戶信息。等於是他們決定支持哪種設備和服務。通信公司在全部收益中拿大頭。他們也通過現有的服務協議向客戶收款。

·無線設備制造商:設備生產商驅動技術更新。他們制造新的硬件並且支持開發平台。實際上,J2ME的成功主要歸功於主要設備制造商對它的采用。設備制造商是通信公司和消費者之間的一股獨立的勢力。

·消費者: 消費者最終為成本和鏈中所有提供者的利潤付款。消費者可從發行商的網站上購買游戲或者通過通信公司提供的內容供應系統購買游戲。

J2ME智能客戶端

J2ME平台被認為是最傑出的手機游戲平台,它為開發者、設備制造商、網絡通信公司和消費者廣泛接受。它有一些非常重要的特征對所有組織都有益。

智能客戶端的特征

J2ME 設備是智能的。他們可在自身上處理信息。區別J2ME智能手機與前幾代手機最重要的特征有:

·對於用戶來說,智能手機最吸引人的特征就是不總是處於網絡連接狀態也能玩游戲。在線模式在今天的2-2.5G 網絡中是必要的。但是在該網絡中,覆蓋很少,而且數據通信昂貴。將數據和請求網絡操作緩存到事務處理中也可顯著的減少無線網絡的使用並且提供應用的可靠性。

·智能客戶端可以使用不同的協議將後台的游戲服務器及其同位體(包括無線同位體和因特網同位體)集成。

·智能客戶端支持對視覺高沖擊游戲至關重要的豐富的用戶界面(UI)。

·智能客戶端可以訪問手機專用網絡(如SMS和MMS)或者設備擴展(如GPS)特征。這使得開發完全利用手機生活方式的優點的游戲成為可能。

·智能客戶端通過高級加密和數字簽名算法提供更強大、更靈活的安全性。有了智能客戶端,我們有可能在因特網上傳遞感性的私人數據以及建立有效的在線社會。

便攜式平台

相對其他智能客戶端平台而言,J2ME有一個獨特的優點:它是專為手機設計的。J2ME應用可運行在不同投資商的不同設備上。這在高度競爭性的手機設備行業中是特別重要的,因為存在大量的不同設備。所有主要的智能手機制造商都承認支持J2ME平台。代碼的可攜帶性對於那些想要維持單一代碼庫的消費者的數目不斷擴大的開發者來說是至關重要的。

J2ME解決了“最低公共統治者”的問題,這個問題以前一直困擾著桌面Java。J2ME通過定義一個包括配置、配置文件和可選軟件包在內的多層結構解決了這個問題。迄今為止,在手機游戲行業中,最流行的J2ME平台是手機平台設備配置文件(MIDP)和在MIDP之上建立的可選軟件包。在本文中,我重點討論MIDP V2平台。

因為J2ME應用在不同設備上都是便攜式的,他們常常可在網絡上下載和執行。如果沒有正確的防范,它則為用戶和無線通信公司冒著無數個安全的風險。幸運的是,Java被設計成一種安全的語言。所有字節碼應用在執行之前都要校驗;JVM在執行過程中監督應用的安全性和存儲違反問題。MIDP v2 運行時間包括一個完全特征化的、基於域的安全管理員,它在應用的數字簽名者鑒別的基礎上賦予應用API級許可。

由於J2ME的廣泛使用,手機Java開發者已經成長為一個相當大的市場。幾乎所有流行的Java開發工具都已經改造得適合於J2ME開發者的需要。來自第三組織提供者的J2ME庫和組件容易得到。那些庫中的許多庫提供針對於它們的Java2平台標准版(J2SE)對應物的類似的特征。例如:IBM服務管理框架(SMF)支持PDAs 上的Java servlets; PointBase 微型版提供的用於手機相關數據庫的方法類似於Java數據庫連接(JDBC)的方法; IAIK JCE-ME支持Java密碼技術擴展(JCE)的輕型版。這些工具和庫使得J2SE 開發者移植技術到手機行業中比較容易。相應的,他也為J2ME投資商提供了大量的開發者來源。這種良性循環將有助於J2ME的成長。

APIs和工具的概觀

接下來的部分,我將概觀J2ME與游戲相關的API並且測試他們提供給開發者的功能。

用戶界面

MIDP 運行時間提供了對手機設備的屏幕和硬件鍵的細粒度控制。所有的MIDP UI類都是從 Javax.microedition.Displayable接口上繼承而來:

·Screen類是用於高級小器件如Alert, List, Form, 和 TextBox的基礎。MIDP 運行時間控制如何顯示那些高級UI類以及如何在特殊設備的UI慣例的基礎之上安排功能鍵。MIDP 高級UI小器件最適合用於文本控制。在高級UI 類中,Form 類是最靈活的。你可以指定 Form屏幕的布局並且可以給它添加一些東西如:StringItem, TextField, DateFIEld, ChoiceGroup, 和 Gauge。

MIDP v2 規范將兩個重要的創新帶進了高級UI中:首先,它引入Spacer 和ImageItem 項,從而允許同一個Form 上的混合文本和圖像顯示;其次,他引入CustomItem 類,從而為開發者提供了設計和實現自己的項級別的窗口小器件的機制。開發者對CustomItem 對象,包括像素級別的繪畫和內部事件處理在內,擁有最終控制權。

·Canvas類是低級別MIDP UI的基礎。它提供對在整個屏幕之上的像素級繪畫的訪問以及對用於所有硬件鍵的自定義映射的訪問。你可以只創建Canvas的子類並且跳過用於顯示邏輯的paint()方法;用於鍵事件的 keyPressed(), keyRepeated(), 和keyReleased()方法;以及用於每個事件中指示器和觸摸屏的pointerPressed(), pointerDragged()和 pointerReleased()方法。

·GameCanvas 類繼承於Canvas類。他是MIDP v2 游戲API的一部分並且為游戲開發提供了便利機制。例如:在GameCanvas子類中,每次你修改時不需要跳過paint() 方法就可以描繪整個屏幕。你可直接從getGraphics()方法中得到Graphics 對象並且在該對象上繪圖。當你需要更新顯示時,你可以調用flushGraphics()方法。但是 你使用flushGraphics()方法只可以更新屏幕的一部分。相比Canvas 類的單一方法而言,GameCanvas類使得我們易於保持圖形狀態,易於迅速更新屏幕的動畫部分。類似的, GameCanvas 類使用和Canvas 類中回叫方法相反的getKeyStates()方法,為獲得鍵狀態提供了一個便利的途徑。這使得復雜游戲屏幕類中的執行流動性要靈活的多。
MIDP v2規范為 javax.microedition.lcdui.game 軟件包中的游戲應用程序定義了一個完整的API。除了GameCanvas類之外,他還提供了支持平鋪或者動畫游戲背景圖片的Layer 類。游戲API也提供了處理動畫圖片和沖突的Sprite類。他們是2D圖形游戲中的基本組件。在3D前沿,Java規范請求(JSR) 184 試圖標准化手機上的Java 3D API 。它做出了極好的改進。開發者和藝術家需要的J2ME 3D工具現在在SuperScape (見 Resources)中可以得到。大型設備制造商在他們的高端智能手機設備上迅速的轉變,以支持這種新API。


Figure 4. Java 3D games available from SuperScape

除了標准的MIDP UI 和游戲APIs之外,也存在幾種其它的MIDP UI工具箱。他們要麼提供設備的專有功能,要麼旨在支持更好的可促進游戲開發的高級UI:

·Nokia UI 軟件包提供對Nokia 手機上的聲音、亮度和振動組件的控制。它也支持用於更加專業級的游戲的全屏模式。

·Motorola 輕型小器件工具箱(LWT) 是一個獨立的用於Motorola 手機的窗口工具箱。

·Nextel Open Windowing Toolkit (OWT)是Motorola和Nextel聯合開發的開源工具箱。 它運轉一個容器模型來控制布局和其他UI組件,這是桌面UI開發者所熟悉的。OWT基於Canvas類並且運行在所有的MIDP手機上。但是,如果你使用OWT庫,你必須將它包括在你的分布式MIDlet組中。

·Synclast UI 項目開發了一個支持容器模型的開源UI軟件包。在MIDP v1 Canvas 類的基礎上,他支持許多MIDP v2小器件。因此,它允許MIDP v2應用做一點小小的修改之後運行在今天的MIDP v1設備上。有了OWT,你必須將Synclast庫捆綁在分布式應用中。

總的來說,MIDP平台為豐富的UI游戲提供了多種選擇。

網絡和後台集成

正如我前面提到的一樣,手機游戲的未來就是聯網的多玩家游戲。J2ME中的聯網可通過一般連接框架(GCF)來獲得支持。GCF的核心就是工廠類 Javax.microedition.io.Connector。你可以傳遞一個協議和地址字符串到靜態方法Connector.open()上,以便獲得到遠程主機上的連接對象:

·HTTP協議支持在MIDP中是強制性的。如果你傳遞http://hostname:port 連接字符串給Connector.open()方法,則返回 HttpConnection對象。你可以直接打開連接上的輸入/輸出數據流並且編寫/接收到遠程主機/來自遠程主機的數據。

·Unix插座,用戶自尋址協議(UDP) 連接、或者直接TCP/IP連接在某些實現中也得到支持。但是,你應該注意到手機網絡與有線因特網有著根本區別。有些網絡在HTTP層的開頭模擬插座連接。所以,直接插座沒必要出現在性能增加上。對於多數場合我推薦使用HTTP。

·J2ME無線通訊API (WMA)支持GCF中手提設備之間的SMS通訊。你可以通過sms://phone_number:port獲得的MessageConnection對象發送SMS信息 給另一個手機。你也可以打開一個“服務器” 連接,該連接可使用sms://port 字符串聽取到來的SMS信息。到來的SMS信息可以同步處理也可以異步護理。

·在 MIDP v2中,“服務器”SMS 連接可使用J2ME運行時間管理的推動注冊進行注冊。它允許開發者調用某個信息到達者之上的信息處理MIDlet。

在協議級別之上,J2ME支持傳遞結構化應用數據的幾種方法:

·MIDP DataInputStream和 DataOutputStream 類支持 Java的便利 I/O 方法 (如 writeInt(), writeUTF(), writeFully()等等以及相應的readXXX()方法)(非)串行化普通的數據值和對象。在通訊通道的兩邊都使用成對的writeXXX() 和readXXX()方法可大大的簡化開發者的工作並且增加終端對終端應用的強度。

·如果你需要更多結構化的數據交換的話,MIDP平台也支持幾種XML解析器。XML 解析器支持用於XML(SAX)、XmlPull 、和解析范例的輕型文檔對象模型(DOM)的簡單API(SI)。JSR 172 (J2ME Web 服務規范)正在開發一種用於J2ME的標准XML解析器API。

·基於簡單對象訪問協議(SOAP)的Web服務是未來終端對終端的集成模式。J2ME 平台設置得很好,可通過第三組織工具箱如kSOAP (見Resources)以及標准API如JSR 172來支持SOAP信息交換。

數據管理

在設備上的數據管理是智能客戶端游戲中的核心特征。J2ME強烈支持該領域:

·MIDP 上的標准數據持久性設備就是記錄存儲管理系統(RMS)。RMS 存儲線性記錄中的二進制數據(字節排列)。它不允許隨機存儲也不支持任何分層的數據結構。但是它提供搜索存儲和對搜索結果排序的限制性功能。RMS在所有MIDP設備中是強制性的。它對於大多數用途來說已經足夠了。但是,MIDP自身並不提供使用後台應用程序同步RMS數據的API。JSR 230 (數據同步API)剛剛起步開發這種同步的API。

·JSR 75 (用於J2ME的PDA可選軟件包)提供對設備本地的協議獨立多點傳送(PIM)應用(如:日歷、地址薄、電子信函和任務列表)和文件系統的訪問。 PIM 數據和文件可通過設備的本地同步設備組同步到台式計算機上。

·至於更加復雜的數據,你可以使用手機數據庫。幾種商用MIDP數據庫(包括相關數據庫和面向對象的數據庫)和同步引擎在MIDP平台上都可以得到(見 "High-Availability Mobile Applications" (JavaWorld, June 2003))。

多媒體

多媒體重放功能在內容驅動的手機娛樂應用中至關重要。J2ME 多媒體 API (JSR 135) 是J2ME中用於播放多媒體內容的標准框架。通過Player接口,它可播放來自多種數據源的多種音頻和視頻格式。在運行時間內傳遞給玩家的多用途的網際郵件擴充協議(MIME)類型 可指定內容格式。多媒體API的每種設備實現都支持依賴於硬件和本地玩家功能的一組不同的MIME類型。目前,幾乎所有的與多媒體API兼容的設備都支持簡單的立體聲回放。 對更加成熟的格式如MP3音頻和3GPP視頻甚至是MPEG4視頻的支持也快要出來了。

安全性

手機游戲涉及到可下載的代碼、版權內容和財務往來。安全性對於維護用戶、開發者、發行商和通訊公司的利益都至關重要。在多玩家游戲中有些用戶試圖通過炸開安全性的突破口攻進系統,這時安全性顯得尤為重要。J2ME 對應用程序和通訊兩者的安全性都提供了極好的支持:

·MIDP v2 規范支持使用開發者或者發行人的數字證明書的應用程序標記。基於簽名者的鑒定(安全性領域),運行時間安全性管理者可賦予應用程序API級的訪問權。例如,來源信任度較小的應用不允許實現網絡連接或者發送SMS信息。

·MIDP v2 規范也要求支持所有手機上的HTTP。這為因特網上的安全信息交換提供了基礎。

· 如果基於連接的HTTP對於某些應用來說仍然不夠靈活,許多第三組織的密碼技術軟件包在MIDP平台上也有 (見"Data Security in Mobile Java Applications" (JavaWorld, December 2002))。它們允許信息二進制片斷的加密或者簽名。

·JSR 177 (用於J2ME的安全性和信任 API) 是標准化到被嵌入設備中的硬件安全單元(如訂戶識別模塊(SIM)卡)的訪問。例如:它允許J2ME開發者檢索存儲在SIM卡上的數字證明書或者使用加速硬件的加密算法。

供應和營銷

手機游戲傳送到消費者手中是一個涉及許多組織的復雜過程。MIDP 規范包括有關over-the-air (OTA) 供應的部分。它描繪了如何在無線應用協議(WAP)網絡之上下載MIDP游戲,以及Java應用管理軟件(AMS)應該如何安裝應用程序並且使他為用戶所用。 OTA過程為客戶端設備報告安裝狀態給服務器提供了一個反饋機制。它為更加復雜的商業配置過程提供了技術基礎。在商業領域內,你應該考慮以下幾個重要的附加過程:

·應用必須被鑒定為防病毒狀態並且放進通信公司支持的目錄內。

·不同客戶端設備應同時提供不同的JAR文件,該文件可最大化使用設備的功能(圖形和安裝的可選軟件包)。

·客戶的付款和給開發者的付款必須無縫處理。直接點擊的手機內的付款系統是特別重要的。

幾個商業供應方案對於通信公司和發行商來說已經可行。JSR 124 (Java 2 平台企業版 (J2EE)客戶端供應規范)試圖通過為客戶端配置定義一個通用的J2EE框架來標准化那些方案。用於不同OTA規范、客戶跟蹤模式和付款服務的插入程序已經得到開發和設計,並可在框架內同時工作。這種成就對於J2ME游戲的商業成功也是非常關鍵的。

運行游戲

在本文中,我闡釋了為什麼帶有隨機內容的多玩家手機游戲是游戲行業的未來。手機設備制造商也看到了這個巨大的商機並且已經推動設備專為手機游戲而設計(如 Nokia N-Gage). J2ME/MIDP 是用於那些手機游戲設備和智能手機的最重要的技術平台之一。在讀完全文後,你應該理解手機游戲中J2ME的優勢和弱點。另外,我還介紹了MIDP V2中與游戲相關的關鍵性的技術革新以及它的可選軟件包。

關於作者

Michael Yuan 著有Enterprise J2ME一書。他頻繁的在J2ME、J2EE和手機企業應用方面寫稿和演講。目前,他領導一群人為Nokia開發平台建立應用藍圖系列。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved