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

Maxxing out the PC

When you are running a new PC game, what percentage of your PC is actually working to produce the experience?

Obviously it depends massively on the game, the specs of your PC, your monitor resolution and other factors, but even in extreme cases I suspect it is pitifully small.

The most obvious under utilisation is the CPU. Most games still run in 1 thread, maybe 2 or 3 if there is some sound streaming, possibly more if they are ambitiously attempting multithreaded streaming in of textured data, and maybe a few more for online play. I don’t think that there are many games that will happily place 8 different threads on the 8 cores of my machine (quad core, but hyperthreaded, so showing up as 8). I can max out the CPU by rendering in a 3d package, or by compiling in visual studio, but I’ve yet to see a game manage it. I can understand why, mutlithreaded code is a bitch.

(One problem is, we don’t have exclusive access to all those cores anyway. Right now, this laptop has 53 processes running 715 threads. There are 17,000 handles open (mostly files, one assumes). All I’m doing is typing in firefox)

The second missed opportunity is hard disk access. Go to windows task manager, performance, then check out the resource monitor. Check out all that disk access. Who is doing that? and what for? You can bet that even during a gaming session, a dozen other apps and ‘services’ will be spamming your disk drive.

Of course the same goes for memory, and access to peripherals, the network yada yada.

It makes you wonder just how jaw droppingly awesome a PC game could be if it didn’t have all that nonsense going on all the time. Imagine a special ‘gamer’ mode of windows 8/9 that effectively locked out all those other services, clawed back all the RAM and the cpu cycles, and let your game have console style complete control.

A pipe dream, of course, because of backwards compatibility and a million other reasons, but I do find myself wondering what percentage of my PC is actually needed to play Battlefield:Bad Company 2.  Is it 5%? 7%? certainly not much more?

Lots of different things

I haven’t blogged in 4 days, madness. It seems like a lot must be going on at once.

Item #1 is probably the new game, the mysteriously titled ‘GAME FOUR‘. There will, of course be more details to come in time, but currently it’s looking like I know the general theme and design, it’s just frustrating to look at crappy coder art, plus some bits stolen from GSB. The game is supposed to look jaw-droppingly awesome, and currently looks BAD. Still, I think the general principle is a good one.

Item #2 is insulation. It all started with a new light fitting for the bedroom. Electrician amusingly informed us that the bedroom ceiling is effectively made of thin air, and will not support it. No problem, we need to lift some floorboards in the attic. Damn. Floorboards are tongue and groove and tucked under the walls. Damn. Cue removal of wall panels, and excavation of several tons of straw presumably used as nest material by god knows what… arrrghhh. At least we get to put some insulation in there now. Still a work in progress…

Item #3 is ShowMeTheGames. I am working on a site redesign, plus the february ad campaign. I talked about it a bit in an interview here.

Item #4 is fighting spam on my forums. I think I’ve finally won by introducing brand new ‘hard to AI-bot-guess’ sign-up questions. Hopefully that reduces it a lot.

Item #5 is memory-footprint reduction for GSB. It sells well on the app store and I’d like to get it to run on the ipad. That means some serious memory pruning, and I’ve done some work on that. I shake my head at my wasteful, rubbish IniLoader class. that was 8MB wasted. I thing the hash table for my strings wasted a lot too, all fixed now. My main concern is that lots of per-frame STL allocation stuff might be fragmenting memory. Why isn’t it easy to just take a live snapshot-chart view of a programs memory usage, including all associated DLLs calls?

I’ve probably been doing a dozen other things too. Boring ones, like updating the copyright notices on my website. Oh Joy.

Using advanced segments in google analytics

If you run a website, especially if you use any marketing or advertising, it’s very handy to know where your actual positive, interested, enthusiastic visitors are coming from. People who bounce into your page and then go ‘meh’ and bounce out, are probably not worth concentrating on. One way to do this, is by looking at the bounce rate (people who visited just one page). Thankfully, google analytics lets you dig deeper. Here is how to see which sources are sending you traffic that view 3 or more different pages of your site before leaving.

Firstly, here is the standard view of ‘all traffic sources’ under analytics.

google analytics segments

I can see my top traffic referrers here, and see which ones have a high or low bounce rate. To get more complex data we need to hit that ‘advanced segments’ button at the top. Then we need to select ‘Create a new advanced segment’. That will take us to the segment editing interface. You can drag and drop items from the left to the right.  Under Dimensions, then visitors, you will find ‘page depth’. drag it over and set the condition as shown

google analytics segments

Now when you return to the traffic sources screen, you can select more than one segment (from that same ‘advanced segments’ box). You can view the high-page depth visitors alongside all visits, to get a breakdown on which sites are sending the more-interested traffic. GA happily shows you in green the percentage of all visits that my page-depth3 users are in. It also adds a new line to the graph. This is especially handy if you get a massive sudden spike, from some review or ad campaign, or mention on a web comic. You can see easily whether it’s a spike of ‘meh’ traffic or a spike of really valuable traffic.

google analytics segments

This won’t make you sell more games immediately, but it will give you more information, and that’s always good. Nothing beats hard data, and it could be that the ads you bought on that obscure manga site are actually paying off big time (or not at all). It only takes 5 minutes to set this stuff up. There is much much more you can do with segments, if you dig around. I hope this just encourages a few people to play with them. Unless you are a real analytics geek, you may not have even noticed that button at all.

Lets design the novel from scratch, for 2011.

I have chatted to various people who dabble in virtual novels / interactive fiction. I hear not much money is made, but this surprises me. I am assuming that nobody has really done it right yet.

Take all this with a pinch of salt, because I rarely read novels, I prefer businessy / pop-sciency or historical reading. But here goes.

Firstly, a 2011 virtual-novel needs to be extensively hyperlinked. If I’m reading about a character, and I forget who the hell they are, I should be able to hover over their name and be reminded. I tend to read novels in short bursts. I always forget who is who. Especially in novels like catch 22, with 400 characters in

Secondly, a 2011 virtual novel should never, ever have me confused, or out of the loop. I guess the old fashioned way books handled this was footnotes, and I can see how they might have seemed a bit jarring in terms of layout. However, this is the time of hyperlinking, so we have basically solved all that.  Say your story is set is Rome, would it hurt to have a map of rome in the book? maybe a huge, detailed one?

Thirdly, the 2011 virtual novel should be a two way process in terms of feedback. Books really lack this. Shouldn’t it be trivial to send feedback to the author? The best example I have here is Iain M Banks. He is a great ‘big concept’ sci-fi writer, who is also a bit sick and twisted. Frankly, I hate the sick and twisted bits, and sometimes even skip them. I don’t want to read sci fi novels to feel scared or horrified, just amazed and interested is fine. I’d love to find an automated way to convey this to him. For all I know, EVERYONE reading his novels feels the same way, but they keep buying them, so he doesn’t know.

Fourthly, the 2011 virtual novel should have some sort of optional community interaction. Once I’ve watched a movie, I often surf to wikipedia or imdb to see what people think of it, and how it was described. Sometimes there are whole subtexts to movies I miss out on, or vital bits of background to characters that escaped my attention. I’d love access to that sort of post-novel discussion within the novel itself.

All of my suggestions are likely rubbish, but one thing is true. The novel will change as a result of technology, we just don’t know exactly how yet. What are your guesses as to what will happen?

Faster internet. Errr… yay?

People who follow me on twitter will have got used to my ranting about my internet connection woes up until a few weeks ago. Basically I was getting random disconnects, and sometimes failure to re-synch the ADSL for several hours at a time. For an internet business, this is far from ideal.

Eventually, after not one but two BT engineer visits, the problem was resolved. To this day, nobody really knows what it was, but I strongly suspect there was some corroded, crappy wiring at the point where the wire from the telephone pole connects to the house. As this is outside the master socket, it’s BT’s problem, so they replaced something up there, and my connection has been perfect ever since.

Not only that, it’s been faster. And not a bit faster, almost twice as fast, from an average of 3MB to an average of 7MB. Wahey.

I have to say though, that it doesn’t really matter. I don’t buy and download many big games, I don’t download any movies, and cool though the iplayer is, TV has been crap lately, and watching it on a laptop sucks anyway. So for me, I conclude that any internet speed above 2MB is probably just academic.

In other news, I added a new interview to my little side-site showmethegames here:

And I am working away merrily on my next big game. I’m currently in the ‘trying hard to visualise the finished product’ phase. I’m a LONG way off showing anything, or even describing it.