MonoGame/C# – Mithril

When I was a kid, I used to spend a bunch of time playing flash games with one of my favourites being a game called “Motherload”. The main concept of it was to essentially dig. You operated a drill on Mars that you use to harvest resources found within the ground to sell for credits that you would use to upgrade your drill to dig some more. As you went further down, you would discover more valuable resources and more hazards.

MotherLoad for Android - APK Download
Motherload

Maybe you think that sounds quite boring, but as a kid I loved it and so did a lot of other people as I found out when I went to replay the game recently. It still holds up its charm after all these years.

Ever since I got into developing games, I had a goal of possibly one day recreating my own version of it. it took a few years but I eventually did start work on my version that I have called “Mithril”. For now.

Design

Mithril is to have the same sort of design as Motherload and other digging games like it with the aim to be to mine resources that will become more valuable as you dig further down. The main goal of the project is to essentially to recreate Motherload, but this time with Dwarves instead of a drill.

The gameplay is… a unique taste so a crucial objective with Mithril is to try and branch it out to more people. I feel the biggest issue with these type of games is that they can feel almost pointless as the objective is to simply dig. That will be engaging enough for some people but for a lot of others include even my adult self it really isn’t enough to keep us engaged. Especially for further playthroughs.

I think this is where Motherload really stands out and why it was likely the most popular of these digging games. It had an endgame with a final boss that you could fight along with lore behind it that would be revealed more as you dug further down. The player would feel like they had some form of objective that wasn’t to simply mindlessly dig to get a higher score.

Mithril aims to have something similar. Everything is still very much in the prototyping stage, but the goal would be to have different objectives that the player could fulfil such as mining a certain resource, discovering some sort of cavern, or even finding a NPC that has managed to get themselves lost in the Dwarven mines. I am a huge lover for boss fights as well so maybe something will find it ways into the game.

Along with objectives, there of course should be a focus on the main premise of the game: digging. The digging shouldn’t feel mindless. Given the option, a lot of players will simply attempt to dig straight down to the bottom of the cave. But as we know from Minecraft, you should never dig straight down. Adding hazards to the cave would make the whole experience a lot more interesting. Hazards such as lava, water, and gas would add a much needed danger to the game that will keep players on their toes. It should be difficult to delve deeper into the cave. Having players figure out ways to avoid these hazards and be more cautious adds a lot more excitement to the gameplay.

Programming

As for the coding side of the project, I decided to develop the game using the MonoGame framework with C#. MonoGame is a predecessor to the old XNA framework and is sort of a favourite of mine.

You might be asking why I choose to go with MonoGame over an engine such as Unity and honestly you would be right to ask. However, the answer is simply just because I wanted too. There is a bunch of games that I love which were made with either MonoGame or XNA so I wanted to create something using similar tools. I have used to a few times over the years but never to an extend like I am for Mithril where I am creating a whole engine by myself from scratch that will be used to develop the game.

For the engine itself, I decided to go for a similar design as Unity where I am using a component system that will allow me to easily attach and detach components on entities. Each component will then handle its own separate logic such as sprite rendering, moving a character, etc.

There is still a lot to be done on both the engine and game side. The main focus on game side is the terrain generation which uses Perlin Noise to generate a series of chunk spanning down to a set length that will act as the mining area for the player. A number of the blocks contained within these chunks will be filled with ores that the player can mine.

None of the Assets used are final, and are simply placeholders
Some further changes to the game including Indicators of where you can mine

I hope to update this blog as I progress further into the project. As of currently, the project is on slight hold until I find more time to work on it.

Next Post

Previous Post

© 2024 Adam Raybould

Theme by Anders Norén