Descend into the depths of alien planets, fight off other miners and deadly monsters, and claim the crypto treasures that reside beneath the surface!
Mecha-Miners is a crypto based mining game with online multiplayer, fast paced battles, and tons of fun upgrades, gear, and gadgets.
The game is built in the Godot engine and utilises a server-side GraphQL interface to communicate with Enjin for it's blockchain capabilities as the game's currency.
As I had recently started learning to use the Godot game engine and made several small games in it, I was ready to take on a larger project and test my skill. I made a small prototype of Mecha-Miners for the Ludum Dare game jam a few months prior, and decided to build upon the concept further. The game has grown massively since then, but the core idea has held steady
I had used Godot's networking features a couple times in the past, first in a digital card game made for Global Game Jam 2021 and then again for a platformer party-game I was building with a friend. Neither games got too far before hitting roadblocks, but I had seen Godot's networking potential and wanted to try further my knowledge with it.
Like many others, I grew interested in Cryptocurrencies over the height of the pandemic and even briefly tried my hand at trading them. As the academic year began, I grew interested in the way they worked, and decided to research their inner workings further. For this project I've aimed to gain an understanding of how different Cryptocurrencies operate and their use in games, and then apply that to Mecha-Miners.
I want to investigate what addons and libraries exists for Godot that support blockchain functionality and evaluate their usefulness to this project.
I want to investigate, through the development of a game, the ways blockchain technologies can be used as game mechanics, and how they've been used to-date. I want explore the blockchain gaming space and see what unique ideas have been deployed.
I want to evaluate blockchain as a monetization strategy. I want to explore the unique and interesting ways monetization can be built into the game, how players interact with those efforts and how they respond to them.
The first features added to the game were a destructible tile-based world, and a platformer player character with a jetpack and movement physics.
The player has a gun and a drill by default, both of which can destroy tiles, but the drill does so more efficiently.
Enjin is a platform designed to provide Cryptocurrency functionality to video games, and while it has many SDKs for different languages, none would work with Godot.
The part that made Enjin useful to me, is that they also provide a GraphQL interface through which requests can be made, and so I used that to develop a Godot addon that utilises that interface, which I can then use in Mecha-Miners (and future projects) to introduce Cryptocurrency tokens.
While progress is steady with the addon, Enjin's documentation is out of date, which has introduced a lot of trial and error into the process.
Players and Non Player Characters can attack each other with either of their tools, though the gun is vastly more effective in combat than the drill due to its range and attack damage. When a player dies, they lose a random number of their procured goods, which can be picked up by other players.
Eventually, players will be able to purchase additional gear and equipment for use in combat, such as explosives, automatic weapons, and armour upgrades.
The game is playable with multiple players, as a Godot server hosted on a Digital Ocean VM handles game syncing between clients. The server synces up all aspects of the game and interfaces with the blockchain service to handle player's resources.
As the game is based around mining, premade maps would quickly become boring, so I chose a procedural approach to the world generation using layers of Open Simplex Noise (similar to Perlin Noise).
The ground level is first generated, before caves are added. The caves branch as they travel roughly downward, creating interwinding paths. Finally, a second layer of noise is overlayed on the caves to create strains of crystals.
The terrain generation scene has a number of parameters accessible in the editor to change how the caves generate so changes can be seen in real time. This makes designing and tweaking the generation a breeze.
This site's information may be outdated, for the latest progress updates, check out the latest below:
In the future, I would love to experiment with an educational app, similar to Duolingo or SoloLearn, where a Cryptocurrency is given out as a reward for learning. The economics of the app may be complex, but I feel it could have great potential.
The idea would be that the monetary incentive could make learning feel less like a chore and more like a job, as you're getting paid to learn something new.
An alternative project I'd be interested in pursuing would be a video game based around running a business, where the game's currency is tied to a real value, similar to Peter Molyneux's NFT game "Legacy".
Cryptocurrency games always revolve around the money you can make from it, so it makes sense to involve Cryptocurrency in a game based around money.
Thanks for checking out my project!
I'm a highly motivated game developer and final year student of IT, Carlow. While my education is in games, I'm interested in nearly all areas of IT and more creative pursuits.
If you'd like to find out more about me; check out my website, view my CV, or get in contact on LinkedIn or via email at firstname.lastname@example.org.
In games, my interests are mostly with design, procedural content, and AI, though I dabble in all areas, as I make small solo indie games often, which I release on my Itch.io page.
I also have a strong interest in web development, either with HTML and CSS, React, or Wordpress, I use them all and enjoy each one. I designed this site myself, and more information on my web development projects can be found on my GitHub account or my website.