jMonkey Engine是一個基於圖形api的高性能的場景圖,基本知識來源於David Eberly的3D game engine Design。
基本介紹
- 中文名:jMonkeyEngine
- 外文名:猴子引擎
- 類型:開源
- 原始碼:GitHub
- 語言:Java
由來,歷史,光和影,染色器和材質,濾鏡和特效,應用程式狀態,自定義控制項,輸入,物理,地形,電影製作,聯網,圖形用戶界面,
由來
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發布
2018年 1 月
一一 將發布JME 3.2-stable 發布
2018年 1 月
一一 將發布JME 3.2.1-stable 發布
2019年 1 月
一一 將發布JME 3.2.2-stable 發布
2019年 3 月
一一 將發布JME 3.2.3-stable 發布
2019年 3 月
一一 將發布JME 3.3.0-alpha1發布
光和影
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進行樣式定義的特點,吸引了大批用戶。