libGdx是一個跨平台的2D/3D的遊戲開發框架,它由Java/C/C++語言編寫而成。
基本介紹
- 外文名:libGDX
- 協定:Apache License,Version 2.0協定
- 特點:強兼容性、高效性
簡介,特點,強兼容性,高效性,架構清晰,封裝,工具,網路,UI編輯器,參考資料,不足,大事記,遊戲展示,
簡介
它基於Apache License, Version 2.0協定,對商業使用和非商業使用均免費。代碼託管於Github中。最新版本為1.9.5。
特點
開源的遊戲框架並不少見,但是libgdx的優勢是相當明顯的,主要是體現在以下幾個方面
強兼容性
libgdx兼容多種平台系統(Windows、Linux、Max OS X、Java Applet、Javascript/WebGL),包括移動系統Android(1.5版本+)和iOS。對於Android平台的支持在Android陣營和相關市場日益擴大的情況下libgdx的使用者越來越多。另外,基於RoboVM可以實現iOS兼容。
同時極強的兼容性為調試和開發提供了便利。你可以使用Android上面同樣的代碼在桌面PC上面編寫,測試,調試你的套用(也就是說,你可以不需要打開Android模擬器,就可以調試用Libgdx引擎寫的遊戲套用)。它剝離了常見的Windows之間/ Linux應用程式和一個Android應用程式的區別。一般的開發過程是儘可能的在停留桌面PC上,同時周期性的檢查你的當前代碼是否仍然能在Android運行。
高效性
Libgdx主要是用Java寫的,其中也摻雜了一些C/C++代碼,這些代碼是為了處理一些對性能要求很高的操作,比如物理引擎或者音頻處理。作為用戶,你只需要關注Java的封裝就可以了,它已經把所有的本地代碼封裝好了。相比於其他android遊戲引擎,libgdx的效率優勢十分明顯。
架構清晰
libgdx的主要構成如下所示
Libgdx由audio、files、graphics、math、physics、scenes、utils這些主要模組所組成,它們分別對應了Libgdx中的音頻操作,檔案讀取,2D/3D渲染,Libgdx繪圖相關運算,Box2D封裝,2D/3D遊戲組件,以及Libgdx內置工具類。
它提供了便於設計遊戲的清晰架構
封裝
Libgdx對於物理引擎的封裝也是讓人驚訝的。 它足夠瘋狂的使用jni封裝了box2d的c++版本,使得其運行效率比其他同級的物理引擎如jbox2d快不少。現在流行的幾個包含物理引擎Android遊戲引擎(如Andengine、Rokon等),幾乎都在用libgdx。如果你的遊戲(特別是針對Android平台的)準備使用物理引擎,請優先考慮Libgdx。
工具
Libgdx還擁有相當數量的開發工具。如Particle editor(粒子編輯器),Hiero bitmap font generator(文字生成工具),Texture packer(圖片合併工具),TWL布局編輯器,Gdx Setup UI等。
網路
Libgdx最初大部分用於單機遊戲或者弱聯網遊戲,不過經過不斷最佳化,現在Libgdx提供了專門的網路模組。在Google推出實時聯網虛擬現實遊戲Ingress後,亦有部分國內公司推出了基於Libgdx的網遊,比如《無雙逐鹿》等。
UI編輯器
Libgdx現在有第三方的UI編輯器Overlap2D,該編輯器由熱心的使用者編寫。
參考資料
Libgdx的文檔數量已經相當完善了,官方的wiki已經有較為完整的基礎介紹和一些示例。不過由於官方的示例都是英文的,可能對於部分開發者來說學習難度較大。
當然更多的細節可以在相關社區和其他使用者的文章和討論中找到答案,部落格園中夜明的孤行燈有過一系列的入門文章(現已遷移到對應的獨立部落格中),這個系列的文章基於0.9.2版本,和最新版本有一些細節上的差異,但是仍不失為國內最完整和全面的教材。
另外在安卓巴士的實用教程板塊也有“Mkey libgdx系列教程”的Libgdx入門教程,該系列文章雖然沒有系統性的介紹,但是對於開發中的諸多細節給出了解決方案,適合對於libgdx有一定了解的開發人員參考。
0.98版本大幅修改了很多細節。奮鬥小土豆丶有一系列針對0.98版本的教程,比較適合從低級版本升級而來的用戶和初學者參考,也是目前最新版本的教程。
不足
Libgdx也並不是十全十美的。目前libgdx對iOS的支持基於RoboVM,而RoboVM本身還處於發展階段,調試功能比較困難。截至2015年5月29日,RoboVM的版本是1.3.0
大事記
2009年中期,項目開始,初始名稱為AFX。
2010年3月6號,項目開源,代碼託管在Google Code上。
2010年4月,第一個外部貢獻者Christoph Widulle加入。
2010年5月,新增了Box2D綁定。
2011年9月,0.9.2版本發布。
2012年5月,市場占有率超過1.24%,超過了當時的Unity,AndEngine,Cocos2D,Corona和Marmelade。
2012年,Google Ingress使用了Libgdx項目。
2013年,添加3D API支持。
2014年4月20日,1.0正式版發布。
遊戲展示
這裡是部分基於libgdx的遊戲,你可以在市場中找到他們。