jMonkeyEngine 3, better known as jME 3, is an open-source 3D game development engine written entirely in Java. Using this engine, game developers can exploit Java's capabilities to develop games not just for modern operating systems, but also for the Android market. In this How to Learn article, we'll explore this engine's capabilities and the resources it offers to help you start working on your game as fast as possible.
- jMonkeyEngine isn't just free, it's open-source! Because of this, jME 3 has come a long way since 2009 - its birth year. Being an open-source engine also means that updates fixing bugs and implementing new features are quite common. Developers can also download a number of plugins available from the IDE (Integrated Development Environment) itself. For those who prefer alternative IDEs, such as Netbeans and Eclipse, jME also provides handy step-by-step tutorials about how to set up jMonkeyEngine in them.
- Since jMonkeyEngine is written in and for Java, developers don't have to learn a new language, but can use plain Java. And since it's based entirely on this language, jME 3 games can be ported to OSX, Windows and Linux very easily. What's more, a few months ago this engine also added support for Android.
- As an OpenGL game engine, jMonkeyEngine also supports shaders. One of the upcoming updates is a Shader Editor which will make it easier for developers to write their own shaders. That said, prior knowledge of shader scripting is recommended.
- jMonkeyEngine 3 also comes with its own tools to create user interfaces, called Nifty GUI. As with most other stuff in this engine, there are plenty of tutorials and examples.
- Like other modern game engines, jMonkeyEngine also supports lighting, physics and networking.
Although jMonkeyEngine is primarily a 3D game engine, it's also possible to create 2D games with it. Indeed, open-source tools such as my own The Sprite Project and other shaders made by the jMonkeyEngine community facilitate the creation of 2D games.
jMonkeyEngine is written entirely in Java, and hence uses all of its concepts in its games. Java doesn't require much of an introduction, but since you'll be using a lot of Java with jMonkeyEngine 3, it's recommended that you have some prior knowledge of this language and its notions.
There are tons of tutorials scattered around the web which will help you learn Java, and Oracle provides tutorials which cover Java's basic how-to. And if you prefer books, you'll be spoilt for choice, with one of the most recommended books being Head First Java.
Once you've downloaded jMonkeyEngine 3 and made sure you've got basic Java knowledge, it's time to get down to work. After installing jME3, boot it up and get ready to start learning.
The engine comes fully-equipped with detailed documentation, so rest assured - you won't waste any time before you start converting your ideas to games. A copy of this documentation can be opened at any time by pressing the F1 key.
If you'd rather delve into example projects and experiment with them, you can open the ones that come pre-packed with the SDK by creating a new project from the JME3 Tests template. However, if that's not your preferred way of learning a new game engine, jME provides a series of 13 tutorials which go over all the basics. These include a lot of features which make up a normal game, including how to set up your first project, how to deal with assets, and an introduction to game physics.
Once you've mastered the basics, you can also dip your toes into advanced tutorials which deal with extra, more specialized tools to make your game stand out. These tutorials, aimed at more experienced developers, deal with post-processing, networking, and meshes, among other topics.
Recently, the team behind jME also released a book - The jMonkeyEngine 3.0 Beginner's Guide - which goes over everything you need to know to create a complex 3D game in jME 3. It includes example code to take you from the basics to the more advanced features of this engine.
If you want to go one step further, don't forget that jMonkeyEngine also supports shaders. Shaders can be thought of as properties that determine how a model looks - for instance, a toon shader gives 3D graphics a distinct hand-drawn look.
While jMonkeyEngine comes with a number of shaders (sufficient for most games), you might still want to experiment with new ones yourself. This would effectively give you much more freedom in defining your game's overall feel and style.
Shader scripting should be treated as a whole different language, but if you don't have any experience, there's help out there. Apart from jME's own documentation to help you start scripting shaders, Lighthouse3D and NeHe Productions offer tutorials of their own.
If videos are your piece of cake, jME 3 also has an introductory video series for shaders. And if you're more adventurous, you can also enable jME's nightly updates and start using the new Shader Editor.
Lastly, jMonkeyEngine also boasts community. If you get stuck, want to show everyone what you're working on, or just want to chat with fellow developers, make sure to sign up.
Notable Games Made in jME 3
Mythruna is a voxel-based sandbox role-playing game which manages to showcase much of what jMonkeyEngine is capable of doing.
Another recent release, PirateHell shows that the only limit in jME is the one you set yourself!
Now that we've introduced you to jMonkeyEngine 3, it's your turn to get down to work and start creating games. With a promising community, helpful documentation and some work, there's little jME 3 can't do.
If you're looking for a new game engine, and especially if you're looking to expand your audience to different operating systems, then jMonkeyEngine 3 could be the right engine for you.