2017 Achievements
|
2018 Objectives
|
Virtual Reality
Building upon 2016, as every Virtual Reality evangelist will tell you was "the year of VR", research and development began with Unity3D game engine integration using plugins such as Google VR [C#/.NET].
However, as VR design and best practices demand delivery of minimum 75fps, .NET languages like C# may be less suited for VR since they require a virtual machine to run. Also, services such as automatic garbage collection can have a negative effect on performance as well.
Conversely, C++ is arguably more suited performance-wise since code written is compiled directly into machine code and doesn't suffer from the overhead imposed by virtual machine and garbage collection.
Therefore, Unreal Engine may be better choice for VR game engine integration because C++ is default language. Otherwise, if writing from scratch, C++ with OpenGL should perform well on any platform.
Augmented Reality
Alternatively, Augmented Reality has grown in popularity this year, especially with releases like Pokémon GO. Apple has incorporated AR into their iOS 11 mobile operating system with expectations that AR will "change the way we use technology forever".
Consequently, AR is currently being used more on mobile devices which will limit the language choice to:
Type | Specific | Generic |
Android | Java | C++ |
iOS | Objective-C | C++ |
Mono | C#/.NET | C++ |
Modern C++
In the above examples, C++ is the common denominator regularly listed. Fortunately, the C++ language has improved upon previous iterations with C++11 and additions to the standard i.e. C++14 and C++17.
At it's base: C++11 offers greater performance benefits with move semantics, which is a way to optimize copying, and improved productivity e.g. the new auto keyword which helps make code shorter + clearer.
There are also other features added to the C++11 standard, such as enum classes, lambda expressions, automatic type deduction, etc. all of which are coincidentally available as the baseline for Unreal Engine.
Summary
Outside commercial development, much work was done during the year with the Sega Master System!
Writing low level C code to run on real hardware with limited memory + storage requires performance-critical algorithms to be written at all times to achieve consistent maximum frame rate. Perfecting this skill becomes beneficial especially when transitioning future development to VR / AR environments J