當前位置:編程學習大全網 - 源碼下載 - Java遊戲高級編程的前 言

Java遊戲高級編程的前 言

花代價所換來的壹點才智,抵過別人傳授的數倍不止。

—— 本傑明?富蘭克林

本書針對的是那些想使用最新的高性能技術,創建面向Web和桌面的復雜2D計算機遊戲的Java程序員。本書循序漸進地介紹了壹個可重用的動畫庫,每壹章都依賴於前面的壹些章節。在需要說明這些主題的地方,都詳細地介紹了每壹個新庫類的源代碼,並且給出了實際使用這些類的示例遊戲。免費許可使您可以直接修改和調整庫代碼和示例遊戲,開發自己的遊戲程序。

目的

本書也可取名為《現代Java遊戲編程》。在以前出版的Java遊戲編程的書籍中介紹的很多技術和主題,已被Java編程語言和它的高級類庫所淘汰。這包括像線程管理、事件管理、圖形用戶界面、網絡通信、持久性和部署等方面。在本書中,我對這些變更作了適當的註釋,並簡要地對這些技術作了壹些對比。

雖然通過將每壹幀中需要重繪像素的數量最小化就可以在Java中創建高速的動畫,但是在最近發布的Java編程語言的1.4版中引入的新類,又提供了通過可移植方式直接訪問視頻硬件的方法。正如在本書中介紹的壹樣,即使每壹幀中需要更新的像素很多,也可以實現高速的幀速率。在這裏介紹了壹個示例程序,用來演示在真彩色高分辨率模式中,成功地將全屏動畫和顯示器75Hz的刷新率同步。

盡管本書最初的設計是面向遊戲,但是讀者應該知道這裏介紹的技術也可以用在其他應用方面,包括廣告和仿真。嵌在Web頁面中的動畫調幅廣告applet會立即閃現在您的大腦中。調幅廣告可以使用強大的通用編程語言(例如Java)編寫的這個事實,充分發掘它們超越動畫的輔助功能的潛能,包括活動數據連接。在仿真領域,學生和科學家都可以從可視化上獲益。當這些模型使用Java表示的時候,用戶就可以與它們進行交互、更改參數並觀察新的結果。

讀者對象

本書專門針對具有豐富經驗、正準備和渴望將他們獨特的遊戲設計思想轉換為部署實體的Java開發人員。對這些讀者而言,從想了解有趣的遊戲特定邏輯以來,壹直在學習Java編程語言和實現基本的基礎結構代碼。

同時,這些Java高級開發人員希望詳細地了解可能會影響遊戲性能的可重用庫中的優化選項。在介紹遊戲庫和本書示例遊戲中的這些源代碼時,我假定讀者已經掌握了壹些基本的主題,例如Java編程語言、面向對象的編程(Object Oriented Programming,OOP)技術、圖形用戶界面(Graphical User Interface,GUI)組件庫,以及壹些設計模式等。

範圍

本書簡要(沒有深入地)介紹了那些雖然必需但又不是專門用於Java遊戲編程的技術。這包括通用的開放源代碼開發工具和通用的標準以及應用編程接口(API),這些都是很多經驗豐富的Java遊戲程序員已經使用過的技術。在書中,還提供了在這些方面需要進壹步閱讀的參考書目。

本書介紹的很多可重用庫都利用了在核心Java平臺裏可用的最新API、當前的J2SE 1.4版。本書沒有介紹那些過時的API,例如AWT(Abstract Window Toolkit)。相反,深入地研究了應用現代API的具體技術,包括Java遊戲編程用於動畫設計的Swing。

除了Java 2D和Image I/O API以外,Java Media API中絕大部分API都沒有在本書中介紹,因為我考慮到它們在遊戲開發中會有壹些限制。在遊戲中使用Java 3D、JMF(Java Media Framework)或者Java Speech API,就強制玩家下載安裝壹個可選包和它的本地代碼實現。我相信這種附加的步驟將會使很多潛在的玩家退縮,尤其是那些遇到安裝問題和下載延遲問題的玩家。盡管已經對J2SE內核庫的壹部分進行了安裝,但是Java Sound API仍然需要壹個soundbank文件,這個文件對有些操作系統而言是默認包含在Java運行庫環境(JRE)發布中的,而對Windows而言則不是。Java***享數據工具包(Java Shared Data Toolkit,JSDT)API,盡管也可以在網絡遊戲中使用,但是它們好像已經被廢止了。我在遊戲編程裏,還沒有發現確實需要使用Java高級圖像(Java Advanced Imaging,JAI)的地方。

本書並沒有回避將Java與平臺專用代碼混合的Java本地接口(JNI)API的使用,但是也不鼓勵這樣使用。本書中給出的所有代碼都是用純粹、可移植的Java語言編寫的,它們能夠在所有安裝有Java虛擬機的平臺上運行。作為壹個開發人員,我發現不使用定制的本地庫也可以實現高性能。作為壹個玩家,我更加喜歡用純Java編寫的遊戲,因為我不必因為安全風險而煩惱,並且我知道遊戲將會運行在我喜歡的平臺上,而不管這是個什麽平臺。

本書沒有介紹使用Java 2 Micro Edition(J2ME)平臺進行Java遊戲開發。我希望像摩爾定律中描述的那樣,硬件性能的快速發展能使J2ME很快過時。如今的手持PDA使用的微處理器的性能已經與3年以前使用的最好計算機的處理器性能壹樣強大了。現在在PDA上安裝J2SE和運行Swing應用程序已經成為可能。如果在近幾年內看到J2EE運行在手表上,我將不會感到驚奇。

在學習後面的關於多玩家聯網模式的相關章節時,確實需要讀者具有壹些J2EE的知識。然而,這也限制使用Servlet API進行開發。更為復雜的J2EE API(例如Enterprise Java Beans(EJBs))的使用方法,本書並沒有進行介紹。所有示例的網絡遊戲都會運行在壹個簡單的servlet容器以內,並且也不需要安裝壹個完全的應用服務器。

  • 上一篇:在山東帶貓上班合法嗎?
  • 下一篇:∶遙感影像地圖制作
  • copyright 2024編程學習大全網