New plans - Engine upgrade to the max


Hello,

I'm still chipping away at the game. I've finished the 5 levels and I'm now working on level changing. I'm encountering a bug when loading the next level.

I have been thinking, that I'm not sure I'm quite happy with the features and game experience delivered by the game in it's current form. It is a bit simple and lacking in shiny features like lighting and physics. I don't really want to ship a game that is too similar to what the game looks like now, as it just doesn't stand out enough. 

I was originally thinking of switching engine. To something like Godot, MonoGame, Raylib, KorGE, LibGDX, or even something HAXE based. But I realised, technically I can add a few of those desirable features to my current game engine. Without too much effort. That means I get to keep the serious effort that I have put into the game and engine. And build upon it.

The features I want to add are:

  • Lighting via shaders (eek!)
  • Physics for fun interactivity with objects
  • Scripting via embedded scripting language - makes making levels faster
  • More complex map loading - eg. TMX support (rather than basic CSV)

Rather than switching engine to obtain these features, I can actually just add them to my engine!

Shaders (Lighting)

Allegro 5 supports shaders. It's a bit of a dark art - there isn't a lot of tutorials and examples out there. I will have to do a lot of experimenting. But it is possible. I've tackled more challenging work in the past.

Physics

There is one major 2D physics library for C - Chipmunk physics engine. It used to be a commercial paid engine. But now it's free! (and open source). Should just be a simple library import.

Scripting

The obvious choice would be Lua. However, doing some research, I discovered Squirrel. It is used by Valve and it has better garbage collection, but also it supports native classes - which is something Lua doesn't support natively. You have to make your own 'class' implementation with Lua. Having used Lua in the past quite extensively, I definitely would appreciate native classes in game development.

More Complex Maps

Object support would be nice. So I can place objects in X/Y positions. This isn't possible with a CSV file. Luckily, someone has made a .tmx renderer! https://github.com/dradtke/allegro_tiled I probably should have been using this all along..


Combining all of these features will bring my game engine to a new level. It will make it much more appealing and technically impressive. However, it's going to take time.. I will have to come to terms with the fact that I will probably be adding another year or two to the development time (unless I happen to find myself with a lot of free time, and still able to pay the bills.. unlikely..).  I think it will be worth it, so I can say that I have made a decent game, shipped it, and maybe even receive good reviews!

I plan to do some serious work on the game this weekend (04/03/2020). I aim to push out another build to the public, all going well.

Get Wizards With Rockets

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.