jMonkeyEngine简称为JME3, 是一个主要用 Java 编写的一款开源免费的3D游戏引擎。其极简主义和代码优先的方法使其非常适合希望获得游戏引擎支持的开发人员,他保持对代码的完全控制,并能扩展和调整引擎以适应他们的工作流程。 从本质上来说,JME3就是一个第三方的java类库。它的API非常简洁明了,只需要花很少的学习时间就能够掌握其使用方法。JME3主要功能如下:
jME3类库的Group ID是org.jmonkeyengine
,可以在maven中央库中查看。下列组件已经全部上传到公共仓库中,你可以通过Gradle或Maven去获取它们:
jme3-core
- 任何jME3项目都需要的核心库jme3-effects
- 各种滤镜、粒子、水面等特效。jme3-networking
- jME3的网络模块(别名SpiderMonkey)。jme3-plugins
- 加载orge、fbx等模型文件的插件。jme3-jogg
- 加载jogg格式的音频文件。jme3-terrain
- 地形生成API,可使用高度图来生成3D地形。jme3-blender
- 加载blender模型文件,仅适用于桌面开发,手机显卡不支持。jme3-jbullet
- 基于jbullet
的物理引擎(仅适用于桌面开发,手机用不了,而且JCenter上没有这个组件)。jme3-jbullet
和jme3-bullet
只能二选一,不能同时存在于同一个项目中。jme3-bullet
- 基于BulletPhysics
的物理引擎,需要jme3-bullet-native
或jme3-bullet-native-android
。jme3-bullet-native
- BulletPhysics
所需的静态库文件(dll、so),仅适用于桌面开发。注意:jbullet
跟BulletPhysics
是两码事,它不需要这些本地库文件。jme3-bullet-native-android
- BulletPhysics
所需的静态库文件(dll、so),仅适用于Android开发。jme3-niftygui
- 为jME3添加NiftyGUI支持,可以使用NiftyGUI来制作图形用户界面 (JCenter上没有这个组件)。jme3-desktop
- jME3桌面应用开发所需的核心API。jme3-lwjgl
- jME3的桌面应用渲染模块,依赖LWJGL。jme3-lwjgl3
- jME3.1新增的模块! 使用LWJGL3为桌面进行渲染。jme3-jogl
- jME3的桌面应用渲染模块,依赖JOGL。它是LWJGL和LWJGL3的替代品,可选。有LWJGL你就不需要JOGL,用JOGL就不需要LWJGL。jme3-android
- jME3的Android应用核心模块。jme3-android-native
- jME3开发Android应用所需的本地库文件。jme3-ios
- jME3开发iOs应用的核心API (JCenter上没有这个组件)jME3开发桌面应用,你至少需要下面这几个组件:
jme3-core
jme3-desktop
jme3-lwjgl
或 jme3-lwjgl3
jME3开发Android应用,你至少需要下面这几个组件:
jme3-core
jme3-android
jme3-android-native
jMonkeyEngine3 SDK是开发团队基于NetBeans平台开发的jME3集成开发环境。它包含场景制作、模型预览、材质编辑等诸多游戏开发所需的功能。jMonkeyPlatform跟jME3 SDK是一码事,说的都是这个东西。
官方推荐初学者使用jME3 SDK来开发游戏。官方下载地址为: https://github.com/jMonkeyEngine/sdk/releases
无论你习惯用jME3 SDK,还是Eclipse、IntelliJ IDEA,或者Android Studio,都可以使用jMonkeyEngine3来开发游戏。毕竟这个引擎的本质就是一堆jar文件,选择自己熟悉的工具可以提升你的开发效率。
repositories {
jcenter()
//maven { url "http://dl.bintray.com/jmonkeyengine/org.jmonkeyengine" }
}
dependencies {
def jme3 = [v:'3.5.1-stable']
compile "org.jmonkeyengine:jme3-core:$jme3.v"
compile "org.jmonkeyengine:jme3-desktop:$jme3.v"
compile "org.jmonkeyengine:jme3-lwjgl:$jme3.v"
}
<properties>
<jme3_v>3.5.1-stable</jme3_v>
</properties>
<dependencies>
<dependency>
<groupId>org.jmonkeyengine</groupId>
<artifactId>jme3-core</artifactId>
<version>${jme3_v}</version>
</dependency>
<dependency>
<groupId>org.jmonkeyengine</groupId>
<artifactId>jme3-desktop</artifactId>
<version>${jme3_v}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jmonkeyengine</groupId>
<artifactId>jme3-lwjgl</artifactId>
<version>${jme3_v}</version>
</dependency>
</dependencies>
在jME3的github页面中,有一个名为jme3-examples的模块,其中有大量的示例源代码,全面展示了jME3的各种功能和特性。
所有例子中,jme3test.helloworld
包中的13个例子是最基础的。官方推荐的学习顺序是: