Migrating to Unity3D
After about a year of very part-time development in Java – learning about game loops, game physics, multiplayer networking, etc. – I migrated to Unity3D, porting much of my Java data structures, interfaces, and event management infrastructure code to C#.
In about three months time I had something up and running, although the game play mechanics still left much to be desired. The transition was relatively straight-forward, as most game engines seem to adhere to the same basic principles (physics ticker, graphics update ticker, event management, scene management, etc.)
My initial attempt at creating something decent was… well, an initial attempt. But it worked :).
Obviously, the game experience was very rudimentary, but did provide some basic game play capabilities and player feedback in terms of score tracking and NPC interactions (see the bluish-green floaty things in the center).
After purchasing some additional assets and tools to make development easier and the game play experience more immersive, I started to expand the scope and developed a handful of worlds with various landscape features.
Moving from planet to planet required the user to warp to the selected destination using a menu on the HUD which was activated once in their spaceship. The surface of each planet provided a centralized teleportation location from which to re-materialize inside the ship’s cockpit and start the selection process over again.
Eventually, I added water features and even the ability to swim below the surface (incorporating lens distortion), as well as day-night cycles with the help of asset store tool purchases that could control the weather and time-of-day via a configurable algorithm.
Of course, now that I had some better scenes to work with, I need to refine some of the player controls, and so I got to work on a custom jump mechanic which – in the mountainous terrain below – was a bit challenging. The key issue was knowing where the ‘ground’ was when navigating around large mountain passes with deep crevices. I worked out most of the bugs, but occasionally, the player still gets stuck in certain places.
So, for the time being, I spent most of my time working on weather patterns and day / night cycle lighting (again, with the help of some fantastic asset store components). The moon-rise experience was particularly cool, as it provided some ambient lighting for which to explore the evening landscape (while avoiding lurking dangers).
I’ve included two screenshots from some of the more interesting experiences that are part of the latest build.
I enjoyed working on refinements to the NPC AI the most, as it provided the most visceral and interactive experience. Still much to do, but for a simple FPS with strong strategy / adventure leanings, it’s beginning to take shape.
I’ll keep posting new entries as I make time to continue development. Stay tuned for more!
Copyright (c) 2020 Andrew D. King. All Rights Reserved.