I still need to draw more for the rocket and cannon turrets, but now all of the vehicles have consistent sprites even if you can’t tell their guns apart.
With all of this new art ready to go, I implemented all of the new vehicles and turrets in the game. Doing this presented a new problem though; I had to actually balance them all!
For the Ludum Dare version, it wasn’t hard to plug in some numbers for the three vehicles and nine turrets. But now that I’m up to seven vehicles and twenty one turrets, trying to keep everything balanced by just plugging numbers into the editor isn’t possible.
To fix this, I threw together a quick spreadsheet with all of the vehicles and turrets in it so I could see everything all in once place. I also had it calculate the DPS of each weapon to make comparing them easier.
Adding more vehicle tiers was one of the fixes I mentioned in my postmortem, but I’ve noticed recently that the AI often crashes into your tail once it gets too long.
To fix this I got the AI to orbit your entire chain simply by orbiting whichever piece is closest. The path it takes around you ends up being a little bumpy if you’re sitting still, but I’m happy I came up with such a simple and effective solution!
Once I had the AI orbiting me, it started to crash into other enemies moving in the opposite direction. I tried a few different solutions, but in the end I made them try to repel each other at a bit of an angle so they have a tendency to always turn in the same direction to avoid one another. I also changed their hitboxes from squares to circles so they can slide past each other more easily.
Now that the AI was better equipped to handle large chains, I moved on to the biggest criticism of the original game – the controls. People consistantly said the controls didn’t really make sense, so I implemented a new control scheme, as well as an options menu to switch between it and the old one.
After using the new controls for a while, the old controls actually feel really bad to me! The new controls are now the default, and in the future if I find that nobody uses the old ones I might remove them from the game.
With all of these changes, Chaintanks is starting to feel a lot more polished than the original version. It’s going to need more features than it has now to be worth posting on Newgrounds or Kongregate though. As it is now, it gets boring after only a few minutes of playing. That was perfect for Ludum Dare where people want to play a lot of games as fast as possible, but for spending 30-60 minutes on it won’t work.
I’d originally had the idea of just having 10 or so missions you’d go through before reaching a boss. That’s not very interesting though and could make the player get bored halfway through. Instead of just going with that, I spent an evening brainstorming new ideas for level progression.
I knew I would want to have the game broken up into two to five minute long missions. Having a short term goal is a lot more interesting than the endless gameplay in the original prototype. Completing a mission will award bonus scrap and fully heal your chain for the next mission, rewarding skilled players who manage to complete the mission without losing pieces of their chain.
Maybe Borrow from FTL?
The first idea I have is to make a map similar to the sector maps in FTL. The player will move left to right selecting from missions close enough to them. Missions in the center will be difficult, but rewarding, while missions on the top and bottom will be easy with mostly low rewards but the occasional good one. The idea is to encourage the player to seek out the easy but rewarding missions on the edges by jumping back and forth across the difficult missions in the center.
To prevent the player from farming every single mission, I came up with a tweaked version of the fleet that follows you in FTL. Completing missions will make all the missions to the left of you go on alert permanently. Each time you complete a mission, everything on alert will get it’s difficulty bumped up a bit, but its rewards will stay the same. You’ll be able to farm a little bit, but the difficulty will stack up very quickly and force you to move on.
I felt fairly certain this was the design I should use, but I forced myself to make an effort to come up with one more design to see if there were any better ideas rather than just jumping on the first one that came to mind.
Maybe don’t Borrow from FTL…
My second idea was to give you 48 hours to complete missions before facing the boss. Not 48 actual hours of course; missions will still take just a few minutes, but each will consume a few hours of time. Before each mission you’ll have the option to select from two or three different missions. Each one will take a different amount of time and have different rewards and difficulty ratings.
Most missions will also increase a threat rating by a random amount, while some will decrease it. If your threat hits the maximum, you’ll immediately be forced into a difficult mission with low rewards that will also consume some of your time.
Cool Ideas, time for some Feature Creep
In order to make either of these ideas work, I’m probably going to have to implement some sort of upgrade system. I might end up adding upgradeable abilities, and I’ll almost certainly give the player the option to upgrade stats like health and damage. I’d like to avoid having the player tweak individual segments of their chain though, mainly because it would take too long to implement.
I think the second idea is the more interesting of the two, and I’m glad I didn’t simply go with the first thing I thought of. The implementation of this idea will easier than the FTL style map, and I can’t think of any games I’ve played that are similar to it (though there’s bound to be a few!).
I can already tell that balancing it will be quite difficult though. I need to provide a good variety of missions to give the player different strategies for getting the most upgrades while rewarding skilled play.
In the short term I’m going to make some sort of paper prototype before writing any code. I’ll lay out all the missions ahead of time, then simulate playing the game with dice. High rolls will mean the player did well and got a good scrap reward, low rolls will mean they did poorly and lost pieces of their chain, and a 1 will mean they died.
Last but not least, I’ve put together a build of the most recent version of Chaintanks! You’ll find links below for each OS. It’s still very similar to the Ludum Dare version, but the biggest tweaks are the added vehicle tiers, new controls, and AI tweaks. I’d love to hear any feedback you have on it in the comments below, or on Twitter!
I’ll be back soon with another devblog on how the prototype went, feedback on the latest build, as well as whatever other progress I’ve made. With XCOM 2 coming out though, I might end up binging on that for a while, so it could be three weeks rather than the usual two for the next blog… I REGRET NOTHING!!!