Sunday, July 12, 2020

The Quest For A Real Game Engine

In my previous post, I showed some screenshots of my first real attempt at making a game.  I used my business development skills to put a face on some of my game ideas.  After months of work I felt like I had hit a wall that forced me to abandon that project.  I felt it necessary to seriously consider the tools and technologies I would need to bring the whole of my game into reality, not just a few systems.  All of that work on the web game took place back in 2017.

I went through an exhaustive and somewhat frustrating process of researching and reviewing as many of the popular game engines as I could find.  During this time I was careful to consider the following:
  • What kind of presence or reputation did the game engine have?
  • Was there an active, mature community of developers supporting it?
  • What platforms would the game engine support out-of-the-box?
  • What kind of language support did it have?
  • What was the learning curve like?
  • Did the engine provide solid online documentation?
  • How much would it cost to get started?
  • Once the game was published, were there royalty fees?
I will admit I looked at every game engine through the lens of my own existing skill-set.  After all, I did not want to have to learn everything from scratch.  Since I am a developer, I wanted an engine I could write code in.  I wasn't interested in a visual-only platform.  A few game engines supported lower level languages like C++.  But most of them used their own high-level scripting languages.  Ideally, I wanted one that supported the language I live in at work, which is C#.  It was really that one point that narrowed my search to a single choice.  You probably guessed it already.  It is Unity

I had looked at Unity before, many years ago, when it was not nearly as popular as it is today.  Back then, I was very frustrated with the lack of support for 2D development.  Oh, they claimed to be a 2D engine, but in truth their 2D tools were very limited and quite buggy.  That was then.  Today, while still being primarily a 3D game engine, the Unity 2D tooling has been given a respectable amount of attention.  It has finally matured to the point of being a viable 2D development platform and I am really enjoying it.  Now, do not get me wrong, there is no quick and easy path to learning Unity.  It is not that Unity lacks sufficient documentation, tutorials, or training materials.  It is the sheer volume of that content that makes Unity so daunting.  Every new piece of Unity I need to learn takes me into hours of videos.  But it is turning out to be totally worth the effort.

November, 2019 marked the start of my current game project using Unity as my development platform.  I had not totally settled on Unity.  In fact, I knew very little about it.  To get a feel for it, I decided to give myself one real goal.  I wanted to re-create the tile engine from my first game using Unity.  I figured by the time I had done that, I would know if Unity was the right choice for me.  

I started with Unity's tilemap system.  They have added some very nice tools, such as the Tile Palette, which can help you "paint" a map very quickly, including rule tile tools that select the appropriate tile from a tile set as you paint.  That is all well and good, but I haven't really been interested in the eye candy.  I wanted to procedurally generate a world that could encompass a million tiles if I wanted it to.  For that, I would need to store my map data in files and create a chunk engine to manage the tiles around the immediate area of the player.  Remember my underworld in the web game?  I wanted that too.

An Early Tile Engine Test

To my wonderful surprise, I was able to write a brand new chunking tile engine in only a few short months.  By the end of January, 2020 I had the chunk engine optimizations mostly completed.  By then I realized I was outpacing my first project.  It goes to show how using the proper tools makes all the difference in the world.

Another Early Engine Test

So, here I am eight months in and I feel really happy with my progress.  So much so that I am finally opening this up to others via this blog.  Thank you for reading and I hope you follow along with me as I blog about this experience and share my progress and discoveries with you.

Survive and Thrive




No comments:

Post a Comment

Feel free to leave a comment. All comments are moderated.