JMonkeyEngine

jMonkey Engine是一個基於圖形api的高性能的場景圖,基本知識來源於David Eberly的3D game engine Design。

由來

jMonkeyEngine是一款適合冒險的Java開發人員的3D遊戲引擎。它是開源的,跨平台的,前沿的。

3.2.0是jMonkeyEngine 3 SDK的最新穩定版本,是完整的遊戲開發套件。我們將發布3.2.x更新,直到主要3.3版本到達。

該引擎由幾個商業遊戲工作室和計算機科學課程使用。

該引擎採用純Java編寫。

歷史

早在2003年的時候,那時的jME還不叫jMonkeyEngine,也不是一款遊戲引擎。作者只是想要嘗試一下Java的3D圖形性能,於是啟動了一個項目,只實現了最基本的場景圖管理和圖形渲染。

作者的名字叫做Mark Powell,他在論壇的暱稱叫做MojoMonk。這個項目被命名為MojoMonkey,後來更名為jMonkeyEngine。

Mark Powell在實現了一個基本的圖形引擎(Display System)後,又逐步為這個引擎添加了:

•聲音系統(Sound System)

•輸入系統(Input System)

•動畫系統(Animation Controller)

•碰撞檢測(Collision Detection)

•物理系統(Physical System)

•特效系統(Effects System)

等模組,將其發展成了一個完整的遊戲引擎。並在2005年的遊戲開發者大會(GDC)上首次將其公開介紹給整個Java社區。

jME 0.1 ~ 2.0

•2003年6月

•jMonkeyEngine項目啟動。(只是一些圖形工具集,還稱不上一個引擎)

•2003年9月

•jME轉變成一個基於場景圖(scenegraph)的圖形引擎。絕大部分早期API都是參考David Eberly所著的《3D Game Engine Design》,書中使用的是C++語言,Mark完成了一個Java實現。

•2003年10月3日

•jME 0.1被上傳到一個CVS伺服器。從這一天開始,用戶需要通過CVS下載代碼來安裝jMonkeyEngine。主要功能:

•場景管理器(Scenegraph Manager)

•2003年11月14日 - jME 0.2發布。增加了很多特性:

•渲染系統(RenderStates)

•聲音系統(Sound System)

•輸入系統(Input System)

•文字顯示(Text output)

•2003年12月

•jME 0.3發布。增加功能如下:

•碰撞檢測(Collision Detection)

•揀選(Picking)

•攝像機節點(CameraNode)

•背面剔除(Face culling)

•節點控制器(Node controllers)

•包圍盒(BoundingBox)

•初始化實體(Initial Entity)

•2004年1月16日

•jME 0.4發布。新增功能:

•光源節點(Light Node)

•貝塞爾曲面(Bezier Mesh)

•貝塞爾曲線(Bezier Curve)

•2004年2月

•Joshua Slack ("Renanse")加入開發。

•新增功能:動畫

•2004年6月

•新增功能:RenderQueue

•同時Mark正在開發特效系統、粒子系統、鏡頭光暈

•2004年8月

•Jack Lindamood ("Cep21")加入開發,並為jME新增了.jme格式的模型檔案。

•2005年3月

•jME在遊戲開發者大會(GDC)上公開展示。

•2005年6月

•llama 和 irrisor 加入團隊。

•2008年4月

•jME2.0 pre-alpha 預覽版發布

•2008年8月15日August 15, 2008

•Joshua Slack宣布退出jMonkeyEngine開發

•2009年1月24日

•jME 2.0 發布 *2009年9月9日

•jME 2.0.1 發布

•2011年1月28日

•jME 2.1 最終版發布

jME 3.0 ~ 現在

•2009年4月1日

•jME3實驗版首次亮相

•2009年6月24日

•jME3實驗版成為官方版。

•主要開發者、設計者:Kirill Vainer

•項目管理:Erlend Sogge Heggen

•成員:Skye Book.

•2010年5月17日

•jME3 alpha版發布

•jME3 SDK alpha版發布

•2010年9月7日

•jME官網經過重新設計,域名從jmonkeyengine.com更換為jmonkeyengine.org。

•2011年10月22日

•jME3 SDK Beta版發布

•2014年2月15日。

•jME3 SDK 3.0 穩定版發布

•2014年3月21日

•jME原始碼遷移到Github和Gradle

•2015年8月18日

•jME3.1-alpha1 發布

•2016年2月29日

•jME3.1-alpha2 發布

•2016年3月14日

•jME3.1-alpha3 發布

•SDK不再和引擎同時發布,改為獨立發布。

•2016年3月28日

•jME3.1-alpha4 發布

•2016年4月11日

•jME3.1-alpha5 發布

•2016年4月15日

•jME3.1-beta1 發布

•2016年11月22日

•jME3.1-beta2 發布

•2017年1月29日

•jME3.1-beta3 發布

•2017年2月11日

•jME3.1-beta4 發布

•2017年2月13日

•一一jME3.1-stable 發布

•2017年12月27日

•一一JME3.2 Beta 2發布

•2017年 1 月

•一一 將發布JME 3.2-stable 發布

光和影

jME3提供所有常規手段來模擬燭光、陽光、閃光和全局光照,陰影效果用類似PSSM和SSAO等技術實現。對於Android系統,我們推薦使用烘焙陰影效果。

染色器和材質

jME3的材質系統完全基於染色器(Shader)技術實現,採用稱為Shader Nodes的創新設計來將染色器超級模組化,使其能夠在可視化編輯器中進行編輯。當然,你依然可以手動編寫染色器代碼。

濾鏡和特效

jME3使用後置處理器、濾鏡以及粒子發射器等技術,能夠實現多種多樣的特效,比如水面、霧化、光照散射、爆炸特效等。

應用程式狀態

應用程式狀態(AppState)是創建應用程式的基本組件。它們可以幫你把應用程式分割成幾個邏輯模組,也可以用來快速擴展基礎應用程式。

AppState還可以在其它應用程式中復用,這樣你就能迅速創建自己的AppState庫,把其它擴展程式納入到自己的應用程式里。

自定義控制項

自定義控制項(Custom Control)和AppState類似,但是它們是基於更小的場景對象級別的。用自定義控制項,你可以給場景圖中的對象添加功能,賦予它們生命,控制它,或者把它合併到另外的工作流中。

輸入

基於統一標準的輸入用具,jME3可以廣泛套用於各種平台,允許用戶使用鍵盤、手柄和觸屏等不同方式來在操作同一界面。

物理

jME3依賴jBullet實現物理仿真。jBullet是Bullet-Physics-Library的一個Java接口,業內頂尖高手都喜歡用它。

地形

JME3 SDK內嵌地形編輯器(TerraMonkey)可以用來創建地形。你也可以導入高度圖,把它放在天空盒中,添加光照,享受自動LOD最佳化。

電影製作

藉助幾個電影製作工具,就可以用自己修剪的場景來創建小電影了。只需要幾條協調好的動作路徑和聲音事件,不需要太多關鍵幀就能講述一個好故事。

聯網

SpiderMonkey可以幫助你開發聯網遊戲。如果你已經熟知UDP、TCP、壓縮和執行緒安全等概念,就可以直接使用它了。

圖形用戶界面

Lemur 狐猴GUI,專為Jmonkeyengine 定製的一套GUI,支持標準的2D 3D 圖形界面。

t0neg0d-gui , 在 Lemur 誕生之前,t0neg0d 創造的這套GUI組件是jME3社區唯一能與

Nifty-gui 抗衡的 GUI。它比 Nifty 更易用,又吸收了 Nifty 使用XML進行樣式定義的特點,吸引了大批用戶。

相關詞條

熱門詞條

聯絡我們