Check out this thing I did before I submit it upstream

About a month ago I came across an open-source game on called Tanks of Freedom, a great take on grid-based tactics with three unit types that have great dynamics, and a solid resource system. I got really into it for a while until I kept running into the same problem - the game got grindy.

You see, in ToF you win by capturing your opponent's HQ. That's fine, but since most maps start you with an HQ near other buildings that construct units, and since most HQs are in areas that are easy to defend, once you reach the tipping point in the map and overtake nearly everything, to the point that it would be near-impossible for your opponent to make a comeback, it can still be a long time before you can actually win. Turns end up being "construct new units, send them toward the front along the single most efficient path, and attack the defending units and advance as much as possible, which is one or two spaces if you're luck." It's a grind, and everyone involved knows the game's already over.

But I really liked everything else about it - and this is not an insurmountable design flaw. I've played a lot of tabletop games, and one of the elements I've enjoyed in them are the shared objectives that are designed to require all players to compete directly for something neither can entirely control. I took this idea and tried it out in Tanks of Freedom.

Here is my initial OS X build from this branch of my fork of the game (feel free to build it yourself on other platforms) that adds a new structure, the "objective." Objectives start unclaimed, cannot construct units, and consume the unit that captures them. When objectives are present in the map, a score panel is displayed tracking game progress - at the end of your opponent's turn, you earn 1 point for each objective you control. I also included a built-in map called "objectives" to demo the concept.

If you want to try it, try the map in Skirmish mode. Presently there isn't any support for objectives in the AI, and I didn't write any code for online multiplayer, but for a 1v1 local game it works great! If you try it out, let me know what you think - I'm still doing the final tweaking before submitting it upstream.

Recent Activity: