State of the Game #8 : Making Mechs

This week I am going to get right into it. We are making mechs and will continue to do so into next week. Ah, but what does that mean? Well for starters, it means new parts, new stats, new enemies, and new AI. Details below.

So, in the same order they happened, this is exactly what I did this week.

New Heavy Cockpit model:

I know how lame it is that I don’t have a screen shot, but it’s not quite ready. Saw some changes I want to make and am going to hold out. Maybe it will make a showing in Screen Shot Saturday. But, with the new model I ran into quite a nasty little bug with Unity. Using compound colliders as triggers (we do this to test for collision when you are building your MAV) just plain doesn’t really work. The results are pretty sporadic, so I found a better way. I switched to a more complex compound collision volume and then setup Non-convex mesh colliders as the triggers. This works out MUCH better, give us more freedom with the models, and allows more accurate collisions in game.

AI M.A.V.’s :

I wanted to see how the new cockpit looked in action, so that naturally lead to building up an enemy MAV and throwing it in the test level. A few tweaks to the AI code to provide the correct input (All our AI’s ‘play’ the game, feeding the same systems standard inputs, never cheating by moving in ways you can’t) and I was fighting against a MAV. It was much more fun than the silly tanks in the level now AND helped me discover the next issue.


So after playing a few rounds against the AI, the horrible balancing issues became apparent. I did a quick balancing pass, but it will need quick a bit more work. In general, things are about as equally over powered now, but the ‘durability’ of the encounters is subpar. I am holding off on doing more balancing at this point because there are parts of the combat code that are not fully realized, like armor.

Procedural Generation:

So now that we have a worthy enemy, I wanted to fight more of them. However, the process of building and setting up the enemy MAV’s in all manual and not very fast. I thought a quick solution would be to just build them in the in-game editor and load in the save files, but I wanted better than that. Procedural generation is a big cornerstone of what MAV is going to be about, so I decided this would be a great time to start on it. I have started creating a Procedural MAV generation system that will not only be able to spawn random enemies to fight, but it can also build a MAV for you as well. It became apparent in testing that not everyone enjoying the ‘tweaking’ aspect of the MAV as much as I do (My wife just wanted to shoot things) and I had found a really cool feature in Forza 4 that eliminated this for people. In Forza 4 you can have the system Auto Upgrade your car for you. This system evaluates your car and picks the upgrades that will provide the most improvement for you and get you as close to your target goal as possible. I have found myself using this feature in Forza quite a bit when I am short on time and thought it would be a great fit in MAV.

Here is how it will work. You drag sliders on attributes that will define your MAV. The 4 attributes right now are Speed, Defense, Range, and Firepower. These can be expanded in the future though. Then you click Make and it will select the parts and settings to try and make a MAV that matches your sliders as close as possible. This is a fairly complex system and I will do a more technical write up once it is finished (I am about halfway there now).

As always, thanks for reading and your feedback is welcome.


Leave a Reply