JMonkeyEngine是一个纯Java免费,开源的游戏引擎,专为想要创建3D游戏的Java游戏开发者设计
技术需求
使用场景 游戏开发, 虚拟现实(VR), 动画制作, 教育
技术趋势 引擎功能已经趋于成熟,企业应用还比较少,但已经有一些公司在快速开发Android 3D应用时尝试这种引擎。
热点关键词 免费
,开源
,Java
,地形
,GUI图形用户界面
,GLSL着色器
,网络游戏
,粒子特效
,Bullet物理引擎
,人工智能
官网
从本质上来讲,jME3就是一个第三方Java类库
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文件,选择自己熟悉的工具可以提升你的开发效率。
注意:在jME3.1.0之后SDK就出了一个对中国开发者不太友好的bug,菜单上的中文变成了方框乱码。
这种bug的原因是NetBeans会自动根据用户电脑的语言来进行本地化,但却使用了一种不支持中文的字体
修复方法很简单,在jME3 SDK的安装目录下找到etc
文件夹中的jmonkeyplatform.conf
文件,使用记事本或者Editplus之类的文本编辑工具打开它 。找到 default_options
配置项,在末尾加上-J-Duser.country=US
,将地区设置成美国,这样再次打开jME3 SDK的时候界面就变成了全英文。修改后的default_options
看起来差不多是这样的:
default_options="--branding jmonkeyplatform -J-Xms24m -J-Dsun.java2d.dpiaware=true -J-Dapple.laf.useScreenMenuBar=true -J-Dawt.useSystemAAFontSettings=lcd -J-Dswing.aatext=true -J-Xmx512m -J-XX:MaxDirectMemorySize=2048m -J-Dsun.zip.disableMemoryMapping=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Duser.country=US"