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

Todays Bugs

I found a bug today, after it was reported by a few GSB modders. I had done some cunning optimisation for my file handling months ago, where my Ini File loader code kept a file open during it’s lifetime in case another section from the same file got read soon afterwards.

It turns out that the C Runtime barfs if you try to open more than 512 files, under all circumstances. This is fine until you mod an extra 300 modules into GSB, then it just dies. So… problem fixed. Ideally my ini file code should be able to handle this better entirely, but thats for another time,

The second ‘bug’ is still underway, (point defence modules appear to not respond to damage, but in the debugger, they clearly do…) but its pointed me to a third one, that was also reported…

When a point defence beam shoots a missile, it may not work. The missile may be unharmed. In this instance the missile is still ‘claimed’ by the PD module until it dies, so no other PD module will have a second go at it.

I could fix this trivially, it’s just an oversight*. But would that make PD too powerful? It’s already prety good, albeit some of it’s thunder has been stolen by the Swarms Smart Bomb. It’s only going to kick in where you have a few incoming missiles and multiple PD modules. But that second chance to fire could save you from that vital pesky megaton missile, or Order nuclear bomb…

Thoughts?

*easily explained though. The neutron power surge generated by the point defence beam temporarily blinds the targeting mechanism of other PD modules from homing in on the positronic flux decoupler on the same missiles.


Edit: actually the PD bug is now fixed, making them fire much slower as a result, so I’ll fix the multiple-attempts  bug to compensate. it also turns out that the fire-Interval for guidance scramblers is misleading and not applicable, which explains its strangely high effectiveness, so that will be nerfed slightly too…

Campaign Game

Just a quick screenshot showing the state of the current campaign game UI. This is zoomed in on a planet to show the fleets there, the UI for building new ships and the list of facilities there. It’s all very coder-art and work-in-progress. I’ll likely not do the icons myself.

It is getting there though…

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