MetalMania v0.4 is now available for download!
https://katd.itch.io/metalmania-v04
So the latest version of MetalMania is out, and I think I am finished with this project for now. I'll explain why below, but if you're not interested in reading all of that you can skip further down the post to find out whats next for me!
Is MetalMania the game I set out to create?
In truth, yes and no. I never set out to make a game initially, I wanted to see if I could replicate the behaviours of combat robots and their weapons because Robot Wars was returning to our screens and that made me remember the old series I loved as a child. This lead to me openign up Unity and getting started with everyone favourite white boxs!
These were the first two bots I ever programmed, using a standard Unity car controller to drive them around. The weapons were extremely simple scripts that either rotated the disc via its local axis or lerped the axe arm between two local positions. It was cool! the weapons performed more or less how you'd want them too, but with no real physics, they didn't FEEL quite right... More on on that later. So these bots are cool and all, but they're not exactly nice to look at. I wanted stuff to look like the old show, robots like my favourite Hypno-Disc and Firestorm instantly sprung to mind. I had no plans to actually really release these or even profit so I wanted to recreate some of my televised favourites.
Is MetalMania the game I set out to create?
In truth, yes and no. I never set out to make a game initially, I wanted to see if I could replicate the behaviours of combat robots and their weapons because Robot Wars was returning to our screens and that made me remember the old series I loved as a child. This lead to me openign up Unity and getting started with everyone favourite white boxs!
These were the first two bots I ever programmed, using a standard Unity car controller to drive them around. The weapons were extremely simple scripts that either rotated the disc via its local axis or lerped the axe arm between two local positions. It was cool! the weapons performed more or less how you'd want them too, but with no real physics, they didn't FEEL quite right... More on on that later. So these bots are cool and all, but they're not exactly nice to look at. I wanted stuff to look like the old show, robots like my favourite Hypno-Disc and Firestorm instantly sprung to mind. I had no plans to actually really release these or even profit so I wanted to recreate some of my televised favourites.
These models were pretty good in my eyes to their real life counterparts (well, Hypno-Disc was a little chunkier, but I sorted that out later) and I had managed to model and create the textures for them all by myself. I was adamant about the project being as much of my own work as possible. I did this to improve upon my development skills and also claim bragging rights to owning everything produced in the game as my own work.
Expanding the Project.
Now I had something pretty to look at, I started expanding the 'games' features. What use are combat robots if you don't have an arena to fight them in!? Again, I drew from the original show for inspiration, I wanted a pit to dump robots into! Flamethrowers! Circular saws with flying showy sparks! Wow.... Thats alot of stuff to include... I decided that maybe having a functional pit that can detect a robot being pushed into it to be the best bet for now, as well as creating a few other basic box bots for future conversion into more replicas. Since I used a trigger volume to detect a robot in the pit, it was also easy to setup a flamepit that dealt damage over time to a simple health bar linked to a players robot.
The above arenas are of my test arena, that I used to program and test new mechanics in, as well as whenever I added a new bot. The arena included other robots to interact with, rigidbody cubes along with some floor spikes, the pit and flame pit to see how each robot and mechanic reacted with one another. I spent ALOT of time playing around in here with each bot to tweak it.
So now I had some functional systems I needed a proper shiny arena to make. I was rewatching Series 4 at the time and realised there had never been a video game interpretation of the Pinball Warrior tournament. The only existing game to come close was Extreme Destruction on Game Boy Advance, which featured some similar Trials.
This was a single player mode based very faithfully on its TV counterpart. You drive your robot around the arena and try and score as many points as possible in the time limit. At this point the only bots I had playable were Firestorm and Hypno-Disc. It lacked certain things such as a full background, full studio styled lights and house robots and certainly had its flaws, such as the dodgey weapon physics and collision issues, but I was proud of what I had whipped up and decided to share my creation with the newly formed up Robot Wars community.
Community Expansion and Learning.
Turns out the Robot Wars community was far from dead and I had a fair bit to catch up on. After the shows original run ended, robot combat entered the 'underground' once again and was popular in a variety of live events throughout the UK. There was also this fabled game I'd never heard of called Robot Arena 2 which was released back in 2003 but was still immensely popular today.
My post to the Robot Wars community on Reddit was met with a pretty positive reception! A few people gave some great feedback, praising the looks of the game and commenting on things like the controls could be improved. I'm a strong believer in developers communicating and interacting with their audience so I responded to nearly all the comments and answered any questions that were brought up, as well as making sure people understood on what the point of the project was, and how it was being made. They were very understanding and supportive! People seemed interested in seeing the game develop so I made a note of updating the community whenever there was a new build to try!
University Module Development - Dump Zone Game Mode.
A few months had passed and I was back studying in my final year at university, progress on the game in my free time had slowed considerably but I was granted a chance to work on MetalMania (then still untitled) for one of my university modules focused on building a portfolio of work for myself. Talk about killing two birds with one stone! A chance to work on a project I wanted to work on anyway, a chance to further my skills and spend more development time AND to have it all academically assessed at the end. Sold.
I decided that if the Pinball Warrior mode was going to aesthetically look like the 'golden age' of Robot Wars with the hazard stripes and red borders, then I wanted the next arena to be more faithful to the series before, akin to series 3 and before.
This arena also featured grinders on the side walls and what was to be the awesome arena flipper! This mode was another test of driving skill for single players, and they had to dump a variety of objects into the pit in the time limit while avoiding arena hazards and scoring points, being overzealous with your pushing and you might end up in the pit yourself! This was also the first use of Unity's joint system, which I had some fun playing around with making swinging door hinges on the fridge and microwave. I originally wanted the toaster to be an actual working toaster that would pop out toast upon collision, but it wasn't worth the development time as I now had to deliver a portion of the project on a deadline.
Sumo Basho and Why I Dropped It.
I actually planned and tried to make a Sumo Basho mode before Dump Zone, with my favourite house robot Shunt included!
I had the arena and game mode modelled and functional, the problem was creating playable Shunt AI. Now programming isn't my strong point, and I struggled to make a indepth AI that would follow the player 'fimrly but fairly' instead of relentless ramming into them which then in turn made it not fun, but also caused lots of collision issues, causing robots to clip and fly everywhere and it was very messy. I tried a variety of methods such as changing Shunts collision to just one big cube to make a flat surface for the pushing but to no avail. I decided to keep the game mode just in case I wanted to come back to it later and implement it, as I felt, like Pinball Warrior, fans would like to play a game mode from the show that had never been gamified before.
My second post to Reddit received even more attention, which granted me even more feedback! People now started suggesting what they'd like to see in the game, things like a Bot Builder to make their own creations and people still thinking I was trying to compete with Robot Arena 2 (Which I never set out to do but it was nice people were making comparisons). Once again I did my best to interact and answer all the questions people asked, including such things as copyright. Spurred by the feedback I carried on!
Gauntlet Game Mode and Weapon Rework
On my travels through the web and anything I may have missed out on, I came across a show called Robotica. Instead of competing robots against one another in combat and fights, Robotica competed robots against each other in task based challenges, to see which robot was the more versatile and supierior. Some of the robots on the show wouldn't even have weapons! A concept that would be entirely laughable in the Robot Wars or Battlebots arenas. I had wanted to do the old Robot Wars gauntlet run anyway, so making my own interpretation of Roboticas gauntlet run seemed like a great way to include something that wasn't Robot Wars inspired in the game.
It featured the seesaw from Pinball, as well as rigidbody objects players can crash into and through, speed humps to navigate over and some new visuals. A simple game mode yes but again, had never been gamified before.
There was also new robots to accompany this update, and I had spent alot of time completely reworking how weapons behaved and performed. After having the original script I whipped up that used lerps and no real physics start to get really to implement and hard to use, along with it causing all sorts of collision errors in game while it was being used, especially against other robots.
I attempted a revision of the weapon script that still used the lerp system with a more refined behaviour, and also activated some manual trigger physic volumes I had coded, but the result still caused the same issues and was still a pain to assign to each specific robot.
I used this script for a little bit before biting the bullet and removing it completely, remembering that the Unhity hinge joints I had put on Dump Zones objects were basically integrated physic components and behaved more or less how I wanted things to behave with my terrible manual coding. Surely they could be tweaked to behave exactly how I wanted them too?
Well they pretty much did! I transitioned my weapon system through to use these components, giving flippers virtual springs that would damper with different values, physically pushing the flippers through the virtual space and interact much more realistically with other robots and environments. Spinners use motors that spin up with variable velocity and stop when they hit something instead of continuously spinning. I really should look through what unity has to offer before I set out and try and make my own system first.
And thus, another update was posted to Reddit, garnering more feedback and more suggestions, much to my delight. By this point this project had far surpassed my original intentions of making some robots in Unity, and I was thrilled to have an audience willingly looking at what I was creating and giving me feedback.
The Final Build
MetalMania at this point was the longest I've ever stuck with and created a project, and it was starting to show. I did feel myself getting a little fatigued with it, noticing all the little things that bothered me, what could be better, comparing myself to other developers, other projects that I felt did things better. However one thing that people had been asking for since the start was the opportunity to battle the robots against one another and I was determined to at least deliver on that front!
After tweaking the manually triggered physic volumes weapons had to respond better to the new component behaviours (how flippers move and actually flip) I started designing an entirely new arena with entirely new hazards, this time inspired by the Battlebots arena! Cool hidden floor saws! Giant hammers! Corkscrews! New ways to get hurt! How exciting!
I also added in a few of my own hazards, a spinning platform in the middle of the arena that throws your robots driving off, as well as a drop zone that drops a random object on you to deal damage if you stay in it for too long. This was going to be a local 2 player mode, so all robots had to be configured for two players to be able to be controlled and deal damage to each other. This was pretty simple by adding Player 2's controls on the other end of the keyboard, allowing to players to share and play.
Again, another simple mode but was very high in demand. I know my physics are far from perfect, as this was my first time programming them, I've learnt alot I can use to keep improving the next time I use them!
MetalMania has been great to work on, has helped me improve immensely on my development skills and has even given me a small taste as to what having an audience for your game to be like. Its been a great experience and thank you to everyone that has followed me through it! So that leaves one question...
Whats Next?
I'm working with a few other indie developers to make Robot Rumble 2.0! It seems I'm not done with making a robot combat game, even though MetalMania has been 'finished'! We're a very small team, using Unity again and our aim is to get the game out on Steam with features like a robot building lab, controller support and more!
This project is pretty relaxed and we work on things catered to our strengths. I am doing alot of design, 3D modelling and programming because of this. I have designed 2 arenas in the game so far, as well as modelling parts for scenes and robots. On the programming side I am currently working on an Arena Editor to accompany the BotLab which is being worked on by another team member. I am also responsible for the games official Twitter account and public representation.
Visually I feel it looks better than MetalMania (As we are using 3rd party assets along with our own) and it plays better as well. The physics and bots are totally different to how I did mine and behave pretty accurately! We're taking alot of inspiration from Robot Arena 2 and really would love to compete with it.
This project is already picking up in popularity within the community over on GameTechMods and we even have a Twitter account that has pictures, news and social interaction with our audience.