Game Design, Programming and running a one-man games business…

Cross platform angst and my hatred of middleware.

I do not have cross platform capability. if you play my games on linux, it’s through WINE, and if you play them on Mac, they were ported by a third party company. In the long run, this is likely to be a business weakness of mine. The ipad is great, and I can see it’s a huge market. Inexplicably, people seem to want to play games on phones, and with Microsoft making it more and more difficult to let people just download an exe from the internet, and the dominance of portals online approaching 100%, a move towards html5 or php / flash games seems like a sensible move in the long term.

Of course, people say that the down-loadable PC market is huge and not to worry, but I’m thinking 10,15 years ahead. if I’m still in PC gaming in 15 years, I need to think on those sorts of timescales. (I’ve been reading lots of warren buffet, it’s affecting me :D)

I recently checked out unity, because a top-secret-side-project-i-wont-discuss-yet is being developed in unity, and I’ve never even seen it. I was immediately put off. I can see how for many developers, unity is AWESOME. It certainly provides a ton of tools, functionality and easy-to-use stuff. It seems a lot of the fiddly, hard work has been done for you.

The problem is, I just HATE middleware. I don’t like the way other people code (as a rule, ancient-james excepted), I hate it when documentation says “you can ignore this coding concern, we handle it under the scenes” and I fear black-box code which promises to be ‘optimised’ but doesn’t tell you how, or with what assumptions.

I hate the fear that a bug will crop up after I ship, and not only can I not find it, I can’t fix it even if I could. That sucks big time. It’s rare, but not unknown. Plus I fear that ALL middleware has been built with certain limitations, and certain assumptions. Make no mistake, Unity is designed for 3D real time games. It might be ok to make a 2D turn based game in it, but you will be fighting against the tide, not with it, and carrying a lot of 3D engine bloat with you.

I celebrate the existence of unity for making many devs lives easier, but so far (I may be converted), it really isn’t for me. I like to code from the ground up, with complete control of everything. I’m a guy who uses char* and fopen(). By 2025 I might have moved entirely to std::string and CreateFile, but don’t hold your breath. Also, there is an element of ‘if it ain’t broke…’. I’ve made quite a few games with my own engine, so maybe I should build upon that, not throw it away in favor of someone else’s code?

A decision for after GTB ships, methinks.

 

Design focus, supply drops

The last few days have seen nothing but multiple xperiments with reconfiguring the gameplay for Gratuitous Tank Battles until I hit the magic balance of excitement, fun and spectacle. This game design business is tricky stuff!

Tower defense is an accepted, well-known formula, but tower ‘attack’ is not, and at the very least, I want to ship a game that is fun to play as both attacker and defender in tower-defense style. So with that in mind, I played the game a lot and concluded that it had lots of design issues. The main one was traffic jams. I was trying to design a simple ‘starter’ map that had a single weaving path between towers, and you would place your units and away they would march. The problem was, that when you spot a certain difficult tower ahead, it’s all very well placing a unit that you think counters it, but that unit is then stuck behind 15 other units before it gets there.

Initially I’d been scared of multiple paths for all maps, because of the complexity for the player, frantically scrolling around. Then I realised that if the paths were vaguely parallel, this problem went away. if I shrunk down the map a bit, I could fit the whole screen in with one look (when zoomed out), and could get more of a grip on it, even with multiple paths.

There have been a whole host of other changes as a result. Lots of balance changes, plus the introduction of ‘supply drops’ which automatically drop on the path in the quietest areas of the map, thus encouraging the attacker to spread his attack over multiple routes. That seems to work, as it’s a nice trade-off between ‘those supplies look tempting’ and ‘I ‘m kinda fully committed to attacking this route instead’. Parallel groups of paths also encourage complementary units, so repair wagons can trundle along beside assault mechs, etc, and a sluggish or damaged tank doesn’t bring the whole army to a halt (just half of it :D) I have full support for units stepping sideways around such blockages, I just need to try it and see how it goes.

I have some crappy placeholder art still in the game, and tons to do, but the last few days, where I’ve totally ignored graphics and only fiddled with mechanics and balance, seems to be paying off nicely. It feels more like a game now, and less like a tech demo. I also ditched fog of war, although it may well return in certain modes.

Experimenting with special units

Everyone agrees that when it comes to gameplay the best approach is to try tons of stuff and see what turns up right?
Anyway, it’s an approach I am becoming keen on. Things often sound like the greatest game idea in the world until you try them. And things that sound lame and boring often turn out to be hilarious and fun. The ski-jumping game in wii-sports probably sounds crap in the design document…

Anyway, with that in mind, after playing through a few GTB battles in ‘classic’ mode (tower defense) as the defender, it became clear to me that ‘towers that do different damage to different units’ isn’t enough, in terms of interesting decision and gameplay, so I started thinking about special units.

As of today, there are 3 new magic modules, and associated units in the game. They are hospital modules/ambulances repairyards/trucks and supply trucks. The hospital and repair facilities regularly pulse out waves in a set radius that heal/repair your troops/tanks/turrets as appropriate. There is no overlap, so ambulances only work on infantry, whereas repair yards and trucks do everything else.

This is my first new mechanic, in that we now have units that act as support units, rather than directly contributing to victory. This brings up all kinds of decisions regarding whether to deliberately target the support units, whether you have lots of support units to keep a few big ‘tank’ units alive, or go for a mad rush with no support etc…

The second new mechanic comes from supply trucks. Supply trucks have no weapons, and no abilities, but they score disproportionately when determining victory for the attacker. Basically, getting a single infantryman off the map alive earns (for example) 1 point. get a tank away and you earn 50 points, but get a supply truck away and you earn 500 points :D

This introduces some new things to strategize over. supply trucks are literally harmless when they enter the map, and only pose a real threat as they close in on the exits. Unlike normal units, which can serve some purpose in shooting turrets etc, the supply truck is a binary decision. In other words, you should only deploy one if you are SURE its going to make it to that exit.

Obviously there are tons more potential ideas, and nothing here is revolutionary, but I hope to eventually ship a game that gives the player a ton of variety. Small tower defense battles, as attacker or defender, big battles, rush battles, wave-battles, 2-sided pitched battles, custom edited maps…. If I don’t die from stress or old age before I finish all this :D

Gratuitous Solar Power Stats

Ok, it’s been about a month, so lets look at some solar stats for the last 30 days. ( I have 10 solar panels outside my office window, for those new to the blog. I’m in the SouthWest UK)

Total power generated is 189 units. That’s 189 kwH, which at market prices is £23.62. Bad huh?

But wait a second… I earn 3p per exported unit (50% is assumed) and 43p Feed-in-tariff, regardless of usage, plus of course the 12.5p per unit the power would have cost me if I’d had to buy it. That means that really, each unit generated earns me 57p a unit, meaning I’ve generated £107.73. If we wanted to go mad, I’d claim 12 months of that is £1,292 :D

Obviously summer output is WAY higher than winter, but as a counter to that, we have had a shit 30 days in terms of sunshine (unusually so, the month before install was insanely bright).

Another reason to be cheerful in terms of future output, is that we have a big tree casting serious shade around 4PM. We knew about this, obviously, but didn’t realise the extent to which the late afternoon/early evening sun was going to be so bright here. Given that, we may well lop a few feet off the top (it’s BIG) and hopefully that should boost output a fair bit.

here is a chart showing the aggregated output over the time of day…

And a chart showing how massively it varies each day:

I’m sure I’ll be equally boring and geeky when we have lopped a bit of the tree and had a few days without it. Of course, then the sun will be lower overall…. Bah. comparing data is such a pain.

More work of the gratuitous parasites

I did a little bit of work this morning on the parasites, the GSB race I’m working on in my spare time (ha!).

I added two new weapons today. One is just a tweak, it’s  a plasma launcher that fires lots of small plasma torpedoes rather than big ones. The plasma torp is balanced as a weapon that isn’t colossally effective, but it is able to damage both shields and armor. It now has a rapid-firing version (parasites only).

I also added a ‘return-to-sender’ version of the guidance scrambler beam. This doesn’t scramble enemy missiles, but reverses them, so that they fly back and destroy the person who launched them. often there won’t be fuel for that, and I’m considering making it also reset their fuel. The beam is a one shot deal, you can’t reverse a reversed-missile.

All the ship hulls are done, it’s just balancing and code now. here is another screenshot of some cruisers:

I’m also working on gameplay and GUI for Gratutious Tank Battles. The GTB UI mockups look incredible, it’s just a looooong slow process of translating them into working code.