Comparing game development environments

Slashdot it! Delicious Share on Facebook Tweet! Digg!

jMonkeyEngine

According to its marketing material, jMonkeyEngine is a "cross platform game engine for adventurous Java programmers" [4]. The engine proper only makes it possible to create 3D games and is written completely in Java. Supposedly, the use of Java results in rather slow applications.

The jMonkeyEngine makers promise "high performance 3D games that are on equal footing with every other engine." If you want to convince yourself that this is true, you can take a look at games like Bang!Howdy [5] or Grappling Hook [6], which are created with the jMonkeyEngine.

The software development kit (SDK) made available by the developers contains the slightly adapted NetBeans development environment [7] in addition to the engine proper. The core of the environment consists of a high-performance code editor that can automatically highlight the source, offer automatic code completion, and provide a small reference for each function which appears when typing (Figure 8).

Figure 8: A slightly expanded version of NetBeans supplies the development environment for jMonkeyEngine.

Additional functions include source code cleanup or refactoring, a debugger, a profiler, and a connection to the version control systems Git, Mercurial, and Subversion. The development environment also supports the translation of games into other languages. To expand the functionality, you can use all of the available NetBeans plugins.

Games that are created completely in Java run on Windows, Mac OS X, Linux, Android, and on the Ouya console. In the coming 3.1 version, jMonkeyEngine is supposed to support iOS and VR glasses like Oculus Rift. A game can be exported as a JAR archive or in the form of an executable program in Windows, Mac OS X, and Linux.

When developing games, you are primarily working with the source code directly. In comparison to the competition, the development environment offers only a little bit in the way of programming assistance. For example, an assistant imports 3D objects created in Blender, which can then be arranged in a very rudimentary visual editor into a complete scene (Figure 9). The jMonkeyEngine creators recommend Blender as the preferred modeling tool. The development environment also imports Ogre and Wavefront objects.

Figure 9: 3D objects are arranged in the jMonkeyEngine SDK in the rudimentary scene composer. The properties of the selected objects appear in a table on the right-hand side.

Similarly to Godot, you can add individual 3D objects to a scene via nodes. You can arrange the nodes in a hierarchy that makes it possible to build relationships among the 3D objects. The material properties of the 3D objects come from a programmable shader, as is the case in Godot as well. If needed, a component named TerraMonkey can create a 3D landscape from an image with a topographical map or Highmaps.

The jMonkeyEngine simulates a wide variety of light sources. Techniques like screen space ambient occlusion (SSAO) conjure up realistic shadows onto the screen. Moreover, jMonkeyEngine offers a wide array of special effects such as a particle system, a smoke and water simulation, and light reflection. Post-processor filters act on the displayed scenes and create effects like fade outs at the end of a level. The jMonkeyEngine supports keyboards, joysticks, and touchscreens as input devices.

You can create menus and configuration windows with the NiftyGUI Java library [8]. This comes with jMonkeyEngine for constructing the user interface via XML markup or Java code. A Java port of the popular Bullet library, jBullet [9], controls physically correct process flows. It also allows for ragdoll physics, which is the correct movement made by body parts when in motion.

You can test the source code for your games with the accompanying jUnit framework. You can translate the code with the MonkeyBrains Engine that was developed in a separate project [10]. Thanks to the BSD license, every developer is permitted to adapt the source code for jMonkeyEngine as desired for use in commercial projects.

The documentation consists of an extremely large and well-organized wiki, which contains tutorials for beginners and detailed articles for advanced programmers. Several books are available, and an open forum can also clear up questions.

Conclusion

GDevelop lets even the non-programmer create simple games. In fact, you can click together an entire small action game inside an hour. This GCS is suitable therefore for quickly building prototypes. Game developers are limited to relatively simple 2D games. Furthermore, the lists of events and actions can easily get messy.

Godot is well suited for both 2D and 3D games and is similar to the popular Unity 3D, a commercial game platform (see the "Commercial Competition" box). However, with Godot, you will need to learn its scripting language, which should be fairly straightforward especially for Python users. The functionality is greater than that of GDevelop but does not approach that of jMonkeyEngine.

Commercial Competition

Unigine was one of the first commercial 3D engines to officially support Linux [11]. Its performance capacity is about that of Unity 3D and Godot. The Unigine corporation only distributes a license upon request. You will first need to register even if you want only a test version.

Most commercial Linux games are currently created with Unity 3D [12]. The engine supports 2D and 3D environments. The programs developed with Unity 3D run on a total of 21 platforms or operating systems and also on devices like VR glasses and Oculus Rift. You can use the C#, JavaScript, and Boo programming languages with the platform. Box2D makes physics simulations available.

As with Godot, you can put scenes and animation together via clicking directly in the development environment. The integrated asset store plays a part in the success of Unity 3D, because it allows you to sell graphical objects and tools to other game programmers. The development environment only runs on Windows or OS X. Moreover, many functions can be activated only for a fee, which starts at $75 per month.

GameMaker Studio [13] is likewise only available on Windows. In the past, mostly small role-playing and action games were developed with this. You can use it to create Linux games after you pay at least $198 to the manufacturer YoYo Games.

Epic Games and Crytek have adopted a slightly modified version of the Unity 3D business model. Their engines represent the upper limit of the performance scale and accordingly they also require a lot of learning. The video titled Building Unreal Paris [14] delivers an impressive demonstration of Unreal Engine from Epic Games [15]. The Cryengine from Crytek is the workhorse in the action game Far Cry [16].

The development tools that come with both engines are available only for Windows except that the tools for Unreal Engine are also available for Mac OS X. Licensing fees must also be paid, which for Crytek means $10 per month. Epic Games demands a percentage of the net sales of the game.

Table 1

Game Creation Systems

URL http://compilgames.net/main-de.html http://www.godotengine.org http://jmonkeyengine.org
License MIT-License/GPLv3 MIT License BSD-License
Platforms Windows, Mac OS X, Linux, HTML5 Windows, Mac OS X, Linux, iOS, Android, PS3, PS Vita Windows, Mac OS X, Linux, Android, Ouya
Engine 2D 2D and 3D 3D
Programming languages graphical (event based) GDScript Java
Physics simulation yes yes yes
Ragdoll physics no no yes
Fog simulation no yes yes
Particle simulation yes yes yes
Artificial intelligence Path finding no yes
Collision recognition yes yes yes
Animation system no yes yes1
Tile maps yes yes no
Construction of a GUI no yes yes
Network connection yes yes yes2
Localization no yes yes
Debugger yes yes yes
Profiler yes yes yes
1 No visual editor; 2 Client/Server games possible

jMonkeyEngine targets experienced Java programmers and has many well-known standard components like the Bullet Physics simulation. If you have not yet worked with NetBeans, you will first have to work your way into the complex development environment or forego its help and integrate the engine directly into your program. The project gets high marks for its extremely comprehensive documentation.

Buy this article as PDF

Express-Checkout as PDF

Pages: 6

Price $0.99
(incl. VAT)

Buy Ubuntu User

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content