Fill out your e-mail address and click submit to join the positech games newsletter!

Anti-Missile weapons

Filed under: gratuitous space battles,programming cliffski 7:39 pm May 29, 2009

Currently there are two anti-missile weapons in Gratuitous Space Battles. Point Defence Lasers and ECM beams. The point defence laser basically tracks incoming missiles and just zap them. They always hit (at the moment) and take one out. Of course, they can be overloaded,e specially by multiple-warhead missiles, but they are pretty cool. The other one (ECM beam) does exactly the same, but rather than destroy the missile it scrambles its guidance system and there is a cool wibbly wobbly effect as it veers everywhere. In the final game, the choice between them will probably be some sort of crew/power/cost/weight trade-off.

The thing they share though, is that they can ONLY target missiles that are aimed at their ship. You can’t have an ECM frigate at the spearhead of your fleet zapping all the incoming missiles to screen your capital ships from attack.

Clearly this sucks.

The solution isn’t trivial though. There are a LOT of ships in GSB and a LOT going on. if I’m to enable anti-missile weaponry to select from any missile on the map, that will involve a lot of processing. My mind is agog with quadtrees and other methods of limiting the amount of times each weapon has to do this:

for(each missile)
{
are_you_the_closest_one?
}

etc. It would normally be a trivial thing, but it’s something that isn’t in the game yet because it hasn’t really been necessary. The question is, do I write some big generic system that every piece of taregt selection will reference to find the nearest object? if so, that involves a fair bit of re-work, and it’s likely to be a several-cups-of-tea and a free morning sort of problem.

How the (sort-of) multiplayer will work

Filed under: game design,gratuitous space battles cliffski 4:16 pm May 27, 2009

Ok, I need some feedback on this, and I can’t shut up about it any longer. Here are my plans for multi player GSB, and they are going quite nicely in terms of being almost playable already…

GSB is a single player game with a number of scenarios each of which has a normal, hard and expert AI fleet to fight against. You will probably play each scenario several times, trying to reconfigure your fleet each time to beat the opposition. You will also gradually unlock new races, so there will be the urge to beat every scenario with every race eventually.

However, nothing beats going up against the brains of another player. The problems with a mutiplayer version are:

  • This isnt a real-time game, so you would sit there for ages waiting for the other guy to design his fleet.
  • Indie games dont have big sales, so finding people to play against is hard.

The solution is PBEM (play by email) but WITHOUT the email. Basically it works like this:

You load up a scenario as usual, having selected your race, and probably already with a big bank of pre-designed ships from battles against the AI. You probably have an uber-fleet that kicks ass against the expert AI already. You then click the ‘challenge’ button. This takes you to a screen where you type in the username of the other GSB player (someone you know, who has the full game), and a taunt to tell them how their pathetic space fleet will be ground to dust by your mighty lasers. You click send.

That uploads a tiny data file onto my server, where it’s stored in a database. The next time your friend launches the game, and clicks ‘refresh challenges’ he/she will see your challenge, with taunt in all its glory. He/she can then download that challenge file and play against your fleet in their own free time. Eventually, they should find a fleet that beats your fleet, and no doubt they will then challenge you back.

Obviously its possible to see how many of your challenges have been beaten, and to even track how many attempts it took. There are also tons of high score and metagame possibilities, as are the theoretical possibility of me posting ‘open’ challenges’ which get sent to everyone.

This is tons of work, especially for a net-coding n00b, but it’s in and working at the server side, I’m just tweaking client-side UI code to get it to work smoothly.

Thoughts?

Current Optimisation targets

Filed under: gratuitous space battles,programming cliffski 8:20 pm May 26, 2009

Stuff that is currently slow in really hectic games:

  • The ‘smart’ sprite texture for the shield impact sprite gets created and destroyed a lot at runtime
  • The sound engine spends a lot of time looking for free sound channels or cached sounds
  • Drawing of blast textures for bullet turrets is slow somehow. Lots of small 2-primitive draws I suppose.
  • Drawing Missiles and missile glares and trails
  • Drawing debris

I love optimising, and the frame rate isn’t too shabby even with all hell breaking loose, but it would be cool to get it much better in the hope of adding some really gratuitous extra effects later on for fast cards.

Space Hulk particle test video

Filed under: game design,gratuitous space battles,programming cliffski 2:36 pm May 25, 2009

Now that the hull editor for the game actually does something, I managed to put it to the test by adding some particle emitters to the drifting ‘hulk’ from one of the federation cruisers. This short youtube video shows the ship being destroyed, and then you can just about make out the flickering particles on the damaged hulk. It look much better not in crappy youtube resolution.

Right now they all flicker off at a fixed LOD, but I’ll sort that out so it’s less obvious, then I can add them to all of the ships. I’m aiming for a look where people can zoom in during a battle and be impressed with the amount of silly detail I went to in order to make it all look cool.

This is fun bank-holiday-weekedn stuff. Tomorrow it’s back to php and MySQL. bah!

Making actual tools

Filed under: gratuitous space battles,programming cliffski 8:08 pm May 24, 2009

I know that editors and level tools are part-and-parcel of most game development processes. Most games companies have at least one full-time tools programmer, who will work 8 hours a day for a year designing, coding and supporting the tools made to build the game. However, when you are a one-man-band, dedicating that amount of time to tools just isn’t viable.

There are several solutions. You can try and hit the happy medium where you spend enough time to get usable tools, but don’t let it eat too much into your schedule. You can produce really good quality tools that make game production a breeze, then realise you have not got close to finishing a game and you have to go get a day job again… Or you can just hack everything in manually using notepad and excel and worry about it later.

I’ve traditionally chosen the last option. I hate MFC, which is the ‘language’ that tools used to be built in, and I’ve never learned java or C#, which is what people often use now. That means that when I coded the few tools I use (like my particle-engine tool), I hand code them in C++ just like the games GUI. This takes ages.

Until now, I’ve been manually editing text files for the spaceship data. I have a master spreadsheet with lots of the data in, to make balancing easier, but there is a lot of manual staring at paintshop pro and memorizing pixel positions to type into notepad. Clearly this is mental.

So this weekend I made my very first steps towards a proper ‘spaceship-hull-editor’ for the game. This is still a makeshift hacked tool which won’t ship in the game, it’s just a quick tool to make it easier for me to tweak some of the graphics data, such as placing particle emitters for burning ship hulks. It’s a small step in the right direction I guess.

In non-tools news, I’ve been fixing a lot of very minor graphics glitches, the odd disappearing piece of debris or mis-aligned laser blast, or slightly crappy looking tractor beam graphic. The game is looking quite nice. Next week will be geared towards some online-integration, and some general gameplay code.

BBC interview

Filed under: business,gratuitous space battles cliffski 12:54 pm May 21, 2009

I had two people from the Spanish BBC website at my house this morning to interview me for a thing on digital piracy. It’s pretty cool to be interviewed at all, but it’s unfortunate that it’s about piracy. It all comes from the ‘talking with pirates’ blog event from last year. I don’t really want to be seen as ‘the piracy guy’. I’d much rather talk about game design, or other issues within the industry. They filmed an interview with me, and took some shaky cam footage of GSB. If it goes on-line I’ll post a link here. Maybe I’ll be dubbed in Spanish?

I saw the new star trek film 2 nights ago, and it was weird seeing tons of spaceship debris and escape pods. it’s like they have been playing my game :D Yet more inspiration to make the GSB visuals look good…

Cat Rescue

Filed under: Uncategorized cliffski 3:07 pm May 20, 2009

On Friday we noticed our youngest (3 years) cat had stopped eating and was subdued. Jack ALWAYS wants to eat, so this was very weird. He didn’t show any interest even in cat treats. Throughout Saturday and Sunday we got more and more worried because he had eaten almost nothing and didn’t seem to want to move. He also wanted to sit outside in the rain.

Monday morning he went straight to the vets. He had a high temperature and an eye infection, which they gave him injections and eye drops for. On Tuesday, he went back to the vets after nothing much had changed (eyes were better but he still wouldn’t eat). They admitted him to a proper Rolf-Harris style pet hospital. There was talk of x-rays and blood tests and more.

The vets couldn’t take a blood test,a s they encountered heavy resistance from jacks claws, so they put him out for an x ray and took it while his shields were down. The results were grim, because he had serious liver and kidney problems somehow. I still suspect he has eaten something out in the garden that was a mistake.

Anyway, they kept him in overnight and put him on a drip, and did some other technical things that I don’t understand, but which make for a long and expensive price list.

This morning he is all better, he is eating, and I just picked him up and bought him home. he meowed all the way home but jumped straight out of his box and landed right by his food bowl, so he is back to normal :D

It’s great to have Jack back. The only problem is the fact that his Vet bill is a collosal chunk of this months games revenue. We need a national health service for cats :D

Kudos to Kiva

Filed under: Uncategorized cliffski 9:41 am May 19, 2009

Positech Games is not Intel, I do not make megabucks. However, it does make a small profit, and once I’ve spent my allowance of profits on silly things like robot vacuum cleaners (stopped using it tbh), I have some pennies left over which I sometimes put into a site called Kiva.


Kiva - loans that change lives

If you haven’t heard of kiva, here is the one-line pitch. Kiva is a bank which provides loans to people in the third world. Basically you stick some cash in using paypal (minimum loan is $25) and then you browse the list of people you want to lend money to, and pick one. Over time, the money gets paid back, and you can take your money back then, or re-loan it. Kiva pay you zero interest.

I don’t mind the zero-interest, because that’s one way kiva makes some money to run the site (you can donate too). Also, given current bank interest rates, zero is almost competitive :D

I’ve stuck the odd $25 in kiva for ages now, and have lent money to 24 different entrepreneurs all over the world. Here are some examples:

  • Nguy?n Th? Nhân (Pig farmer in Vietnam)
  • Francisco Javier Lopez Ruiz (Fruit seller in Nicaragua)
  • Sok Kung (Farmer in Cambodia)…

I love kiva because its not just throwing charitable cash and hoping to solve a short-term problem, its investing in countries helping to build up their own economies and become self sufficient. I’m a bit of a politics junkie, and very aware of how first world mega-corps can screw third world producers, so I’m often lending money to farmers in the third world. I like the idea that I help out tiny one-man companies like mine, who otherwise would have to go to some big evil bank, and I like screwing those banks out of business too :D . Also, I’m aware how lucky I am to be born in a wealthy country like the UK. If I was born in Cambodia would I have a nice internet business? I doubt it. I like to see a chance being given to people who want to start a business and live somewhere that makes it difficult.

Kiva is a good site, the loans seem to ALWAYS get paid back (maybe poorer people are more honest than city bankers?). You can give gift certificates, and join groups who all lend money in the name of an organisation (I’m in the indie game developers group :D ).

So remember, Somewhere there is a vietnamese pig farmer who feeds her pigs thanks to your purchase of Kudos 2 :D

Fixing minor graphical things

Filed under: gratuitous space battles,programming cliffski 6:59 pm May 17, 2009

It’s the weekend, so rather than working on gamey stuff I’m making the battles look better :D . I’ve been improving the way the big ships explode so the drifting hulks fade in better, and the subsidiary explosions now blast in various directions. Turrets now smoothly track their targets, and there are various other small tweaks like highlight flares when bullet weapons fire.
My last niggly annoyance of the day is bullets, by which I mean laser pulses.
I draw all the bullets in one go, to make it extra fast, which is fine, but to do this I have to draw them AFTER I’ve drawn all the ships.
The thing is, the bullets are quite big, and when they ‘emerge’ from a gun turret, they obscure it for the first frame. Ideally, I’d draw the bullet above the ship but below the turret so it would emerge naturally.
I think I’ll code a real horrid hack, which is to mark bullets as ‘n00bs’ for the first few pixels of their existence, and draw the n00bs separate from the main bullets.
That way I keep generally drawing them fast, but I also don’t get any anomalies when you hit pause and catch that 1 in sixty-off chance of seeing the frame where it looks wrong…

This is why game code looks like spaghetti. All those hacks are there for a reason I tell you!

SimSocial and Kudos 2

Filed under: business,kudos cliffski 7:52 am May 16, 2009

I’ve already got emails on the day it went live asking about the similarity between Kudos 2 and the new SimSocial game by EA. So here it the explanation:
I worked with EA years ago doing some contract work, and recently they contacted me about working with me to do a version of the Sims that would be based on the gameplay of Kudos2. That game is SimSocial. If you look in the about box for the game, you will see the credit and link back here.

I’m happy about the deal I did with EA, and think that the games complement each other well. Obviously they have major differences and I’m sure there will be some Kudos 2 players who will play SimSocial, and maybe some SimSocial players will be tempted to come try Kudos 2. It’s great to see a game idea re-implemented in another way, and I hope it’s a great success.
I thought I better announce it here right away in case anyone thinks I was ripped off (I wasn’t) or that I copied the idea from them ( I didn’t).
Cheers :D

Next Page »