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

Shield Support Balancing

GSB recently got a shield support beam. This was a groovy empire-frigate-only weapon which remotely boosted the shield power of friendly ships. It was criticised as being too powerful. Not surprisingly, people experimented with minimal cruiser fleets boosted by a huge swathe of support frigates using the beams for mutual reinforcement.

Surprisingly, this turns out to actually be super effective in comparison with filling those frigates with weapons and other useful stuff. I spent a while playing, and analyzing player challenges where it was claimed the SSB is just *too* good.

So I nerfed it badly to see what was needed to get the sweet spot for this new weapon. Serious nerfing of the transfer rate was tried. Then serious reductions in the amount that would be held in capacitors. Still, the SSB seemed awesome, in large numbers.

Then, eventually, I concluded that it was the mechanic, not the numbers that caused an imbalance. The SSB was being used regardless of the state of the target ship. It could be under intense plasma fire, and be ECM jammed, and still shake offf all attacks thanks to 6 or 8 SSBs boosting its shields. I wanted a single SSB to be worth having, but at any reasonable level, the combination of 8 then became a super-defence.

So my currejnt thinking (under testing now) is to nerf the SSB by reducing two key stats (beam rate to 20, recharge rate to 20), and also introducing three restrictions:

  1. The SSB can not be used to reinforce ships if the target ship is currently ECM jammed.
  2. Only a single SSB can be utilised on a target ship at any one point in time (although they could take turns).
  3. The SSB can only be targeted on cruisers.

I think this is the solution, but feedback is much sought. After all, I stupidly thought it as balanced already :D Ideas?

Campaign AI stuff

I am working on the various chunks of code that determine the strength of AI opponents in the GSB campaign game (currently being developed). The game takes existing challenge fleets, as well as other players campaign-fleets to use as the enemy, in massively-singleplayer style. However, it needs to select an appropriate fleet, in terms of strength, to fight against you, either as a defending fleet when you attack, or an attack on one of your systems.

The simplest method is just to assign a fleet size value to each planet, and let that be the strength there. Simple, but dumb, because nothing prevents the player sitting back and building up a larger fleet. A refinement would be to gradually ramp up a scalar for the enemy fleet sizes over the game, but that would mean it could spiral into insane difficulty, and doesn’t allow for different skill levels.

A system I’m working on is a ‘reactive-arms-race’ style approach. The nearby enemy worlds have their fixed starting values of fleet strength. When battle is joined, the Ai will start to build up larger fleets in nearby systems when it loses, and not bother if it wins. There will be some lag here, to represent building times.

The idea is that once you think you have a slight fleet-size advantage, you need to get all expansionist and start conquering, before the enemy realsies how mighty your fleets are, and builds it’s own countermeasures. If you just sit back and build up, the enemy will be doing the same. I may introduce an additional ‘anti-turtling’ scalar that starts ramping the enemy fleets up even faster if you have gone a long period without expanding your empire.

All this takes ages to code and test, and you never notice it’s effects on the surface. It is important to get this stuff right though (more important than adding more shiny or features) because it’s what drives long term playability.

Why GSB is not like a normal RTS (deliberately)

Have you seen korean starcraft players?

http://kotaku.com/5580080/korean-gamers-are-faster-than-a-speeding-bullet

fast huh?

Although it’s impressive, and kinda funny, it’s also a bit depressing and kinda sad. I like to see the RTS genre as a mostly ‘S’, and not so ‘RT’. If I was 14 years old, I’d think differently, but I’m not. One thing spending your teenage years learning neoclassical heavy metal does, is to teach you that someone with more free time than you is going to be faster than you. Always.

When I was at Elixir, I worked on a game that got canned, which was like speedball. it seemed to be a really strategic game. The player who won was the cleverest, the most strategic thinking. It played a bit like real-time chess. The reaction-time and number-crunching side of it was minimal, it was an ‘outwit-the-enemy’ style game. I liked it.

GSB doesn’t care how fast your reactions are. You can be 55 years old and have arthritis, you can still design a kick-ass fleet, and a cunning challenge.  I know starcraft is a massively popular game, and they know what they are doing, but you can only really design good games if they are games you personally enjoy playing. I can’t compete in FPS games or arcadeish super-fast RTS games, but I can compete happily in GSB. I also like the asynch nature of online challenges, because it eliminates the asshole attitdue of many online RTS players, who drop connections when losing or mock you during in-game chat,

I met the guys from introversion for lunch today. Had a good chat about games and indieness. It’s always refreshing to chat to people who understand what it is you do, and do something similar.

Shield Support Beam

Right, so here we have a brand new module I think I’ll just add to the game. I was thinking about shoe-horning it into the campaign, but that is a bit awkward to do. It’s the first module that affects a ship on your side that isn’t the owning ship. Its….. (drumroll)…

The Shield Support Beam!

Or ‘Remote shield energy projector’ or whatever I finally call it…

Basically it lets a frigate beam-over shield energy to reinforce a failing ship on a nearby friendly cruiser. It’s a frigate-only module, only working to reinforce cruisers, with a max range of 450. Crew use is  8, power use is 18 (high!).

screenshot (its the blue beam thing): I may well tart-up the graphics for it a bit more. Click to enlarge.

The beam looks for nearby friendly ships whose shields are below 80%, and then triggers this beam which empties it’s ‘capacitor’ into the target ship, over a short burst of time. That then reinforces the target shield, back up to it’s normal strength. This is basically a way to temporarily gvie a nearby ship a really fast shield recharge, and is a defence againts those fleets that hurl 100 plasma or 100 missiles at your cruisers and crush them instantly.

I’ve tested it lots, but obviously it remains to be seen how people use this. Obviously you could stick 3 frigates behind every cruiser, in formation and have super-reinforced shields, but that ties up 3 frigates that have to stick by their cruiser, and also chews up 3 sockets and a ton of power. It’s a weapon socket, so that matters. So far, I’ve found it handy to combat plasma spam, but not a totally killer-app.

I’ve also set it to be an empire-only module, initially locked (but cheap to unlock). I like the idea of making any future modules race-specific, to give the races more flavour.

Thoughts?

back to the campaign tomorrow…

Selecting suitable user-generated fleets

I’m hoping that the Gratuitous Space Battles campaign add-on will make use of existing player-designed fleets to give a vast population of potential enemies to fight. Although this system is coded, in-use and working, it needs a lot of tweaking. (I also suspect it might be advisable for me to have this as an option, with a stockpile of ‘cliffski-designed’ fleets available for use instead). My current basic criteria for selection from existing fleets are:

  • Produced relatively recently (no beta or massively old challenges)
  • Has a good enjoyment Rating
  • Has more than x ratings (to ensure its not just a few friends)
  • Is valid (no modded content). The client filters out expansion pack fleets for people without them automagically.

I think, from my early playtesting, that I need a bunch more criteria. I’d like to avoid spammy fleets, or fleets where any ‘tricks’ are used. I think I need to at least add this:

  • All ships have engines
  • If the fleet is larger than X ships, then there is more than 1 type of ship design present, or no design is more than 75% of the hit point worth.
  • The fleet has more than x different weapons modules if larger than Y

The pain with this sort of thing, is although it’s trivial to do this in C++, I have to code all that sort of thing in php as it runs on my server. Effectively, new challenges get processed as they get rated, and may get added to the ‘potential campaign fleets’ list. That means lower productivity, as I’m more a C++ than a php coder, but that’s progress for you.

I’ve got a good few days work done on the campaign stuff, and am dfinitely 100% back into it. It’s still a long way off (I have music for it, but no art yet, for example), but its should be good fun. As long as sales pick up a bit, I hope to continue with improving the campaign after its launch too. There is huge potential for it, if people like it.

Also, I added a retweet me button thing to the blog today, feel free to use it!