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

Level-of-detail in particles and debris

It took me a while to get support for this in. I still need some decent tools to get my particle effects placement faster and easier.

Anyway…. there is now some basic LOD support for particle emitters and the debris particles. That means I can have buckets of both and only render what I need (although tragically you still need to update a lot of it for consistency sake). here’s a screenshot showing debris increasing as you zoom in. It doesn’t look like I’m zooming in the way I cropped the screens, but I am :D

It’s faked a bit with a sudden detonation, so the screen looks a bit sparse, but it looks very cool in the game :D. It’s nice that it fades into view rather than having any popup.

I’ve been adding in hulk textures for all the frigates today, doing texture-atlases for the fighter hulks, and re-rendering some of them to prevent black jaggies around them at low zoom, designing some more AI fleets and generally fixing and tweaking.

Working through the levels

Almost all of today has been spent going through each mission in the game and constructing AI fleets (in three levels of difficulty) for you to fight against. Obviously each fleet will need tweaking and re-visiting many times before release, but this week I’m at least hoping to get every fleet in and working so the game is playable throughout all it’s missions.

There are a finite number of ship hulls for each race, and it’s pretty clear that I can’t get away with just the 12 or so ship designs for each opponent. In other words, the AI ships will have different variants of each design, so you won’t be able to just see a silhouette of the enemy ship on the mission screen and go ‘ah yes, it’s the one with lots of pulse lasers’. Which is cool.

Screenshot for today:

Playing through the game, and occasionally using the speed controls, I’m happy that there is enough going on, and enough you need to keep an eye on, to ensure that the battles are worth watching for more than just visual appeal. It really does help to observe exactly why your fighter squadron got destroyed without inflicting a single point of damage. There is a stats screen post-battle, but it’s more helpful to watch it happen to see who did it :D.

My current plans are for a few more weeks of play testing, and bug fixing and tweaking, and then to start thinking about my beta plans. I’ll probably get a few fellow game devs and friends to try it out to catch anything really obvious, then I’ll consider how to handle pre-orders and beta testing. My gut instinct is to go with a closed beta that’s only open to people who pre-order, because I think you get some decent feedback then. Feedback from people who have put money down on a game is always more accurate than feedback from random surfers who probably wouldn’t buy it anyway :D

I haven’t really thought about prices and publishers yet, although several are interested. People who own big web portals, feel free to get in touch :D

Fighter Hulks and some aborted stuff

I spent most of Saturday wasting my time on code that I reverted. Long long hours were spent working on bloom effects and shadows for ships passing over each other.  Eventually both were rejected. The bloom code simply didn’t look that good, and the shadow stuff proved to be hideously involved and likely very slow. I know people might assume you can do it simply by just rendering the ships to a separate render target complete with shadows, then slotting in the background later, but you can’t, due to laser and particle effects lying ‘between’ ships and also needing to be blended with the map background at render time.

Anyway… who cares :D

What I *have* got working is hulks for fighters. Previously a destroyed fighter was just obliterated by a fairly low res particle effect. The effect still needs improving, but now destroyed fighters linger as debris. Crucially, the fighter hulk maintains its momentum for a while, so they look like their engines just got shot out, and they also drift faster than the big lumbering cruiser hulks. This all looks a bit nicer than before where they just vanished. I also went through and got 4 variants of hulk done for each fighter.

Now I’m rendering out a few more loading screens, and later I’ll work on some improvements to particle stuff. Monday onwards will be ai-fleet design and general game balancing.

Taking Direct Control

I’ve had a lot of people saying they love the hands-off battle idea, and a sizeable minority expressing concern that this will get old fast. In addition, when playing the game, I’m realising that no pre-battle orders are ever going to be fine enough to prevent you feeling occasionally frustrated at your AI captains, so I’ve decided to give-in and add some element of mid-battle control.

Now this would normally break the play-by-email style challenge system, but in challenge games (where you are playing against another player’s downloaded fleet) direct-control is simply disabled, and the battle reverts to view-only.

I’m not going overboard in terms of making an entire RTS out of the game, but currently you can single select or drag-select some ships, and then right click an enemy ship, or a position on the map and they attack/move as instructed. Green overlaid ships are selected, the red one is the current target. You can issue orders whilst the game is paused, for extra fine control.

Most of the battles have enough ships that you will not play it like an RTS, but just use the direct control stuff to fine tune your general battle plan. Sometimes ships come under more intense fire than expected, and you might want them to beat a hasty retreat to engage auto-repair modules. Sometimes you spot that a specific enemy ship is kicking interstellar ass and you may want to concentrate your fire there.

I’ve also been improving the AI. Weapons that fire >4 times in 7 seconds at a target and have no effect, will automatically select a different target for a few seconds. This prevents the dilemma where you have a set of ships just facing each other and blasting away ad-finitum achieving nothing. The chances of hitting a shop have also been skewed so that big ships are easier to hit, meaning fighters and frigates should last longer into the battle than they currently do.

Wireframe/ 3D render

The load times in GSB are very short. It’s one of my pet hates in big 3D games, and I never understand why they don’t put more effort into it. I remember spending days optimising the loading for ‘The Movies’ at Lionhead.

Anyway, regardless of that I’ve decided to stick in some fun 3D/wireframe renders to the loadscreens for the game. Like this sort of thing:

One of the best things about 2D games is you can say to the 3D artist “go mad, I don’t care how many polys you use.” And he used lots :D