Wednesday 24 February 2016

Engine technology comparisons

 OpenGL:
OpenGL is an Operating System interface (API) that operates on a low level. This allows you to write code and determine the best way to control the hardware, such as the sound card or video card.
(OpenGL + OpenCL  can be a full alternative to Unity for creating your own games.)
This can be considered a more complex approach.
ü  More control (particularly over hardware)
ü  OpenGL’s libraries can be good for figuring out  good ways to do what you are asking the hardware to do.
ü  Free.
-      Does not do as much as Unity.
-      Less productive.
-      Higher learning curve

Unity (AKA UDK)
Game engine. It lays on top of libraries like OpenGL or DirectX.
If you are working in Unity, you should know C# or JavaScript, too.
ü  All in one tool
ü  Rapid prototyping. (drag & drop editing etc)
ü  A whole development suite, not just a library of parts to put together or a framework to help make sure they all fit. You can create the whole game in Unity.
ü  Helps simplify as possible to create games. (easy for beginners)
ü  Better geared for beginners (good starting point for game development)
ü  Unity does far more than OpenGL. For example, it can handle game levels and inputs in addition to figuring out how to render your backgrounds and play music.
ü  Large amounts of documentation and tutorials available.
ü  Free version if earning less than $100,000
ü  Personal version allows distribution to multiple platforms.
-      Less control or specifics.
-      Runs on it’s own VM
-      Large game file sizes. (A minimum of 9mb due to bundling Mono with every build)
-      Shaders not great in free version
C# or JS in Unity –
js in unity is unique (unityscrpt) – more flexible but potentially slower
slightly more common in forums
can be slow!

C# - less flexible, strictly typed.
but always runs at JavaScript’s top speed. (fast)
More access to tools and advanced techniques.
Other programs use c# - good for learning overall.

Monkey X PRO
ü  Programming language for easily creating multi platform apps . It translates “Monkey code” to other languages at compile time – (C++, C#, Java, JS and Actionscript).
ü  Has a number of built in modules
ü  Doesn’t run on its own VM (unlike unity / corona)
ü  Rapid prototyping
ü  Easy to learn object oriented language.
-      Not well documented
-      Limited asset store
-      Learn a new language, that is somewhat limited

libGDX
ü  Fast development via desktop deployment (no need to deploy to android every time.. test straight from desktop)
ü  Free and open-source (open source under apache 2.0 license)
ü  Doesn't force a specific design (design any way you wish.. customisable)
ü  Interfacing with platform specific code
-      Java dependency leading to performance issues.
-      Low level engine difficult for inexperienced programmers
-      Limited documentation

 -------------------------------------------------------------------------------------------------------------------------------------------

Given all of the above, Unity3d appears to be the most appropriate in terms of effort required to get started, stability and available information.

No comments:

Post a Comment