Part 1: why another game engine?

Published March 04, 2020
Advertisement

Hello and welcome to the first post documenting my developer journey as I create a 2D game engine. This project started out as my final assignment in a Certificate IV in Programming. I've completed the Cert IV and have started my job search, but that's taking time and I need to keep improving my skills so I've come back to Valkyrie and now I am redeveloping it into something better. I was under a lot of time pressure when this was an academic project - as I struggled with features and the deadline came and passed I went for making good design decisions to poor ones and ended up with an Interactive demo that did fulfill the academic requirements but just couldn't go any further without rework.

Now? the project has no “deadline” per se, there are no stakeholders but me - the developer and the open-source community who I am contributing this work to. Ultimately I plan to create my own game using this software, and I will do my best to make sure anyone else can too. Making games is fun, challenging and the gateway to becoming a game developer.

Not another game engine!

I've tinkered around with Unity, Lumberyard and other tools. They are good tools. But I had to create something unique in my assignment not just stamp out a Unity project and to be honest Unity has a pretty high learning curve. To me, the cost / benefit analysis of returning to this project and developing my own game engine looks like this:

Pros:

  • full creative control
  • ability to set my own licensing terms
  • chance to add an open-source project to my resume
  • chance to improve my C# skills
  • chance to give the mod community a no-strings attached tool
  • Xamarin cross-platform framework: ability to reach iOS, UWP and Android markets with a common C#/XAML code base

Cons:

  • development time

Refactoring

I may not have gotten far in the scheme of things with v1, but it still added up to several thousand lines of source code and starting a major rework of a project even that size can be intimidating. I opted to review each class and refactor as desired, which is a “boiling the whole ocean” approach and rarely finishes. But it did need it. The logic is better encapsulated now. The code is more compliant with SOLID design principles, has better unit testing, more functionality and produces a much better looking product. In some ways I have already surpassed v1 but I haven't even gotten to characters yet. Working with v2 and adding functionality to it is already easier.

Where do we go from here?

If you're interested in this project, follow along on this blog for updates. The repo resides here:

https://github.com/acoville/Valkyrie2.0

Until I have complete documentation, the best way to learn about how to use this software will be to follow this blog. I'll be starting a post soon about the use of Props in a Valkyrie project.

0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement