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

Gratuitous Space Battles 2 Lighting

Sooo… I’ve been experimenting with lighting of spaceships for GSB 2. If you played the original game you might be aware that although it often looked pretty l33t, it also had a tendency to look a little ‘flat’. The lighting was always the same (apart from the odd ‘global’ shader effect, and it could certainly have had more depth. This is one of the things I wanted to address when re-doing the game. The original game just had simple sprites for ship hulls, and the new version is tons more complex and lets me do lots of magic. Basically, I combine sprites for the ships with normal maps, and specular maps and lightmaps, and use a shedload of different shaders and render targets to do all kinds of compositing voodoo. So here I present some early screenshots showing me monkeying around with the options I now have. It’s a GSB 1 ship (as a test) and it looks like ti has another one stuck to the front of it. This is a test of something else (secret!) but it shows how one ship can now cast a shadow on another (Not correctly positioned yet, but easily fixed…)

So here is a screenshot showing the bloom effect everywhere: (click to enlarge)

1

Here is one with the bloom effect turned down but the 3D bumpiness up a bit:

2

Here I turned down the exterior lighting, and may have moved the lighting direction too:

3

Now I’ve gone full-on moody lighting and likely moved the light again:

4

Now I’m in real ‘dark-battle lit only by the light of our warp engines mood:

5

You really need to see it all big screen (and moving!) to see the full effect of it all. And you also need to compare it to the original flat looking default-shaded sprites in GSB 1 to imagine the final effect with all the battle raging around it. I’m quite pleased with it so far, although there are loads of things that need improving and tweaking, and no doubt needs more optimizing. It’s a start though!

 

Build Management Hell

This is part of indie life nobody warns you about. In your mind, you create a game, test it, upload it, then sit in front of windows showing the sales figures and the bug reports. That’s what happens right?

Not quite. The modern indie game, even one that is a pure-desktop (not mobile/tablet) experience can end up with a scary amount of build-management. If you are really organized and clever (clearly I’m not) you can manage it without too much stress. If you don’t plan ahead, you end up like me.

Democracy 3 has, primarily it’s ‘direct sales’ build on PC. This is the ‘master build’. It then has a separate build for steam, which is uploaded through valves tools. That’s 2 builds. Then there is a build for GoG without steams API in it. Then there is the build for the humble store. And also there is the secure copy uploaded for reviewers. That’s five builds. That’s no problem. Then each of those has a mac and a linux build. Ouch, that’s 15 builds now. This is a pain, but doable. Then it gets translated into French and German. Ok, that means 45 builds now. Yeah, 45 builds.

No big deal right? But don’t forget each one is about 40-50MB in size. That’s 2 gigabytes. No big deal? Try uploading that with 45k/s upload speed out here amongst the sheep. You can see why I don’t get to play any online games around ‘democracy 3 patch days’. Also, you can see just how infuriating it is when you find a bug that needs patching. 20 minutes debugging,  an hour fixing and checking, 12 hours uploading.

And because I’m so dumb, all of those builds are entirely separate, even though 95% of the files are shared across them all. Learn from my mistakes, get your build process sorted out beforehand!

OMG I am an entrepreneur

I’m only half-joking, but I’ve only recently realized this. I know that the french have no word for it, but it seems I do! The thing is, the whole ‘being an entrepreneur’ thing creeps up on you. I know that people often describe themselves as entrepreneurs, especially in silicon valley, but I have a stricter definition that most, along these lines:

To be a true entrepreneur you need to have actually started a company that has made a profit. you need to have more than one successful product, and you also need to have managed a product where the work is done by other people.

The reason I say that, is there are a lot of people who are really talented, and very successful, and that comes from their ability in that specific skill, not specifically skill at running a business per-se. In other words, you can be an awesome artist, and do well from it, despite being a pretty poor businessperson. That’s not a criticism, in any way, it just gets rolled into being an entrepreneur, which at least in my mind means something else.

The reason I say this, is redshirt. I didn’t design the game, do the art, write the code or any of that sort of thing. Mitu did. I was the publisher, so I made strategic decisions and invested money, in the hope that I’d get that money back and make a return on my investment. That’s how entrepreneurs work, and how they can invest in your coffee shop* without knowing the first thing about making coffee. They probably need to know good coffee from bad coffee, but more importantly they need to understand business/marketing/finance and the most important thing of all: picking the right people and the right business model.

The reason I’m suddenly happy that I’ve had a success at this, is that it’s one of those very intangible skills that I like to challenge myself with. It’s the same reason I trade on the stock market. Judging my my recent performance there, I’m not so good at that :D. Both stock-picking and entrepreneurship are things that NOBODY KNOWS how to do. Studies have shown monkeys picking peanuts can do as good a job as many pension fund managers. There is no mathematical formula for beating the stock market or investing in a business. None. Some people get lucky for a long time, but there is no absolute formula. It’s a combination of research, a lot of gut feeling and a lot of analysis.

In other words it’s a game!, and I unlocked an achievement. Woot. Wheres my little steam badge?

*I drank coffe 20 minutes ago, and this is the reason this pops into my head. That is exactly how advertising works, subconsciously but incredibly powerfully.

 

 

Learning to code (with george osborne!)

So there is this new government initiative in the UK where apparently every student in the country will be taught some programming in an effort to increase the technical knowledge of the future workforce. I see this as an extremely good thing. It surprises me that we have gone this long without introducing it as part of the school day anyway. Physics, Biology,Chemistry & programming? They seem like fairly equivalent importance to me, although I think we should add in ‘Engineering’ too. What slightly worries me is that the depth of the courses will not go far enough.

The general theme behind all this is that schools have been teaching people how to use Excel, rather than teaching them programming. This is clearly a bad thing, partly because most kids know how to use excel anyway, but the problem is, the grasp of what ‘programming’ really means seems incredibly weak amongst those who are discussing it. I keep seeing discussions where politicians and campaigners talk about how ‘you too’ can learn the ‘complexities of HTML’, and equate this to an understanding of how computers work.

Don’t get me wrong, I’m all for people understanding how HTML works, but we can surely go further than that right? Shouldn’t we be encouraging kids to go a bit further down the programming rabbit hole? At the very least php and java-script. ideally all the way to C# or even a real-mans language like C++*. I wouldn’t be shocked if everyone understood at least in principle what assembler was. (I know I could do with learning some more there). My point isn’t that we need a million C++ coders, but that understanding ‘a bit’ about how it works means it’s much easier to find the 1% of kids who really do want to study that sort of stuff, and in any case knowing a ‘bit’ about the next-most-complex layer of a technology is always beneficial. I’m not an assembly language programmer, but I’m not horrified to click on the breakdown in aqtime and look at my codes assembler breakdown either. Knowledge is good.

I know you have to start somewhere, and people think that stuff like C++ will scare people off, but hey, lets set some lofty ambitions shall we? At the very least lets not make the mistake of giving an entire generation of kids the idea that Windows 8 was programmed in HTML and that this is as low-level as it gets. There is more to coding than HTML and phone apps. A lot, lot more.

*I’m kidding**

**sort of :D