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

Killing the golden goose

So when I first released Democracy 2 on steam, I thought to myself ‘it might sell a few copies, would be good to prove to valve that i was right all along and it is a game that matches the steam audience’. And then it sold well, and then better, and better still, and right now it is my #1 top selling game on steam. It is not overall the biggest earner per week, that’s still GSB, because GSB is split amongst the base game and it’s various expansion packs, but even so, when you realize D2 is much *older* than GSB, it’s quite an achievement. A quick check shows Democracy 2 earned $1,900 in the last week. That’s pretty awesome.

steam

And in a sense, it would make sense to  work on that game I keep putting off, or that other game I keep putting off, or the third one, and happily cash the royalty checks from valve for an old game like Democracy 2…

But goddamit I couldn’t do it could I? I just HAD to make a newer, better version. Why?

When I look at democracy 2, lots of things bug me about it. Stuff not done right, stuff not included, graphical roughness, simulation glitches, all kinds of stuff which screams out at the games creator but which most players don’t notice or forgive. I felt that there must be (surely!) lots of people out there who were playing Democracy 2 and thinking ‘he hasn’t really done the concept justice though has he?’.

Democracy3-Brand

So whether or not it was a sensible business decision or not, I took it upon myself to make the third version of Democracy. I’ve never done a ‘3’ before. And as I prepare to launch it into pre-orders and beta (mere days away!), I find myself slightly niggled, in a ferengi sense, that I am about to effectively kill off Democracy 2 by releasing a bigger, bolder, brighter, better version. It may not be the smartest business decision ever. I should probably have made Gratuitous Space Battles 2 instead, or made another new game, and THEN come back to the democracy series.

Sometimes you just have to let the creative part of your brain beat up the business part though :D

Redshirt plans, Democracy 3 etc…

So there is lots going on…

In case you missed it we opened up redshirt to pre-orders and beta. You can grab the game right now from here:

We have a few bug reports we are working through and trying to fix, so we will be planning on patching those the minute we track it down. It seems like 95% of people aren’t hitting any problems, which is a relief.

Regarding redshirt, a few people have asked about mac,Linux and iPad. All are planned, and the game is developed in unity. I’ve played it on my ipad in the past. It shouldn’t be *that* tricky to get the mac, linux and ipad versions done, but we didn’t want to ship anything that had not been  extensively tested, so right now the beta copies are PC-only. Obviously we are as keen to have the game out on those platforms as you are to play it, but give us a while to sort it out. Plus I need to finish up my mac developer account application. Typical of apple to get hacked the day I wanted to apply isn’t it?

For people who might be asking ‘where the hell is Democracy 3‘, the answer is ‘it will be here very soon’. My plan with D3 is to actually have Mac, PC and Linux builds together in it’s beta from day one, but that means a delay while the finished and now un-touched code gets ported for me by someone who actually understands OpenGL and linux :D. The minute those builds are done and uploaded, I’ll open up Democracy 3 to pre-order and beta just like redshirt.

You wait years for a game release date to come along, then they all show up at once eh?

Redshirt now open for pre-orders & beta copies!

redshirt_Logo_transparent_500width

Greetings , staff of space station megalodon 9! We have a great station news update for you this morning. Redshirt is now taking pre-orders direct from us, and people pre-ordering the game will get an immediate download of the current beta version. The usual disclaimers apply, beta builds of games are not 100% optimized, there may be bugs, more content  is likely to be added and balance tweaked etc. Right now, the beta copy is only for windows (mac and linux will follow for the final game and be bundled in for all purchasers) and although we are issuing steam keys to all direct pre-order customers, obviously those keys will not work until the game is released and hits steam.

So what is redshirt? Check out the trailer below:

For those who aren’t regular readers of this humble blog, you might not know that Redshirt is developed by The Tiniest Shark, a fellow UK indie developer. Positech Games (me!) is basically publishing the game.  If you liked our game ‘Kudos’, you are definitely going to enjoy Redshirt :D. This represents the first time we have ever published a game by another indie game developer.

If you are ready to go grab yourself a copy of the game (it’s $19.95) you can hit the big button below, or head over to the website at www.redshirtgame.com. While you are about it please TWEET and SHARE the relevant links with your friends and help us get the word out. And in a very ‘meta’ sense, you can even like the games very own facebook page.

One final Democracy 3 feature just got added

So my final Australian play through for democracy 3 had me feeling that a feature I had mused on, but quietly and subconsciously thought ‘that would be a nightmare to do’ was actually something it would be almost cruel not to put in, after I had the idea. You can just about spot the feature below:

icons

That row under the chart with the icons is the new feature. Now you may be thinking you’ve seen these before, and you kind-of have, on the polls screen, where everything that happened gets added to this ‘timeline’ under the polling graphs, but this is different for two reasons. Firstly, it’s for a simulation value or situation and ONLY shows up if your monitor resolution is big enough to squeeze it in. Secondly it is actually ‘filtered’ to only show events that directly impacted the item you are looking at.

So in the example shown, there were loads of icons left out because frankly they had no impact on GDP, and here you are looking at the GDP screen, so it makes sense to think that you want a more specific and limited view of what could have caused those graph changes. Now the problem is, as hardcore Democracy players will know, the simulation is not that simple. There are a multitude of indirect effects. For example, tourism affects GDP, and tourism is affected by crime rates and air taxes. So if you change air taxes, that will change tourism which will change GDP, but this is indirect and so you will not see any icons for that here. If you did, the whole filtering idea would break down, because indirectly, everything affects everything. I did worry a bit about this, but decided that actually it would still be helpful. A lot of the major impacts, that would show up on a graph ARE actually direct, and if you want to be reminded that you doubled corporation tax the day that GDP chart nosedived, now you will be.

That’s the last code for the beta though. Now it is in the hands of the mac and linux porting gods, in preparation for beta release.

Those who are excited about Democracy 3 could read this recent rock paper shotgun coverage or maybe this interview from rezzed.

 

 

Normal mapping question (it’s my day OFF)

EDIT: I’ve fixed it. It’s my own dumbassness. I was setting the sprite_angle variable in the shader AFTER the shader had started, and it was presumably never being set, and populated with garbage (or the ship beforehand) it works a charm now :D

Right so, despite being good at AI coding and optimisation, i suck at this clever stuff you people call ‘3D math’. I was in the pub that day of school. So I enlist you, the all-knowing internet to explain to me like a child what I am doing wrong. Here are 3 images:

normalmapstuff

The left is just the ship, the middle is a normal map thingy (thanks to charles!) and the right is what it looks like on screen given a single light source. The end result is exactly what I wanted, and there is much rejoicing… BUT. It’s screwed up, the position of the light source is wrong, and seemingly random, and sometimes jumps and cycles all over the place. I reckon I have everything sorted except the shader, which is an fx file as follows:

sampler2D g_samSrcColor : register( s0);
sampler2D g_samNormalMapColor: register( s1);
float sprite_angle : register(C0); 

float4 NormalMap( float2 texCoord : TEXCOORD0 ) : COLOR0
{  
    //get the value of the normal at this texturecoord
     float3 normalcolor = tex2D(g_samNormalMapColor, texCoord);

     //convert it to +/- 1.0 range
     normalcolor *= 2.0f;
     normalcolor -= 1.0f;

     float3 LightDirection;
     LightDirection.x = sin(sprite_angle);
     LightDirection.y = cos(sprite_angle);
     LightDirection.z = 0;

     float dot_prod = dot(LightDirection, normalcolor);

     //apply as a tint to the final pixel
       float4 original = tex2D(g_samSrcColor, texCoord); 
       float4 final = original;
       final.r *= dot_prod;
       final.b *= dot_prod;
       final.g *= dot_prod;

       return final;
}

As an idiot, I’m not really sure what I am doing here. What I *think* I’m doing is this: I am drawing a sprite which has a separate normal map (g_samNormalMapColor) I also pass in the current angle of the sprite. I sample the color of the normal map, and convert it into the required range. I then convert the sprites angle into a light direction vector (probably wrongly) and I then do some magic which kids call ‘dot’ which I’m guessing gives me the brightness of the pixel given the angle and the default light direction. I then multiply the original texture color by this brightness to tint my final rendered sprite. Yay.

it’s something clever to do with angles and vectors and stuff isn’t it? explain it to me like I’m an idiot :D

 

And yeah…I’m playing about with Gratuitous Space Battles. It’s a Sunday morning, don’t read too much into it :D