Comparing game development environments
|
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).
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.
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.
Infos
- GDevelop: http://compilgames.net
- GDevelop game gallery: http://compilgames.net/#games-gallery
- Godot: http://www.godotengine.org
- jMonkeyEngine: http://jmonkeyengine.org
- Bang! Howdy: http://www.banghowdy.com/
- Grappling Hook: http://ghook.speedrungames.com/
- NetBeans: https://netbeans.org/features/index.html
- NiftyGUI: http://void256.github.io/nifty-gui/
- Bullet: http://bulletphysics.org/wordpress/
- MonkeyBrains: https://github.com/QuietOne/MonkeyBrains
- Unigine: http://unigine.com/products/unigine/
- Unity 3D: http://unity3d.com/
- GameMaker Studio: http://www.yoyogames.com/studio
- Building Unreal Paris: https://www.unrealengine.com/showcase/building-unreal-paris
- Unreal Engine: https://www.unrealengine.com/
- Cryengine: http://www.cryengine.com/
« Previous 1 2 Next »
Buy this article as PDF
Pages: 6
(incl. VAT)