Comparison of commonly used Game Eninges (Ogre3D, C4, Unreal Engine, Unity3D)
Ogre3D | C4 | Unreal Engine 4 | Unity3D | |
---|---|---|---|---|
Installation | + | - | + | + |
Documentation | o/+ | o/+ | + | + |
Performance | o | ++ | o | + |
Kinect Effort | + | - | - | + |
Language | C++ | C++ | C++ | C++/C#/Javascript |
World Editor | - | + | + | + |
Mainloop Access | + | - | - | - |
OpneNI | + | + | - | + |
A more detailed description of the comparison
Ogre3D
Simple installation
Little official documentation concerning the usage of the game engine, but plenty of user experiences contributed in specific forums
Moderate performance while starting the created application
The integration of the Kinect via OpenNI requires just a little effort
C++ is used as programming language
No world editor is available, thus the scene has to be created by code
It is possible to write your own main loop
OpenNI can be easily integrated
C4 Engine
Simple installation with detailed installation instructions by C4 Engine
Much official documentation concerning several use cases but very few user experiences
An application is quickly build and executed, although the application name has to be defined in an extra file
Great effort for integrating the Kinect with OpenNI because of redefinition errors
- Solution:
Set C4FASTBUILD on 0 in C4PrefWindow
And replace #define WIN32_WINNT 0x0502 with #define _WIN32WINNT _WIN32_WINNT_WIN8
C++ is used as programming language
There is a world editor which have to be used to create a scene and if you want to render objects without such a scene and without walls, there will be graphical errors while displaying these objects
There is no direct access on the main loop just a hook via the render method which is called each frame
Unreal Engine 4
Simple installation via additional client, every version needs to be installed separately
Much documentation and user experiences, forum and support-service for additional help
Bad performance when working with the editor because it needs a lot of RAM for working smoothly
Great effort integrating the Kinect
You have to create an extra plug-in, but for the Kinect V2 already exists an plug-in
C++ is used as programming language and you can choose between creating with blueprint-mode or programming-mode
There is a world editor where you can simply create scenes or levels without programming skills, but you can also switch to the C++ code of it
There is no direct access on the main loop but it is possible to create a subclass of GameEngine and reference it in the DefaultEngine
Unity3D
Simple installation
Much documentation and user experiences
Good performance, doesn't need to much resources for working smoothly even in preview-mode
The Kinect can be easily integrated with the Kinect SDK and some help of instructions which can be found through the internet, also various plug-ins are available through the Unity Asset Store
The programming language is C# but with the implementation of wrapper-classes it is possible to use C++ and Javascript, different wrapper-classes can be found on forums for Unity3D
There is a world editor for easily creating scenes and it is possible to switch to the program code but needs the additional software MonoDevelop
But there is no direct access on the main loop