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

Hiring the best person for the job

I just agreed a contract with my first contractor to work on ‘The Space Game’. I basically trawled the internet for the best nebula photoshop tutorials, the best nebula textures for sale, and the best examples I could find of people drawing spacey nebula backdrops. I then found my preferred artist, and managed to contact them on a web message board and then later discuss budgets and artwork.

What I find interesting about the procedure is I had no idea who this artist was. As it turns out, said individual is male, in his twenties and from California. But the key thing is, I had no idea. He/she could be female, he/she could be black/hispanic/white. They could be disabled,  obese,  have any number of other characteristics, and I don’t know and likely never will.

which is exactly how it should be.

I’m employing this guy to do artwork for me, and all I care about is how good the artwork is, and how professionally they do the work. I don’t need to know anything else about them, and I think it’s in many ways a great thing for employers in general not to do so. The reason I think this, is because as more and more people get employed in this way, it’s really going to help reduce sexism, ageism, racism and all other forms of discrimination.

I once worked for a guy who said he wouldn’t have given me the job if he’s noticed during the interview I’d once had my ear pierced. he also proudly told me he’d never employ anyone black, or with a foreign sounding name. What a scumbag. As it goes, I’m average weight, male, white, and have a london accent, which means in the UK I’m probably the least discriminated person imaginable. I *did* get a lot of grief as a teenager and twentiesomething for having long hair though.

Anyway, I’m rambling now, but I just thought it worth noting that at the same time that the USA gets it’s first ever black president, there is a constant revolution going on amongst people doing ‘virtual’ work, where what color you are not only doesn’t matter, it’s’ not even information your employer will ever have unless you want them to.

That’s my thought for the day.

Inauguration discount

Uk indie developer Positech games are celebrating the inauguration of the first Black president of the USA with a special offer for one day only. A special celebration edition of the political strategy game ‘Democracy 2’ is on sale today for just $9.95 instead of the usual $24.95. This edition has the same gameplay as usual, but the political quotes in the game all come from Barack Obama, and his image is featured in the menu screens for the game.
A special web page has been set up just for today for people to download a demo of this version and buy it here:
http://www.positech.co.uk/democracy2…ter_obama.html

dugg:

http://digg.com/pc_games/Indie_Strategy_game_less_than_half_price_on_inauguration_day

The New Game

So what is this space game all about then?

Well it’s basically a big space battle simulator. A top-down, 2D space battle strategy game with no resource management, empire building, exploration or diplomacy.  The game is influenced by a number of things, in visual terms, I’m inspired by the stupidly big battles at the end of star trek:ds9 and the start of revenge of the sith. In game terms, it’s inspired slightly by galactic civ II, and partly by an old pen and paper RPG called traveller.

 

One of the books of traveller was called ‘trillion credit squadron‘, and it was based around the players being given a trillion credits to design and build a big space fleet (with certain restrcitions) to fight other players. That’s the basis of the gameplay for this currently un-named game. There will not be a big story, it’s basically a case of build a big fleet, send it into battle and enjoy the fun. I’ll be trying to make the battles look as good as 2D battles can look.

There is a lot more to the game than this, but that will come later. All my art is placeholder right now, so obviously there will be original spaceship designs. I haven’t found my spaceship artist or backdrop artists yet. In fact I haven’t started looking yet. Even now, it looks pretty cool in a big 1900×1200 window with maybe 40-50 ships a side. I hope to scale it up way way beyond that.

Damage Textures

I’ve spent all day working on damage textures, and they work, even if my amateurish texturing makes them suck a bit. I’ll get proper artists once I’m sure how the game will look and play.

Rather than doing anything cleverly procedural, I’m defining set damage sprites for each ship that layer on top of the ship once it’s been hit at that point (see below).

There is a combination with some of them of being a static texture, and having a particle emitter on them which makes it look better when the ship is moving (hopefully running away at this point).

There’s tons more code to write and tests to do before I become convinced that this works and looks ok. I’m not happy with it yet, but it looks better than the ship remaining spotless until it suddenly goes bang and dissapears. It’s also very expensive in CPU/GPU terms so the framerate nosedived a bit. It’s still way over 120 FPS in debug, so I’m not worried, plus I havne’t made any obvious speedups yet. Don’t forget I have a decent PC, so I’m aiming to ship a game running comfortably over 100FPS on mine, so that it handles 60FPS for lower end machines.

Making things explode (day two)

All I’ve worked on today is explosions, and not the sounds, just the graphics. The first part of the day was one of those moments that if 15 year old kids saw, they would think “Dang, I really need to do this for a living”. Basically I sat and drank tea whilst watching star wars : revenge of the sith space battles in slow motion. I’m sure a lot of people think all games development is like that.

In practice, it actually is real work, because I’m trying to achieve the impossible, which is to replicate ILM-rendered explosions that take hundreds of PC’s days, to run on a cheap laptop at 60fps. It’s clearly going to look crap by comparison, but I’m doing my best.

My initial thoughts with the game had been to use animated sprites. Basically, I had a particle engine that would throw together tons of particle effects, merge them, and save them out as a flipbook style group of images that get played back like a video clip. The plus side of this is that its really low CPU and GPU, because its just a few simple sprites. The downside is that it looks like crap. The problem is that a 64px by 64 px explosion (small!) that has 16 frames will be 256×256. to have 64 frames its 512×512. 64 frames is about 1 second, so that gives you a one second, always the same animation that is contained within 64 pixels.

If you need 4 varieties of that, thats a lot of texture for an indie downloadable game, and if you go to 128px explosions we reach 1024 square textures, and it all gets very inefficient.

The other solution is to optimise the crap out of your particle engine, and actually do the explosions in real time. That’s what I’m doing now, and it looks tons better, plus a bit of random fuzziness makes it different every time. And I can have bits of debris fly off over 128 pixels, which looks tons better. The problem is it involves drawing a lot of pixels, and a lot of verts, and doing tons of calculations for velocities, fading, shrinking etc. You need to avoid memory allocations, group together emmiters to minimize draw calls, blah blah. This is why it takes ages to get right. My current ‘big’ explosion has seperate emmiters layered to draw smoke, black smoke, big rubble, dust, flames, glowing bits, plumes of smoke and plume flares. They all combine in a single point to generate the final explosion.

Tomorow I’ll try and post a few screenshots, although it all looks much better when moving. I’m just waffling here so you appreciate it when you play the demo one day :D