Xbox? No, not for now anyway.

Filed under: business, gratuitous space battles cliffski 2:40 pm February 7, 2010

Over the last few days I’ve been seriously considering making an effort to get Gratuitous Space Battles onto XBLA (Xbox Live Arcade). I have decided not to do so (I must send that email…) and here is my thinking:

  • According to wikipedia, the Xbox has sold 34 million units. I suspect that less than half are used by people who are happy to buy and play downloadable games. Most will be used purely for Madden and for Call Of Duty. So that’s 16 million, vs 25 million people with an account on steam. Lets round up the other digital dist sites and say there are 35 million people able and willing to buy PC games online?
  • Games on XBLA are cheap. people gnash their teeth about $15. As someone who sells a $22.95 game and a $19.95 game, this does not bode well.
  • On PC, I can sell direct, taking > 90% of the price. Through portals such as steam, it’s less, but still quite good. On XBLA There would be a Microsoft cut, then probably a publisher cut, and then I’d get the crumbs. All out of a smaller price.
  • The Xbox has a long list of requirements about how games should play. Obviously it must be played with a gamepad, which is awkward enough, but platform holders have a funny habit of insisting you use their latest feature, even if it makes zero sense in context of the game. I hate that.
  • On PC, there is no publisher involvement, and no approval process. I know 100% that at some point, someone somewhere at Microsoft would say that the game would be better if you could control the ships. They are wrong, and I’d have to waste precious hours of my life arguing the point. This would not be fun. I’ve heard numerous horror stories from fellow indies about this sort of thing.
  • There are up front costs, for ESRB, getting a dev kit and so on. I already have a dev kit for PC games development, it’s called a PC. This is a big chunk of cash I need to find on the off-chance that I’m ‘allowed’ to publish a game for less money, at a lower royalty, that I had to redesign to fit at a low resolution using a controller designed for beatemup games. hmmmm
  • Xbox gamers are not known for their love of slow paced heavy thinking text-based strategy games. GSB is not Halo, or COD. They may hate it.

So combine all that and I have no urgent need to get involved with the Xbox. Maybe this is a mistake and it would have sold 100,000 copies on there, but I suspect not. Maybe if you didn’t need the ESRB stuff, and the dev kits were the same price as an xbox, and they automatically approved any game that passed a basic ‘not offensive’ check, I’d be more tempted, but as things stand, PC beats XBox for me, and it beats every other console out there.

BTW I worked around the vertex buffer thing, patching both games to not use vertex buffers at all. This is slower, and infuriating, but it works. Grrrr.

Vertex Buffer Driver Hell

Filed under: programming cliffski 10:51 pm February 4, 2010

Some days as a programemr suck. Today is one such day.
All my old games use directx7, with my own engine,. Gratuitous Space Battles uses a new engine, directx9, and all is well.

In January this year, Kudos and Democracy stopped working for lots of people with the new nvidia drivers. They got crashes in the vertex buffer lock code. Obviously I hadn’t changed a thing. the games had worked fine on thousands of PC’s for years. Suddenly nvidia must have changed the way they handle vertex buffers under directx7. Thanks guys!

The old code was very old school and simple. I locked a vertex buffer, then copied in memory, then unlocked, and rendered from them. Big deal. I didn’t use any cleverness with the buffers gradually filling up and then discarding them. (I do that in GSB) I always locked the whole buffer and the lock flags always looked like this:

HRESULT hr = VertexBuffer->Lock(DDLOCK_WRITEONLY | DDLOCK_DISCARDCONTENTS | DDLOCK_SURFACEMEMORYPTR,
(VOID**)&BufferMem,&bufsize);

For every VB lock. I did a few of these each frame, mainly for rendering text. This may not be optimum, but it worked fine, all return codes checked ok on all cards and all drivers.

Suddenly, on my nvidia 8800 GTS, and for everyone else with new drivers (except the 9800 GT), this crashed, and would only work if changed to this:

HRESULT hr = VertexBuffer->Lock(DDLOCK_WAIT | DDLOCK_SURFACEMEMORYPTR,
(VOID**)&BufferMem,&bufsize);

In theory this is less efficient. But suddenly it works. Hurrah. Except not for 9088GT owners. I tried this:

HRESULT hr = VertexBuffer->Lock(DDLOCK_WAIT | DDLOCK_WRITEONLY | DDLOCK_SURFACEMEMORYPTR,
(VOID**)&BufferMem,&bufsize);

This also works on my 8800GTS, but even this does not work on the 9800GT. I can’t get a reply from nvidia, and the developer forums there hurl abuse and sarcasm at anyone who dares to ask about why a directx7 program won’t run (I’ve read a fair few threads there). Apparently we should all just STFU and re-code everything in DX10. Err right….
Anyway, I have nothing to say on this topic other than it depresses me. I don’t want to be fixing games I finished a few years ago, I want to work on new stuff…but obviously I need to support all my customers. I just wish someone at nvidia would tell me what they changed, and how to work around it for all their video cards. I emailed them a few days ago but got no reply…

If you work an nvidia, or know everything about directx7 VB usage with modern drivers, please shower me with your wisdom. And if you have an nvidia card, feel free to try the demo to Kudos 2 or Democracy 2. Both should now work, but I’d love to know if they don’t, what video card and driver you have…

bah :(

Best cruiser explosion ever

Filed under: gratuitous space battles cliffski 7:13 pm February 3, 2010

is at 2 minutes 32.

http://www.youtube.com/watch?v=_ZIPsXY7_fc

Thats what I’m aiming for. Obviously without ILM’s budget, but hey.

I’m tweaking  explosion effects right now. I’m waiting for one more expansion pack ship, then the turrets, and then I can start balancing them and doing the new missions. I’ll show some screenshots of the new stuff before I release it.

The format of this expansion/ DLC is very similar to the tribe. New race, with new weapons. Plus asteroid belts will look 3D in the new mission. yay.

Movie review? Enigma

Filed under: Uncategorized cliffski 11:15 pm February 2, 2010

Here is a film you may like if you are a bit geeky and haven’t seen it:

Enigma (2001)

http://www.imdb.com/title/tt0157583/

What is it?
A low key drama / love story about code breakers fighting to break the German enigma code during World War II

Who is in it?
Kate Winslet, Jeremy Northam, Tom Hollander, Matthew McFadyen, other people.

Quick Plot:
Tom Jericho is a code breaker based at Bletchley park, recalled to help break enigma again after the Germans mysteriously change the code mid-war. Interleaved with the code breakers attempts to break the code, is a love story between him and fellow Bletchley park worker Claire Rommelly, and a spy story based around a ‘mole’  feeding information to the Germans. There is little to zero action or spectacle. Only one bullet is fired as I recall. And the car chase may disappoint smokey and the bandit fans.

What’s Bad about it:
Some fairly cringeworthy romantic scenes and dialog. An annoyingly repetitive musical theme. A few fairly contrived and convenient plot devices. Some general purpose stereotyping of maths geeks.

What’s good about it:
It’s about the birth of computing AND fighting WW2. What’s not to like? Plus a great supporting cast, and a good script in places. Surprisingly historically accurate (glosses over alan turing though, presumably because they wanted a heterosexual love story). Also, it treats you like you are paying attention, and doesn’t break down the complexity of the core topic (encryption) to sub kindergarten levels like many Hollywood movies would.
The plot is complex enough to keep you guessing.

Best Scene:
Tom Jerichos explanation on how enigma works to the American General. This is the way all programmer should speak to their boss when asked that irritating question “How long will it take?”

Best Character:
Jeremy Northam was born to be the slimey, suspicious and sarcastic British Intelligence chief.

Best Quote:
“Given the circumstances, Miss Wallace, I think we might risk first names.”

Buy it or Rent it. It’s good :D

I’m working on both an expansion, and some UI improvements for Gratuitous Space Battles. I’ll blog on them when they are ready.

Deployment Interface Tweaks

Filed under: game design, gratuitous space battles cliffski 3:43 pm February 1, 2010

The deployment UI for GSB is not as good as it could be. I’m aware of this, and more acutely aware of it, because this is the main meat and potatoes of the game itself. The battles are great fun, and look cool, but a player who really gets into the game will spend considerable time on the deployment screen. I was thinking recently (and a post by a player on the forums reminded me of it) that I should display to the player the ranges he is fiddling with when assigning shooting orders. I’ve ended up fixing four problems here.

Firstly I changed the wording from ‘max range’ to ‘Move to attack at this range’, which makes more sense. Weapons will always fire at targets the minute they enter range, these instructions are for movement, not firing, and tell the ship to move to range X to attack fighters, or Y to attack frigates, depending on the current target. This was not clear. (It’s still imperfect, but better).

Secondly, I wanted to display the range on the screen as you changed it, and decided to re-use the white range circles to do so, which was fine, albeit requiring me to fix all kinds of other minor quibbles. It meant that I should allow the player to drag that window aside so they can see whats going on ( a good idea anyway), leading to a few tooltip bugs I had to fix. Once I was staring at that window, it became clear that a lot of the weapons module strips on there were redundant. If you have 5 cruiser lasers, you only need a single entry for them, to allow you to check and auto-set their maximum range, so now it says cruiser laser (x5) rather than spamming that window.

Minor changes, but lots of minor changes make for a batter, less frustrating and more fun game. Who knows, it may double sales! (unlikely :D )

The fallacy of features. New and not improved.

Filed under: programming cliffski 10:30 am January 30, 2010

I put up a new article, in more detail on how GSB was made and what was involved. You can read it here.

Recently, in between working on patch 1.31 and the mysterious second add-on for Gratuitous Space Battles, I’ve been looking at some technical issues people are suddenly having with Kudos 2, Democracy 2 and Some of my other games. Suddenly, without me patching or changing anything, people started complaining about vertex buffer crashes. At first, it seemed to be Windows 7, or Windows 64 related, at which point one naturally assumed that the geniuses at Microsoft have ballsed up yet another operating system, but then the odd vista or even XP user had similar issues. Then it suddenly clicks that new nvidia drivers were released, and everyone having crash problems had an nvidia card.

I use vertex buffers differently in GSB than I do in my other games. I was using them in a slightly unusual way before. A way that is perfectly legit, that directx says is fine, where the video card returns no error message and says its all fine, and working great. Everything is good in the world.

And then suddenly, a few weeks ago, with their new drivers, some brainiac at nvidia has obviously thought ’sod it, who cares. If they don’t use a VB in the way WE at nvidia like to use it, who cares it it breaks?’. And thus bug-ridden drivers are released. I have absolutely no doubt that the latest trilinear bump-depth-shadow-pixelling demos in directx11 look just superl33t at GDC with the amazing nvidia code. Just a pity that they couldn’t be assed to check if all the older applications still run isn’t it? Especially given that the entire modular COM design of directx is specifically designed to ensure 100% backwards compatibility.

Nvidia are still in a cold-war mentality arms race where they think all people want are features. It’s the same as Microsoft. “Give them new features!” “Shiny things!”. When Vista came out it was promoetd on the basis of the new flip-view. Have you ever used it? Me neither. Fuck features. I don’t want features. My mobile phone doesn’t even have a camera on it. My home phone doesn’t have an answering machine on it. Features do not get my money. Reliability and Performance gets my money.

If Windows 7 was advertised purely as “Vista, but more reliable, and quicker”, I’d buy it today. When I buy a video card I only care about how compatible it is. The performance difference these days between equal priced cards is so small they even need to blow up screenshots and use arrows pointing at pixels which show the difference. Who cares?

Worst of all, this obsession with tomorrows new feature rather than yesterdays compatibility is putting two pressures on pc game developers like me:

#1 take time away from making new PC games to actually go back and re-code old ones to work around nvidias latest ideas.

#2 Seriously think long term about doing browser games or console games, where this isn’t such a problem.

I’d hate to have to do either :(

Patch 1.31 done

Filed under: Uncategorized cliffski 11:18 pm January 27, 2010

I just released patch 1.31 for Gratuitous Space Battles, which has a number of minor tweaks as well as hopefully a fix for startup freezing on some machines.

I did the first 3 new ships for the next expansion today, in terms of getting them working in the game. They look pretty cool. I also have the backdrops done, and the two new weapons. Its stil a few weeks of getting all the new ships done, and the balancing of the new ship designs and weapons. Then I need two really good balanced new missions. I’m pretty sure one will be small, one big, and one has a nice nebula, the other is simpler but with asteroids.

I havent decided if one will be a survival mode yet.  Survival mode is fun, and has high scores, but skirmishes make for more challenge options. I might run some stats to see how popular each mode seems to be.

Lots of stuff on the way

Filed under: game design, gratuitous space battles cliffski 10:36 pm January 25, 2010

I’ve been even busier than usual lately, and lost of stuff is in the preverbial inbox. There are two fairly imminent things.

One is patch 1.31. This fixes and improves lots of things, and there is a big annoying bug with the game freezing on startup for some people (very few, thankfully) which it should fix. I need to spend tomorrow on this, as a matter of urgency.

The next is the upcoming expansion pack, which adds a new race. Right now, the plan is for it to add a bunch of things. Graphical asteroid belts (which look l33t), some great new backdrops, likely to be two new missions, and a new race that has limpet mines and radiation guns. wahey!

The problem is that the expansion pack needs some code changes, and I would rather they *all* were in patch 1.31. I don’t ideally want to do 1.31, then in 2 weeks do 1.32 before the expansion, I dont want people to be constantly bugged by patches.

Sadly, I suspect that will be the case, because I want the expansion to be really awesome and it will likely be at least another two weeks of work away anyway, probably more. In any sense, I’m slightly worried that people have seen less frequent updates and wonder if the game is still moving forwards. It definitely is, and it will keep getting better. I just need to focus on one thing at a time. Today it was limpet mines (videos coming soon), tommorow is patch 1.31, and hopefully getting some decent testing done on it, for a mid-end week release.

If you lowered the price you would make more money

Filed under: Uncategorized cliffski 1:52 pm January 24, 2010

It’s very common for people online to state (on the subject of games pricing) that
“If you dropped the price, you would sell way more and make tons more money”
It is not that simple. I’ve done a lot of tests, and found that the twenty – twenty four dollars price is right for my games. Lowering the price makes me less money.
But why oh why do the steam holiday sales work then? here is my best guess:

The sales == attention == increased visitors.

Getting tons of eyeballs on your game will mean more sales. This is just basic business. There were whole websites dedicated to promoting the steam sale, no wonder games in the sale sell tons more

Also, this is not the whole story. When you hear people say “I dropped the price of game X, and made twice the money”. That is NOT the whole story. For the whole story you need to know what happened to the sales a month after the price reverted to normal. You really need an A/B test in different universes looking at the lifetime sales of the game in both scenarios.
You basically can’t tell whether the 100 extra sales are the 100 people who would pay $5 for the game but never pay $20, or whether they are the people who hadn’t heard of the game and would have paid $20, or the people who keep meaning to one day get your game, and will eventually buy it for $20, but bought it in the sale to save money.
It’s the last last group I find interesting. I suspect the vast vast majority of Democracy 2 buyers are in that group. I sold 4 copies of that game this morning (it’s an oldish game now, so that’s good!), and it’s $19.95. People who have been waiting since I released it in December 2007 for me to offer it below $19 are still waiting, and I see no urgent reason to cut the price now. If you really like the idea of a complex and serious government-sim, Democracy 2 is your best choice. It’s a love it or hate it game, and not something people buy for $2 on a whim. The price reflects that, and likely always will.

Theres some interesting analysis by a fellow indie of his ‘pay what you want’ sale here. Notice that if he basically just told everyone paying under £1 to get stuffed, he would only have lost out £2.40. If just two percent of those cheap-buyers had raised their price to £1, he would be in profit. In other words, you can ignore the cheapest-paying 85% of your potential market, and hardly lose a penny.

In more fun-related news I’ve been getting decent nebula renders arranged for the next expansion, and working on improvements to the graphics in GSB. Better engine glow effects (you will hardly notice, but subtly, subconsciously you might), and optimising for maybe some better particle effects. Come monday morning I’ll be doing real work on new ship stuff.

gratuitous spelling

Filed under: gratuitous space battles cliffski 12:09 am January 22, 2010

gratious space battles 585 hits
gratuitious space battles 434 hits
gratuitus space battles 247 hits
gratitous space battles 222 hits
gratitious space battles 110 hits
gratituous space battles 98 hits
gratuituous space battles 62 hits
gratious space battle 57 hits
gratiutous space battles 55 hits
gratuitus space battle 54 hits
gratuitos space battles 36 hits
democrasy 3 hits

Next Page »