I thought it would be nice to go back through some of the development of Tearable (working title, maybe), which started as Project Metallicus. To document some of the changes it went through, general development choices and conversations. This won’t get very technical, I’m not gonna post any code or anything like that. Hopefully that avoids me saying anything too stupid on the internet. But if I have, or if you want to yell at me or just say hi you can find me on twitter here.
I’m doing this while still in development, but after a couple of months, so the first few posts will be retrospective. I’ll be sharing a lot of GIFs and videos of the game in development, some of these early ones look nothing like what the game exists as now, and it might change more in the future!
What Game Should I Make Next?
I had just finished and released Wag Royale which took me quite awhile to finish. I wanted to do something smaller in scope and a bit more interactive (Wag Royale is essentially a clicker/idle game). I keep a Trello board of any ideas for games and one of the items on there was a link to this github repo for destructible terrain with collision in GameMaker Studio 2 by niksudan.
This seemed pretty cool, but it wasn’t much of a game yet. I decided on a type of platformer where you would dig out the route yourself, then have to navigate it.
I sat down and wrote out a design doc, including the diagram to the right, trying to figure out what this game could and would be. From exploring options for movement of the player, how to make sure the digging was smooth with fast inputs, how I might generate the levels, adding difficulty, hazards ,enemy types and more.
It also included plans for the meta stuff around the game, earning coins, unlocking cosmetic characters, daily challenges giving larger rewards or maybe special exclusive cosmetics, if I should include adverts, where they should play etc.
The first steps were to get something moving on screen, and collision working with both the destructible terrain and other objects. Typical platformer stuff for the most part, finite state engine etc.
Time To Actually Open GameMaker
Here is my first collision and movement test.
The blue parts are regular objects using collision masks, and the grey is the destructible terrain using a grid for collision. You can see the “player” changing sprite to match the state it is currently in.
At first my thought about movement and controls was a very simple method, if the mouse button is held down (i.e. a finger press on a phone) then the player would walk forward. They would automatically turn around when they bumped into something, and if you let go they would jump up. This control scheme wasn’t very good, you couldn’t stop without jumping, and if the player walked the wrong way you had to wait possibly awhile for them to find a wall to bump into to turn around. I was thinking the digging part would be emphasised more if the player control was so simple it was almost automatic, but it felt bad. More on controls later!
You can see the player get stuck at the bottom when going up a slope and hitting the blue wall at the same time, there were some kinks to iron out.
When everything seemed like it was mostly working I wanted to be staring at something a little nicer looking, so I went to kenney.nl which is a fantastic resource for free game assets, and implemented tiling for the terrain instead of just a block of colour. After realising that the character I chose was maybe a bit large and swapping him out, I added some actual game bits. Collectable coins, an exit to the level, and a key required to unlock it first. Now you actually had an objective and things to do and dig for. I also put in some quick shadows, to try and give the dug out sections some implied depth.
The shadows were neat, but pretty sharp, and some corners resulted in weird shadow shapes. So I looked to the dark arts of shaders, in this case some simple blurring. I really liked how this effect turned out, because as you dug out more of space it would become much lighter, and smaller holes would still remain kind of dark. This turned out to be a bit of a resource hog once I actually ran the game on a mobile system however because the amount of blurring to get this effect was pretty severe.
I also tried out a “brush size” option for digging, but it seemed a bit unnecessary as long as the default size wasn’t too large. You can always just dig out more, and I was trying to keep the UI and amount of buttons relatively small.
You can see the interface slowly changing throughout these videos, at this point I was still making everything quickly knowing it would be temporary. Here is the first version of the menu that will pop up when you fail a level, then after I added a bit of colour and some better movement to the buttons. Still a long way from done though. This menu system is maybe needlessly complicated, I add things to a queue and it automatically moves everything into the correct slot and creates a new button for the space created by a button leaving. It also randomly sorts a list of colours and goes through them so it will look different but not have multiple buttons looking the same.
In case you were wondering, Metallicus was the result when I googled what the Latin for ‘miner’ was when I needed a name to save the project.
To go with the shadows I thought that the little miner character should have a light! While I was thinking about how I wanted to do this, someone posted this tutorial to the GameMaker forums for 2D ray-traced lighting. It took a bit of massaging to get working correctly for me, but I was super happy with the results. Especially as the user can dig all sorts of shapes out of the terrain, and the light moving around them looks great. Eventually I would settle on a more faded set of lights behind the player, with more of a blur to even out the intensity a bit.
To try and add a bit of variety I added multiple tile sets (again, thanks kenney.nl). You can also see some more enemy types starting to show up with some different behaviours. More on them in a later post!
You can also see here the movement controls have changed to be a bit more direct. The player character now moves left or right depending on which side of the screen you click on. Still more changes to come there too!
The next post will focus on changing the art direction of the game to something a bit more distinct, including sprites, animations, and fonts.
Thanks for reading!