If you’ll forgive our cheesy UK tabloid press headline parody, this post will explain what we’ve spent our crowdfunded money on so far!
So back in August 2014, we set up a crowdfunding page on Patreon, with the fairly modest goal of achieving an income of $5000 per month. At the time Chaz and Alli were about 3 months into development of Basingstoke, which was supposed to be a “little” game that took 3-6 months to complete (2.5 years later and it’s still nowhere near finished!). I was about one year of full-time development into an entirely different game, the mythical Battledroid.
The idea was that the Patreon funding would enable me to continue to work full-time producing Battledroid, which would see it reach a publicly viewable state within about a year, having already spent about a year on development. Puppygames itself was making just enough money to fund Chaz and Alli on Basingstoke, albeit at sub-minimum-wage levels.
Easy, I thought – just look at how much cash people are throwing at hopeless Kickstarters.
Unfortunately it didn’t exactly work out like a magical indie game developer fairy tale and we managed a funding level of just $400 per month at its peak. It’s currently languishing at about $200. More on that later.
Six months later, and flat broke, I was in a contract working for the marine seismic exploration industry in oil and gas. Ironically, hired to write software to save whales, at the expense of polar bears, naturally.
So I contracted away all year, and finances were suddenly back nicely in the black, and Basingstoke was effectively funded indefinitely so long as I kept working. Unfortunately the rigours of doing a good job at work meant I was totally drained of energy and couldn’t do any more work on Battledroid.
Enter Dan, the Attack Programmer
Having completed the tortuously difficult task of making a complete and functional user interface framework for Battledroid and putting it to use creating the title screen and master control overlay, the next screen that needed doing was the “World” screen.
It’s a map of the world, showing each territory, coloured according to various filters and options you could select. It’s the nexus for the metagame in Battledroid, which is a massively multiplayer game of total global conquest. The entire game is based around the conquest of the individual territories.
In the months between the Patreon starting and my giving up and looking for work, I’d implemented a rather lame grid-based world map with a rather boring cylindrical projection of the Earth. I tried several variations on the projection. It is important that the game takes place on the real Earth, because I want there to be real tangible places to fight over that players may have an affinity to.
However, it was never quite right. There were three main problems by the time I’d finished with it: firstly, it wasn’t quite fast enough when zoomed right out, using the sprite-based rendering to draw atlas tiles as I was. Secondly, a grid topology leads to some rather ugly quirks in adjacency calculation. And thirdly, no matter what projection I tried, I couldn’t get it to both look sensible and have truly representative area at the same time (as any peddler of atlas projections will tell you). There was really only one solution, which was that it needed to be rendered in 3D using a properly optimised routine, and that it needed to be a geodesic sphere with hexagonal territories, and that I needed to somehow convert existing cylindrical projection data I had into this new spherical format.
It took me at least a month to figure out the basics of hexagonal topography and the data structures required to model it. But the really, really hard bit, the bit that involved rendering it, was way beyond my tiny brain. I needed a world that had a million territories on it (there are actually 300,000, but 70% of the world is ocean which you can’t actually fight over in Battledroid). How does one render 300,000 hexagons at 60fps? And what about the brain-scrambling maths required to determine what point on the globe has been clicked, or rotate it around with the mouse?
Simple! Hire someone much more cleverer than wot I am to do it for me.
So I gave our spare-time hit-programmer Dan an API and a briefing some time towards the end of last year, and off he went. And I gave him all of the Patreon money to do it (and a bit). Yes, we actually spent crowd-funding money on a thing that actually turned up on time and on budget!
I had a little bit of a breather in January 2016 and managed to code some UI around his geodesic world renderer and got it integrated into the game.
And then I lost my mojo and had to dive headlong into contract work.
The next 9 months of 2016 passed without me so much as lifting a finger on Battledroid (Basingstoke, as you can see, has been progressing very nicely in the meantime). I would get home from the contract job, looking and feeling like some drained, grey husk of a man. I didn’t even play any games during this whole period. I couldn’t even face the computer when I got home.
Patreon money kept coming in, in slightly decreasing dribbles. We’ve got another $2000 or so of funding in the bank now. Sadly that’s only enough to actually fund development for about 2 weeks.
The Return of Mojo
Then a magical thing happened about a month ago. My mojo suddenly came back! I’d get home after a day slaving over a hot computer in the office (which I affectionately call Fawlty Towers), and I had the urge to make Battledroid again! Even though it’s literally just a few hours a day, it’s made rapid progress, and the World Screen is now essentially as complete as it needs to be in order for me to continue to the next screen, the most interesting screen of all – the Deployment screen. So here, for your delectation, is the World Screen.
Here we can see the initial view of the World. The globe can be dragged to rotate it around (you can even see the position of the sun if you drag it in the right way). Still to do is to rotate the world according to the actual time of day and the day of the year, but that’s dead easy. Well, it is for Dan, anyway 🙂
In the bottom-middle we have an avatar icon and selected territory information. The avatar icon shows the owner of the currently selected territory (that’s me there, in the picture). If you click on it, you can get a little summary of your enemy’s stats.
If the territory belongs to you, you can change its name here. Underneath the territory name, there is some information about the territory depending on the filters you have chosen on the right via one or two dropdown list boxes.
Just to the right of the filter selection dropdowns, there is a small cluster of four buttons and one big button. The small cluster of buttons enable you to set a new home base, in a territory that you own – more on that later – and to reselect any existing home base you might have set. There are a couple of back/forward navigation buttons so you can step through your selection history.
The big button in the bottom right is the Deploy/Attack button (here showing Deploy). If you own the selected territory, then you can Deploy an army to it any time you like. If you don’t own it, then you’re making an Attack.
Here we can see the map zoomed in somewhat on Blighty. The selected territory is shown there highlighted with a white glow. It’s also got a little castle icon in it – that means it’s someone’s home base (in this case, mine). Dotted around you can also see a number of stars and a little Steam icon.
The stars indicate territories that have unique customised resources in them (eg. a battledroid with a +2 laser). The Steam icon represents a territory that grants access to a Steam thing while you hold that territory. More on that later.
You can see borders around the territories owned by different players here, but it’s not so easy to see who owns what with this filter on. Instead you need a filter that colour codes the map according to political affiliation, such as…
Resource Value View
…the resource value view. Here you can see two pieces of information simultaneously shown on the same map.
The hue describes who owns the territory – it’s cyan for your territories, red for enemy territories, and purple for your Steam friends. Let’s call them frenemies. Yellow is totally unexplored land, for which I’ve not even generated an empty map yet. At the point of general release there won’t be any of this – it’ll all be owned by “Account Zero”, and contain a small and feeble randomly generated opposition which hopefully a massive influx of players will soon lay waste to in a giant initial land-grab.
The brightness shows you the value of the territory, quantised into approximately 7 levels, with white being the most valuable (eg. a K999 Assassin or 5xB821 Sentinels), and the dingiest shade being the least valuable (eg. 10 concrete barricades).
This way you can see at a glance where the best loot is, and who owns it. Notice that the territory information box in the bottom middle now shows you what you can find in the selected territory. Right now, there’s only one thing in the game which is the OM-101 Battledroid. You can see its quantity and points value here, but you can also click on it to get a popup window:
This is the rather fancifully-equipped OM-101 Infantry Battledroid. All of its subsystems and the equipment for each subsystem is shown, plus in small print underneath you can also see customisations such as “+30% fire rate”. All of the equipment in its subsystems can likewise be clicked on as hyperlinks, which opens further information popups – I’ve opened up the OCNW-1 Brain there for you to see what its features are.
I’m in two minds as to whether to open each thing in a separate window, or whether to have a browser-like interface on this.
You might want to see how big of an army awaits you in any particular territory before you bother deciding to look:
Notice how I’ve highlighted the scale down the bottom. The brightness of the hexes now shows you where a territory lies on the selected range of values, against the points value of the incumbent defending army. If you’re just looking for a small skirmish you will want to attack a dimmer territory; if you’re after an epic fight, go for a bright one.
You might also idly be interested in the action hotspots in the game. To this end there are filters that allow you to show the total number of times a territory has been attacked (or conquered), again with a choice of scales:
You can also filter on the time that a territory was last attacked (or conquered), so you can quickly find where the recent action has been:
It’s quite probably the case that you’ll want to find out a bit about an opposing player before you jump in and try to do battle with them. You can click on the avatar of the owner at any time to see a few interesting stats about your opponent:
Here we can see @Pkeod, aka the brains behind Subsoap and makers of Faerie Solitaire. Here we can see that Pkeod is an Officer Cadet (the first officer’s rank in the British Army), and that he currently has control of 65 territories, and that his largest contiguous territory is just 20 territories in size. His successful attack ratio is 99% – that is, 99 out of 100 attacks he has succeeded on – and his defence rating of just 14% is rather poorer, meaning that of every 100 times he was attacked, he’s only repelled the enemy 14 times. It remains to be seen what genuine typical values for these statistics eventually unfold to be when real players come along and play the real game.
Note that Pkeod is a friend of mine, shown in purple on the map, but I can still attack him if I want, like a treacherous weasel. Having friends is important in Battledroid, because adjacent friends’ territories count towards your attack and defence strength.
Raising the Stakes
One of the other important things you can do on the World Screen is raise the stakes on any selected territory – even if you don’t own it yourself!
Here we can see that when the Stakes filter is selected (brightness according to value), we can enter a new value in the textbox there in the territory information panel. You can only ever increase the stakes on a territory.
The stakes are a value specified in in-game gold. As soon as you raise the stakes on a territory, the amount you raise it by is immediately deducted from your account. Although all the game territories start with zero stakes, once they have stakes on them, the mood changes subtly. Now, in order for someone to attack this territory, they must match the stakes with gold before they can submit their attack – every time. The winner takes all, less a small cut which goes to Puppygames. Upon a successful attack the stakes are then reset back to zero. I’ll let the significance of this mechanism roll around in your brain for a while and move swiftly on.
Free to Play, Innit
The stakes mechanism has probably got you scratching your head or even possibly preparing your typing finger for a furious internet rant laden with invective. As your Dahlesqe Magic Finger poises ready to unleash your vitriolic monster bot army of Twitter eggs and anime-themed avatars upon us in a tirade of righteous vengeance, stop!
All of this is free. Like totally free. There is nothing that cannot be obtained in this game for free. There isn’t even any grind – the only alternative to paying money into Battledroid is to actually play the game, and play it well.
If you find yourself to be one of these time-poor but affluent types, of whom I hope you are legion, you will hopefully find yourself staring at this dialog box at some point:
Yup, that’s right, you can buy in-game gold directly through the Steam microtransaction APIs. It’s not going to cost a lot of real money – roughly 1:1 with USD-to-gold conversions.
If you can’t afford to buy gold, you can create gold, by converting your hard-won Experience Points into it. You can only gain experience points by attacking an enemy army and winning, with a smaller army. You gain a number of experience points equal to the difference in points between the two armies. You can then spend the points on upgrading veterans (more on that later), or converting it into gold, thus enabling you ultimately access all the content in the game, eventually.
Anyhoo. That’s what I’ve been up to lately. Updates look like they will become rather more frequent on this project.