Short story – my latest side project as of Jan 2016 is a game using Unreal Engine 4.

Long story – ramblings on my recent personal journey:

My previous post on this blog was over 3 months ago dated 2015/10/19.  My busy full-time job has since continued, yet I still found some time to continue what was my latest side project – my basic cross-platform game engine foundation using (C++, SDL2, GLES2, CMake).  Much fun and learning was had getting experience with the cross-platform nuances of “low level” development with C++ OpenGL on Windows, OS X, Linux, Android, iOS, and Emscripten.

I was able to (somewhat) reduce the workload of building “from scratch” by targeting only GLES2…  But it’s still low-level plus significant effort on the cross-platform native aspects.  I liked the cross-platform work and I think it was good for me, but I was feeling tempted to just focus on one platform so I could implement cooler demos with less effort.  I was also tempted to try something like less “low level” like Marmalade SDK, Ogre3D, or OpenSceneGraph.

Then over the December holiday break, I took an actual break (well I did read some of a math for games book) (and I did build another desktop computer from parts).  Starting the new year, I decided to try out Unity and Unreal.  So for this side project, the focus is on making a robust playable game using an existing game engine.

In 2009, I made a game prototype for a game called “City Hero Defense” using Torque 3D.  I’ve also played with Unity (and Ogre3d) multiple times in the past eight years (or so).  Besides that, most of my side projects tended to build things directly from OpenGL or DirectX (college game projects too).  Meanwhile, my day job is even lower level than that – GPU modeling (eg implement graphics pipeline, shader instructions) (eg GPU driver support) (eg test with OpenGL, DirectX).

So to start the new year, I tried out Unity, then I tried out Unreal, then I hit the ground running with Unreal.  So far I’m loving Unreal Engine 4 and the progress is much faster than building “from scratch” (even more so than I hand expected).  Lower level development can be good experience and obviously someone has to develop game engines for others to create games with them (just as someone has to develop GPUs, GPU drivers, and GPU graphics APIs!).  However, it’s obvious that developing a robust game as a part-time hobby project as an individual is much easier and faster using an existing game engine.  The difference in the effort-to-results ratio is significant (assuming your goal is to make a game) (assuming you don’t have a good reason or a real need to develop “from scratch”).

My experience using UE4 is very different than writing “from scratch”.  With UE4 I haven’t written any OpenGL code or rendering code, dealt with cross-platform nuances or build system nuances, or integrated third-party libraries.  Instead it’s been more about integrating content, implementing game logic, implementing interactions, and using UE4’s editor and API.

One of the big selling points for me with UE4 (over Unity) is C++.  This isn’t a knock on Unity.  In fact, it’s not necessarily that I think I’m more productive using C++ or that I think I’ll write more optimized code…  My preference is just because I think I’ll get better experience by doing more C++.

I am very thankful to Epic for releasing Unreal Engine 4 and all future updates as free for everyone as of 2015/03/02 ( https://www.unrealengine.com/blog/ue4-is-free ).  This is a great trend in game engines – making them more accessible.  There’s a lot of great AAA game engines now available to everyone for free or cheap – Unity, Unreal Engine 4, Source 2, CryENGINE ($9.90/mo).

I’ll post more later, but for now here’s an initial screen shot:

image