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

‘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.

The bar gets higher all the time

I recently bought a present for a relative, from a fairly obscure website. It was clear that the companies heart was not in the whole website thing, and I suspect it was designed a decade ago. Lets put it this way. It used frames…

It was pretty clear that the nature of what they sell made it a poor mix for modern internet geek. However, they realised they needed a website and this was it. There was an online catalog, of sorts, but many of the links were broken. Worst of all, they had no prices next to items, just price codes. You had to go to a seperate page to lookup the price of an item. Plus (and here it gets laughable) there was no shopping basket. If you wanted to buy stuff, you would have to write down the codes somewhere, and then manually enter them in a form on the order page. And there was no running total, or way to calculate the cost. You had to add up the cost yourself, and submit your credit card details in a (secure) form. Lucky dip as to whether the final cost was as you suspected. No mention of shipping costs or tax, thats a happy surprise on your bank statement too. Did I mention no confirmation email or notice of shipping?

The world has moved on. Websites like amazon exist. If you sell online, you are competing with amazon. I don’t care if you don’t have the budget, the customer likely doesn’t care either.

The same is true in games. I just added the campaign map ability to zoom in. I thought it was needed. But thats not enough. Obviously if you can zoom, you can scroll, but how? using the arrow keys? yup, what about WSAD? yup, how about moving the mouse to do edgescrolling? yup. how about click and drag panning? yup, how about varying  scroll-speed based on zoom level to maintain a smooth feel? Every new triple-A game will add new features and expectations, and they trickle down to everyone. I feel like my games look cheap without smooth multi-threaded animating loading screens. I wish my games showed up in the windows game explorer like the big ones do… there are extra things being added all the time that people expect. Look at the Civ IV map versus Civ I, or the new total wars versus the first one.

Ultimately, you have to keep up, even if that means scaling back your expectations. A small, contained, polished game is better than a big sprawling but amateurish mess. I make this mistake myself. GSB is likely too ambitious a game for positech and I know it. I can barely keep up. The level of polish and features for the initial release of the game was too low. It’s way better now (37 updates later), but there is still room for improvement.

Everyone knows the bar keeps getting higher. But the worse news is, it’s tough luck. You still need to at least be reaching for that bar.

Zoomable map

I decided that a combination of wanting the option to expand and do big things, plus the fact that it’s about time the non-battle parts of GSB stopped being scared of resolution-independence, meant that the GSB campaign map should be zoomable and scrollable.

This also means I can add more icons and data around a planet that you can zoom into. It therefore makes it easier to represent fleets as icons next to a planet, and makes it theoretically not a big deal to let the player have multiple fleets, at different worlds. That allows you to build up ships steadily at a shipyard in a safe system and send off ships to join the main fleet later on.

It effectively makes the campaign map a proper big Total War style campaign game. Which is a big step from just chaining a few missions together. But hey, who doesn’t like big campaign maps connecting battles together?

I haven’t got anything to really show off today, and it will be a few days before there is anythign visual done. By then I might have more l33t stuff to show you.  To answer someone’s question, the campaign will not be a free patch, it will be some sort of DLC. It’s still better value than a single flipping horse mesh which blizzard want $25 for.

Campaign Encounters, Patch 1.37

GSB got patch 1.37 recently. It did some weapon-balancing, plus some bug fixes and new features, like that new post-battle stats stuff I talked about a lot on here. It also increased the variety of ship debris, a side effect of preparations for an eventual new race.

In addition to finally getting that sent out, I’ve been doing campaign stuff. The map now looks like this:

Which is very similar, but those tiny icons are my placeholders to show facilities at each ‘encounter’ (basically each planet). The current types of facility are as follows:

  • Repair yards
  • Factories
  • Shipyards

The factories and shipyards come in 3 flavours. My current thinking is that the factories generate cash each day (real world day) if they are under your control. The repair yards let you fix your ships (rather than letting you do it regardless of where you are) and the shipyards let you build new ships, of a class dependent on the shipyard (Only the best yards can construct new cruisers).

I have all the code done to place these things, and load and save their data. The actual facility code to generate cash and the code that restricts or enables shipbuilding and repairs isn’t done yet. The plan is to have a game thats more in-depth than GSB was in its vanilla form, but nowhere near as detailed as a normal 4X game. There are plenty of 4X games already, I’m trying to do something different, by making the battles the focus, rather than the resource-gathering.

And yes, this expansion has mushroomed into serious feature creep. Typical…

Now I need to go pour some wine so I can enjoy the first ever political leadership debate in UK history. In 30 minutes time…

Gratuitous Campaign

In amongst everything else, work continues on the campaign mode for a future expansion / game / whatever for GSB.

Here is what the map currently looks like (very work-in-progress).

Originally I had planned to just string together a bunch of scenarios (new ones) and have them play out like a very simple singleplayer campaign. The big difference, and what made this worth playing, was that you kept the same fleet, so for the first time you had to design fleets that were all-rounders, rather than tailored to a specific enemy. This would make the game more strategic, and elss trial-and-error, and would be l33t. I still like this, and I’m keeping it.

However, for whatever reason I started thinking bigger than that and I am increasingly linking in the online challenges with the campaign. Now the map is entirely online-integrated. What this means is as follows:

You grab your fleet and move it to planet X. The game tells the server that you have moved to planet X, and it sifts through a list of all possible enemy fleets it has stored that will provide a decent challenge for your current fleet, and one is selected for you. That fleet, together with its orders and deployment gets downloaded and becomes your enemy at planet X. That fleet *might* have been designed by me, or it may have been a fleet extracted from an existing online challenge. In other words, you are playing against someones challenge fleet. (If you dont have expansion pack races, they won’t show up, you will get vanilla enemies.)

That fleet might out-gun you, or maybe you just aren’t equipped to fight against it for whatever reason. If so, you can retreat, and choose a different path. Here is where it gets fun:

if you decide to go back and fight that planet X challenge again, the server remembers, and YOU get the same enemy again. there is no going-around them if you want to go to planet X. Not for 24 hours. Then, then server ‘forgets’ who was there, and you may get a different fleet if you try again. Thats 24 hours in the real world. As in, come back tomorrow.

Everyones fleets will be different, and people will be at different skill levels, so the fleets are not persistent across everyone. Every player has a unique view on the world, its just that the fleets they encounter are player designed.  I’m trying to design this to be ‘massively singeplayer online’, in that you are playing a changing, dynamic, partly player-populated world, but without the direct competition or griefing that can ruin most MMOs.

All of this stuff is in and working. It’s the other 99% I still need to code :D. I have grand plans for the ‘point’ of the campaign game. I want a freeform universe for you to explore and conquer with your fleet, and need to add some capabilities to different worlds to encourage you to move your fleet around. Plus achievements and so on. There is a ton to do, I want it to be l33t. In the meantime, there will be another new race coming to the game.

Yoru thoughts on how this stuff will work, are most welcome.