1. 程式人生 > >開源2D遊戲引擎(Java&Android),LGame-0.3.2版正式釋出

開源2D遊戲引擎(Java&Android),LGame-0.3.2版正式釋出

PS:為了多平臺版本的優化與整合,本年內(2011)不會正式釋出0.3.3版LGame。不過,LGame專案SVN根目錄下有LGame-Anroid-0.3.3版的測試版jar及原始碼提供。除尚未附帶RTS模組外,該版與正式的0.3.3內容完全一致(此版會每週進行一次Bug修正,用於解決現有問題及效能提高,直到正式釋出0.3.3版為止)。


2011-11-20 LGame-0.3.2-Update:

1、LGame-0.3.2版延續0.3.1,使用OpenGL作為遊戲渲染核心,早前的AWT與Canvas實現版本現已更名為LSE與LAE(延續0.3)。

2、LGame-0.3.2版極大擴充套件了LGame核心包功能,新增工具、特效、精靈、介面以數百計(具體細節正在完善文件中,此處不再詳述)。

3、LGame-0.3.2版在核心包基礎上,新增了STG開發模組,作為遊戲框架的額外補充(目前預設支援(可以基本用指令碼完成)的遊戲型別已含STG、SRPG、AVG,預計0.3.3提供RTS支援)。

4、LGame-0.3.2版的C#(WP7)版已經構建完畢,不久後也將釋出。


PS:LSE和LAE包是針對LGame在0.3.1改版前舊版框架的延續,相對0.3.1及0.3.2版使用的OpenGL渲染方式而言,它們繼續採用JavaSE環境所提供的AWT(特指LSE版)以及Android環境所提供的Canvas(特指LAE版)作為遊戲繪圖核心,並且僅在LGame的Java版中出現,其它語法環境下無對應版本提供(比如
很快會發布的C#(WP7)版)。
    

LSE與LAE包與標準LGame包的主要差別有如下幾點:


   1、標準LGame自0.3.2起徹底重構了原有的geom包,已經不再附帶OpenJDK中的geom包,但LSE與LAE版繼續使用該包。

   2、標準LGame使用GLEx類作為引擎的最基本渲染器,允許使用JavaSE、JavaME的常用繪圖API,以及OpenGL、OpenGLES的常用繪圖API,而LSE與LAE包僅模擬有JavaSE、JavaME的Graphics類常用介面(這意味著完全不支援OpenGL)。

   3、標準LGame包由於使用OpenGL程式設計,在不同螢幕手機中進行縮放時,可以較為有效的減少甚至消除畫面失真,而LSE與LAE包則難以避免這種現象的產生(特別是大畫面的遊戲,在較小螢幕的手機上執行時)。

   4、LSE與LAE版基本不受硬體環境限制,在大多數微機或手機中都能產生較為一致的重新整理速度(當然,這並不意味著沒有浮動,而是指不會出現某些機器上跑幾幀,某些機器上跑數十、數百幀的極端情況),而LGame標準版的速度則受到硬體條件制約,對於某些不支援OpenGL硬體渲染的環境而言(比如ADT模擬器以及部分低端真機),它的速度甚至不如LSE與LAE版。因此從某種情況上講,LSE與LAE版的相容性要超過目前的標準LGame。

   5、標準LGame包已經不再支援JavaME遊戲元件的模擬,並刪除了相關類。而在LSE與LAE版中,相關類依舊被保留了下來。

   6、LSE與LAE版的主體結構雖與標準LGame一致,但輔助類明顯較LGame標準版本為少(缺少幾乎全部工具類以及很多特效類),而各類中提供的API也沒有標準版完整。


下圖為標準版LGame在微機上與LSE版的執行比較圖:




PS:標準版LGame在模擬器上的幀率太恐怖,所以選擇性無視了……


關於LGame名稱的由來:

LGame是一個從2008年就開始構建的Java2D開源遊戲框架(最初僅有JavaSE版,Android版是去年才做的),早期設想是直接用Java的首字母來命名,既稱它為JGame——不幸的是,小弟用Google搜了一下卻愕然發現,早已有同名專案存在(而且比較有名),最終只得作罷。

然而,名不正則言不順,綱不舉則目不張,即便阿貓阿狗也總需取個名字的。於是小弟又翻來覆去想了很多稱呼,比如我曾想過用T字頭,Terminator、Thor什麼的,可總覺得霸氣側漏怕此種程度的框架承受不起;也想過Breeze、Night、Dream之類的名字,又好像太文了實在沒啥特點。

再後來,小弟也懶的起名了,回憶起還曾寫過一個名為LoonFramework的JavaEE框架(基本上是學Spring的“萬金油”路子,很早以前曾發過部分原始碼,目前已暫停(因為是04年剛學Java一年多時寫的基礎結構(最早偶和某人一樣對Basic情有獨鍾),太垃圾了(比如大量使用finalize釋放資源-_-,還自認為高明),等待重構中) PS:話說現在LGame中有一部分工具類及函式也是從最初的LoonFramework轉過來的╯﹏╰ ),而Loon的本意與引申義又都比較符合小弟的性格(好吧,這種性格其實延續很久了),加之它的首字母更與中文懶(lan)的首字母相同,從中文的角度也好猜出代表著什麼,所以最後就直接叫——LGame了(LoonGame Framework,為什麼更新慢大家明白了吧……)

——————————————————————————

小弟最近正埋頭修改C/C++版中,預計過兩天先發C#版(支援WP7),明年年初發布C/C++版(支援iOS),明年中下旬釋出HTML5版(支援大多數智慧機環境),2012年底釋出視覺化IDE支援拖拽程式設計——當然,這是理想狀態,關鍵是小弟所處小區目前正面臨搬遷(現在平房那片已經沒活物了,我家後還有三溜樓,他們給攆走就攆我們,問題是何時攆暫無準確訊息……),而LGame又是一個業餘專案,所以釋出時間上可能會有個浮動,但應該逃不出2012的魔爪。

PS:為了多平臺版本的優化與整合,本年內(2011)不會正式釋出0.3.3版LGame。不過,LGame專案SVN根目錄下有LGame-Anroid-0.3.3版的測試版jar及原始碼提供。除尚未附帶RTS模組外,該版與正式的0.3.3內容完全一致(此版會每週進行一次Bug修正,用於解決現有問題及效能提高,直到正式釋出0.3.3版為止)。