由來
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進行樣式定義的特點,吸引了大批用戶。