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

GDC thoughts from 2015

Ahhh…the indie life, so summed up by sitting here in the first class British Airways lounge at the airport eating unlimited free m&ms. (I don’t fly first class, but I looked very British, and there was no hot water for tea…so they bumped me up).

Another year, another GDC. Let me muse on what I have learned. Because of the way my mind works, lets put the lessons in list form…

1) GDC is big. Bigger than ever I suspect. There are a lot of developers out there. If ever you start to worry about all those releases of new games on steam, wait until you physically see all those developers in one city. There is a LOT of competition out there. A crazy amount. My personal theory is that at least 20% of the indie devs at the show are burning through savings and losing money. For ones doing mobile games, I’d guess 50%. There are too many games, not enough *paying* players, especially on mobile.

2) GDC and its ilk are still a bit of a stressful nightmare if you are shy and introverted or don’t know many other developers yet. By any objective standard I failed at networking. I met 2 journalists for interviews, that’s it. I didn’t hustle, I didn’t introduce myself to loads of people, I totally forgot peoples names, I didn’t tell anyone about my game. I did drink lots of wine and ate sushi, so that was good.

3) Giving talks is great, but you feel like jumping under a bus just before you speak. The good thing is people then know who you are and have something to say to you, which fixes 2) slightly.

4) Big companies have more money than they can count and are throwing it at attempts to hire new developers. This is strange, as to me it is the flipside of the struggling smaller devs. There seem to be huge companies earning crazy money, and lots of indies eating noodles, and maybe just a handful in-between the two. The phrase ‘get big or go home’ comes to mind, alongside ‘arggghhhhh’.

5) I am so behind on graphics tech. I went to some directx12 talks and Vulkan (GL) talks and didn’t understand half the terminology, let lone what was being revealed. I should probably jump from dx9 to 12, or to vulkan eventually. Still, I prefer being l33t at DX9 than a n00b at dx12. The talks really made me want to jump into optimizing and expanding on the GSB2 tech once it’s had its initial release.

6) There is a limit to how many m&ms a man can eat before feeling sick, and it really does sneak up on you.

GDC 2015: Day three. tiredness and happiness

So…I’ve given my two mini-talks, at the indie soapbox and the AAA to indie thing, plus a podcast thing. I only have one official meeting to go, and thats me done for GDC 2015. So here are some early thoughts and memories.

I was SO nervous before the soapbox. I was dreading it. I really wished I hadn’t agreed to it. It felt mega stressful, but it looks like it went really well. I did worry about it being badly misinterpreted and taken the wrong way, but it seems not to be the case, which is a relief. The fact that the talks ‘went well‘ means I feel justified in coming to GDC. I guess it is good for PR, and I can make a ‘business case’ to myself for being here.

One of the best things about GDC is meeting up with people you know online but hardly ever see. I won’t namecheck people, but there are a bunch of cool, nice, talented developers who I only ever see at GDC or similar events and its great to shake hands again, have a coffee or a meal or a drink and chat to people who do what I do.

My hearing in large groups of people is *so bad* combined with what I suspect is a very mild case of face-blindness, that I worry that I spend a lot of time apologizing to people I don’t recognize combined with a lot of intense tom-cruise style staring at people as they talk (mostly as I’m lip-reading). I suspect some people think I am much stranger/arrogant/forgetful/grumpy than I actually am, because they only know me from loud parties at industry events…

GDC is HUGE. There are literally *whole buildings* full of talks, events, people and booths that I didn’t even know existed until today, and they are packed to the rafters with *other game developers*, which just freaks me out. We are not a bunch of nerds typing and being ignored any more, there is clearly a LOT of money in games, And some companies are obviously growing like mad, Wargaming.net had a big booth which more or less screamed “PLEASE WORK FOR US” in an attempt to match headcount to ambition and revenue. Crazy times.

On the flipside, no way can the industry support so many indie devs with prices so low and sales so all-consuming. I’m curious to know what percentage of attendees are burning through savings with no break-even point on the horizon. Terrifying.

And holy crap I’m tired. If you are the worlds biggest ‘glitch mob’ fan (whoever that is), hate me now, because I have tickets to the glitch mob thing, but I’m on a hotel bed typing instead. Sorry!

GDC day one (well day one half)

Gah…

The first time I attended GDC I wrote an article about how it can be good *if* you are a sociable networking type, and it can probably suck if you aren’t, and if you are randomly one or the other (like me), then it can be a mixed bag.

That kinda hits home right now. I’ve been to two talks, and they were ok, and chatted to a few people at the show, but not many, and I am just not someone who is going to introduce themselves to strangers. To quote mr darcy…

“I certainly have not the talent which some people possess, of conversing easily with those I have never seen before.”

Of course that’s just one of many ways in which I am like Mr Darcy. But anyway… I’m really glad I’ve arranged to go along to some indie meal tonight, because I know at least *one* person there, and if I sit down and order food I”ll *have* to talk to people, which is probably what I should be doing, and with any luck I can tag along with someone who goes to the other party afterwards. Maybe I should drink some wine :D

I find it quite difficult to write about stuff like this, which is kind of why I do it. I’m sure there are hundreds of blog posts and tweets right now from happy outgoing game developers about how cool it is to hook up with so many like-minded individuals, and thats awesome, I just realize I’m the shy, slightly awkward british dude sat in his hotel room networking with nobody, typing and eating some pretty gross cheese snacks and wishing there was a bloody kettle.

 

multithreading sound engine bug…

I have a bug thats driving me nuts. I use some middleware as a sound engine. its the ONLY middleware I use, and its bugging me. theoretically its easy to use, but I have a situation that it seems incapable of coping with.

With this middleware, I can play a sound, and request a pointer to track it. I can use that pointer later to adjust volume, or stop the sound, or query if its finished. For various reasons, I need to keep my own list of what sounds are currently playing. Thus I have a list of ‘current playing sounds’.

The middleware gives me a callback which triggers when a sound ends. This is handy, as I can then loop through the current playing sounds and remove it, keeping that list up to date. The sound engine runs in its own thread, so that callback triggers in a different thread to the main game.

This is where it goes wrong (but only on fast speed). I decide from the main game, to stop a sound. I firstly check that the sound exists within the current playing sounds. It does, so I access the sound pointer and tell it to stop. But wait! in-between those two events, the sound has expired naturally (in another thread) and the pointer has become invalid. CRASH.

using critical sections just produces race conditions, because stopping the sound has to happen in the same thread as the callback, and there are likely several sounds generating callbacks in the same frame (on fast speed) as the one I’m trying to stop, and it reaches a deadlock. It’s a real pain.

One solution is to make all such sounds loop (and thus never expire naturally, and rely on me killing them, which should work ok) and I thus never hit this problem. Another is to just not stop them prematurely (looks weird). I have currently hacked it, but I suspect the 1.18 build still has this issue manifesting itself as a 4x speed lots of beam-lasers crash.

Another solution is to tell the sound engine to run single threaded but that seems horrendously hacky.

I may have to try the always-loop solution. One day I’ll write my own sound engine again.

 

Gratuitous Space Battles Beta 1.18 update

So hey, another week, another update to the GSB2 beta. Hurrah! When I look back at the change list there is actually a ton of cool stuff in this update. If I had the time, I’d make a video explaining it all…but I don’t so here it is in lovingly crafted text form!

The complete changelist is here

But the highlights are…

  • All Unlock costs are 50% higher, so you don’t ‘progress’ stupidly fast any more (hopefully!)
  • In some cases (the first race for now) ships come with a pre-defined ‘default’ visual appearance rather than just a blank hull, because some people were too keen to fight than design ships, and this way those ships still have decent visual appeal.
  • Steam workshop support, and a general implementation of mod browsing and creation and toggling is done now, although the workshop is likely inactive for everyone at the moment.

tease

  • Some cool new sound effects :D.
  • You can now type in exact values when adjusting stuff on the ship design screen. (A feature much requested)
  • A better end-battle dialog to explain how honor works. (The actual dialog has the right numbers in :D)

honor_better

  • Sub-deployments are in! (although a tad buggy). You can now save and load sub-deployments and use them in any mission, allowing you to have predefined formations of ships to use as the core of a fleet.

subdeployments

Obviously more patches will come, although things are likely to stall slightly for GDC and then Rezzed, but hopefully around that time I’ll get the translations done and maybe the mac/linux port, so even if the release date moves into April, it will be a decent release with lots of cool stuff. Trading card artwork is being done right now, along with extra module graphics. I’m reading all the player feedback and implementing tons of tiny fixes for stuff which people point out. In the meantime, it really helps if people up-vote any videos/articles they see about the game, all coverage is appreciated, and sharing this blog post/tweeting it is much appreciated too :D

If you are at GDC I am in two talks. And do come along and try out both GSB2 and Big Pharma at Rezzed in London if you can.