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

Todays Bugs

I found a bug today, after it was reported by a few GSB modders. I had done some cunning optimisation for my file handling months ago, where my Ini File loader code kept a file open during it’s lifetime in case another section from the same file got read soon afterwards.

It turns out that the C Runtime barfs if you try to open more than 512 files, under all circumstances. This is fine until you mod an extra 300 modules into GSB, then it just dies. So… problem fixed. Ideally my ini file code should be able to handle this better entirely, but thats for another time,

The second ‘bug’ is still underway, (point defence modules appear to not respond to damage, but in the debugger, they clearly do…) but its pointed me to a third one, that was also reported…

When a point defence beam shoots a missile, it may not work. The missile may be unharmed. In this instance the missile is still ‘claimed’ by the PD module until it dies, so no other PD module will have a second go at it.

I could fix this trivially, it’s just an oversight*. But would that make PD too powerful? It’s already prety good, albeit some of it’s thunder has been stolen by the Swarms Smart Bomb. It’s only going to kick in where you have a few incoming missiles and multiple PD modules. But that second chance to fire could save you from that vital pesky megaton missile, or Order nuclear bomb…

Thoughts?

*easily explained though. The neutron power surge generated by the point defence beam temporarily blinds the targeting mechanism of other PD modules from homing in on the positronic flux decoupler on the same missiles.


Edit: actually the PD bug is now fixed, making them fire much slower as a result, so I’ll fix the multiple-attemptsĀ  bug to compensate. it also turns out that the fire-Interval for guidance scramblers is misleading and not applicable, which explains its strangely high effectiveness, so that will be nerfed slightly too…

Campaign Game

Just a quick screenshot showing the state of the current campaign game UI. This is zoomed in on a planet to show the fleets there, the UI for building new ships and the list of facilities there. It’s all very coder-art and work-in-progress. I’ll likely not do the icons myself.

It is getting there though…

Banner competition Over!

Ok, so that competition is now over and I picked my fave. Obviously banner ads have to do various things, not just look the most awesome. The reason I picked this one, is it *does* look very nice AND it also gets across how the game works, which is very important. I suspect a good few people assume ‘gratuitous space battles’ is an arcade game, and this makes it clear that it isn’t.

The winner is Mark from the sunny (and prime-minister-less) UK (total fluke). I’ll be sticking the centurion model in the post to him tomorrow. Cheers Mark! I’ll be tweaking this banner a bit and then give it a go and see how it does :D

Thanks to everyone who entered the competition. There can only be one winner, because I could only afford one model! :D

‘Fluff’ ships

Something I got coded today on the campaign game is purely visual fluff. I have a map with different planets scattered over it, and they are linekd by wormholes that only connect certain pairs of planets, so you can’t just hop all over the place.

To make it clear that those wormhoels are, in fact, wormholes, I’ve added a bunch of ships flying back and forth along their length. The impression I’m after is similar to a few scenes from Revenge Of the Sith, where you see obvious ‘space higheways’ above coruscant with lines of ships heading back and forth. I loved that :D.

Obviously, for the purposes of the campaign game, they are implied to be personal ships or merchant ships. The space navies are your department, these ships are just background fluff.

It took me about an hour to two hours to get it right. Just drawing a bunch of sprites going between two points is easy, but they had to work within the zooming and panning interface, and also have to scale with processor speed for smooth movement. Then they need variations in speed, and have different source images (in a texture atlas). Also, they need to fade out at extreme low zooms, so you don’t waste time drawing stuff that’s tiny. lastly, they need to be batched together as an optimisation so that there aren’t a bunch of texture swaps. It’s all those fiddly bits that take the time. Plus I need probably another 30 mins to put together decent tiny ship sprites for use as final graphics. Should be easy and fun :D

In other news, Democracy 2 is still just TEN DOLLARS, because due to pretty unusual circumstances, the UK STILL has no government, and I proudly boasted it would be 50% off until a prime minister met the Queen.

bah.

BTW, the competition to win that spaceship runs out tonight. I’ll pick a winner tomorrow, so enter now, if you haven’t already done so.

50% off Democracy 2 + guide to UK politics

Democracy 2 is half price today. People who aren’t in the UK may not be sure why, but it’s the UK general election today and we are all pretty excited about it. Here is a very simple digest for anyone outside the UK.

Our current Prime Minister is Gordon Brown, leader of the left of center ‘Labour’ party. he was chancellor for years under that party (the current party has been in power 13 years) and then suceeded the last leader virtually unopposed. he was never won a general election as leader and was not elected to his current position. He recently got caught with his microphone on insultingĀ  a voter.

Generally speaking, we have a two party system pitching Labour (left) vs Conservative (right). The specifics of our first-past-the-post electoral system have kept it a two horse race for decades. This is the first election in my lifetime where a third party is a major contender.

The third party (Liberal Democrats) have suddenly rushed to high popularity due to two factors. Firstly, there was a major scandal about MP’s expenses which affected the two main parties worse than any other. Secondly, the relatively weak PM was forced into accepting live TV debates for the first time in UK history, and the leader of the libdems (nick clegg) got equal billing in those debates.

Because the way our elections work, the liberal democrats have always been under-represented in parliament, relative to their popularity, as have all the other smaller parties. For a long time, the Liberal party and later the merged lib-dems would insist on electoral reform being the ‘price’ of their support in any electoral coalition.

For the first time in aggggessssss it looks like no party will win an overall majority, so a coalition may be needed. The Labour and Conservative parties will likely *not* work together, making the libdem leader ‘kingmaker’. It’s likely he will extract electoral reform as the price of co-operation.

Finally, this happens against a backdrop of severe economic problems in the UK. If an election had not been looming, our credit rating may already have fallen, and pretty rapid action will be needed. Simply put, we spend more than we earn, and big tax rises or public spending cuts are needed. Regardless of makeup, the next government may be unpopular.

Nevertheless, this is all historic. We have no idea which party will form a government tomorrow, or even next week. And this may be the last time in our history that we have a screwed up electoral system. I’m 40 years old and my vote has never counted, as I’ve only ever lived in safe seats. It would be great to see that change.

Finally, if only the current government (and previous ones) had taken me up on my offer for free copies of Democracy 2 (50% off today!), they would have seen that a public spending deficit has to be fixed in the medium term to avoid long term disaster. Why oh why won’t our politicians learn the lessons of games?

For american readers, two facts that may make you grind your teeth:

1) We don’t use voting machines. Its all done on paper, the old fashioned (and harder to cheat or hack) way.

2) There are never any queues at UK polling stations. It takes under a minute to vote.