BrownBot Logo BrownBot Head

Dispell up on Manifesto Games

9:11 am Filed under: Dispell

Dispell on Manifesto Games   Head over to Manifesto Games this morning and on the front page you’ll notice a really fun looking “family friendly” shooting game.

Yep after a bit of buggerising around Dispell is finally up there and ready for sale, curiously it’s classified as a Platform Shooter not a SHMUP (shoot’em up) but I can get that changed.

Feels good to see it up there with so many other good games.

Props to the manifesto guys, they’ve made the process really easy and are doing a great service for indie games. Make sure you take a good look over the products they’ve got up there, I’m sure you’ll find something you like.

It’s been a huge project spanning many years, I’ve learnt a hell of a lot in the process, ticked off another life goal, now I’ve just got to make a really successful game!

Look out for the next one, due in 2010  :)

1a in XNA with Anti-aliasing and Shaders

9:39 am Filed under: BrownBot

Brownbot 1a’s back again, this time he’s rendered in XNA with a nice custom shader featuring:

  • Per pixel lighting
  • Separate Ambient, Diffuse and Specular values

Plus 2x anti aliasing, now it’s time to add a texture and move him into some interesting poses.

Here are some code snippets for the XNA guys out there.

To turn on full scene anti-aliasing in XNA (otherwise called multi sampling) you simply add the following.

graphics = new GraphicsDeviceManager(this);
graphics.PreferMultiSampling = true;

The following is my fx file for super simple per pixel rendering (note: the camera is the light source).

string description = "Basic Vertex Lighting with a Texture";

//------------------------------------
float4x4 worldViewProj : WorldViewProjection;
float4x4 world   : World;

texture diffuseTexture : Diffuse;

//------------------------------------
struct vertexInput {
    float4 Position				: POSITION;
    float3 Normal				: NORMAL;
    float4 TexCoord				: TEXCOORD0;
};

struct vertexOutput {
    float4 Position     : POSITION;
    float2 TexCoords    : TEXCOORD0;
    float3 Normal        : TEXCOORD1;
    float3 Position3D    : TEXCOORD2;
};

//------------------------------------
vertexOutput VS_TransformAndTexture(vertexInput IN)
{
    vertexOutput Output;
    Output.Position = mul(IN.Position , worldViewProj);
    Output.Normal = normalize(mul(IN.Normal, (float3x3)world));
	Output.Position3D = mul(IN.Position, world);
    Output.TexCoords = IN.TexCoord;
    return Output;
}

//------------------------------------
sampler TextureSampler = sampler_state
{
    texture = ;
    AddressU  = CLAMP;
    AddressV  = CLAMP;
    AddressW  = CLAMP;
    MIPFILTER = LINEAR;
    MINFILTER = LINEAR;
    MAGFILTER = LINEAR;
};

float4 Ambient = float4(0.12, 0.12, 0.10, 1.0);
float4 Diffuse = float4(0.80, 0.80, 0.80, 1.0);
float4 Specular = float4(0.25, 0.20, 0.20, 1.0);
float SpecularPower = 10;

float4 lightPos : LightPosition = {0.0f, 50.0f, 500.0f, 1.0f};

float4 color = float4( 0.36, 0.26, 0.10, 1.00 );

//-----------------------------------
float4 PS_Textured( vertexOutput IN): COLOR
{
    float3 LightDirection = normalize(lightPos - IN.Position3D);
    float NDotL = dot(IN.Normal, LightDirection);
    float4 TotalDiffuse = saturate(Diffuse * NDotL);
    float3 Reflection = normalize((2.0 * IN.Normal * NDotL) - LightDirection);
    float RDotV = max(0.0, dot(Reflection, LightDirection));
    float4 TotalSpecular = saturate(Specular * pow(RDotV, SpecularPower)); 

    return saturate(Ambient + (color * TotalDiffuse)+ TotalSpecular);
}

//-----------------------------------
technique textured
{
    pass p0
    {
		VertexShader = compile vs_1_1 VS_TransformAndTexture();
		PixelShader  = compile ps_2_0 PS_Textured();
    }
}

We’ve got a long weekend starting with Australia day tomorrow, looks like we’ve got a few social events lined up I should have some time to get some more interesting stuff up here.

BB1a in XNA

9:30 am Filed under: BrownBot

Here’s a pic of BB1a (BrownBot 1a) rendered in XNA, there’s a small issue with the winding order of the mirrored limbs on the left hand side but I should be able to flip those pretty easy.

Also a couple of the surfaces smoothing groups are not coming through but I’d guess that’s because they’re in more than one group, again I should be able to fix them up easily.

It’s nice to have such an easy process for getting content into your app.  Full credit to the XNA guys for getting it right.

Zett picked me up an XBox 360 wired controller last night while she was in Albury, they’re windows compatible and a big part of this “Games for windows” boloney that Microsoft have been going on about. 

I must admit though that the XNA library is top draw, took me 15 minutes to integrate it into Eraser, pity they don’t support any of their other joysticks, I’d love to get some force feedback control happening with my Sidewinder Joystick and Steering wheel.

I’ve still got to get the Eraser shooting in the correct direction with the right thumb stick and add some rumble when you get shot. All too easy.

SketchFighter 4000 Alpha

9:43 am Filed under: Game Code

 And I thought my Eraser graph paper concept was original… SketchFighter 4000 Alpha from Ambrosia software (big players in the Mac game scene) uses a similar styling, their game is much more along the lines of my grand plans for pen and paper concept, Eraser being more of a proof of concept, my idea is more like a fast paced scorched earth/worms side scrolling RTS, a little like a suped up version of my old parashooter game.

I think the styling has potential, there are a lot of things to explore with it and the art investment is kept to a minimum.

Eraser

9:05 am Filed under: BrownBot

It’s been a little quiet around here again, the following images are of the little game comp project that Euan and I are collaborating on that has been occupying all of my spare time, that and a 12 hour mountain bike race, fishing in San Reamo, getting ready for Trav and Jess’s wedding (mostly the impending bucks weekend) and our trip away in December.

If you think it looks like it’s hand drawn on graph paper rather than a computer game then I’m some way towards getting the look right, that’s right I’m using all the graphics processing power of a modern GPU with pixel shaders to render in realtime maths book doodles attacking an eraser which is in turn spewing out an array of red pen drawn death.

Why, I’m pretty sure it hasn’t been done before?

Here’s a link to the comp entry thread, I’m keeping it on the down low (I don’t actually say if they’re screen shots or concept sketches) to see if I can generate some intrigue, no doubt someone will find this blog entry and my cover will be blown, oh well it’s worth a shot.

Good News

9:24 am Filed under: Dispell

Received an email this morning from Manifesto Games saying they’re keen to distribute Dispell.

I’m pretty stoked about this, firstly I’ve been closely following the creation of Manifesto since seeing one of it’s founders, Greg Costikyan speak at the FreePlay event in Melbourne. He was mostly on about how there wasn’t as of yet a viable channel for “indie” games on the scale of the music or movie industry, then after talking about it he went out and created one!

The Manifesto of Manifesto strikes a cord with me and my opinion of the state of the game industry, it’s great that someone is having a go at making a change and if I can support them in that then even better.

Secondly they’ve only just gone live after a reasonable beta period and the site looks great (gamasutra article), they’ve got a great library of “different” games up there, real indie titles warts and all, I think Dispell will sit up there with them really well.

Where Dispell sits is something I’ve struggled with since I’ve started wrighting about it to promote it, it’s certainly not a “casual game”, a common response I get from non/very casual game players about my age is “there’s shit flying everywhere”, “where am I”. It doesn’t really hold it’s own as a hardcore shooter either, it works best as what it was written as.. a game to be played along with kids by older gamers.

I’m hoping that if I can get my wrighting skills up to a level so I can convey that in a simple statement, that I can service a niche in the market.

Still got a bit of work to do to finalise the deal (contracts and so forth) but it’s great news that has pulled me out of the slump I’d hit as I realised how big and hard the whole marketing thing is going to be!

Heading up bush with the boys this weekend for some more dirt squirting 4×4 action, really looking forward to a good unplug and multi beer re-boot.

Blog Update

11:33 pm Filed under: BrownBot

Sorry for the boring posts but as you might have noticed I’ve re-formatted the blog to fit in with the rest of the site, I also double checked and tweaked the Dispell download so it completely uninstalls.

I’m all but done now, just got to replace that photo on the product page and write up a bit of a manual, nothing to do then other than rake in the dough.

Andy’s take on the Dispell logo

12:22 pm Filed under: Dispell

Andy (aka Cricible from MadProps) came up with this charming little version of the dispell logo, I might save it for Dispell 2 – Taste the Golden Spray.

Dispell Product Page

10:53 pm Filed under: Dispell

Been plugging away at the products page for the past week or so, I think I’m almost there with the look, the payment processing is in place and I’ve got the files hosted on a cheap host. 

I’m planning on doing a little photo shoot this weekend the get some nice clean family at the computer shots to replace that placeholder. Then it’s one last check on the actual program then releaseing it on a few forum on the indie forums to see what they think, depending on how that goes I’ll work out how I’m going to tackle the major promotion.

The whole marketing thing is whole other skill to master, not a bad skill to have I supose.

Stay tuned for a post about the 12 hour bike race soon!

Edit: Also watch this space for some much needed changes to the blog’s look.

XNA Invaders 2

11:49 am Filed under: Game Code

I’ve been consumed with learning shaders the past couple of days, progress has been good, I’ve gone from thinking they were some black magic code that only the graphic programming l33t could ever understand too leveraging the power of them to create a simple shader of my own design.

It’s been pretty intense and poor ole Zetty didn’t get much attention the past couple of days but I’ve cracked the code, I wouldn’t say I fully understand the whole thing and I’m not quite up to the multi pass shaders but I’ve got the basic building blocks down, so I’m happy, seeing shaders are going to be a necessary part of graphics from here on in.

To prove that I can do it here’s at updated version of XNA Invaders complete with CGA raster looking shader that I made up, I’m going to comment the code soon to make it more readable for those interested, here’s the updated exe for now.

Thanks to Chub from the YakYak forum for putting me on to the Ati documentation and RenderMonkey, I’d started with the Nvidia and it was crap.

Off on a 4×4 weekend with the boys this arvo, will be a great break from the keyboard, a solid campaign of piss drinking should be able to slow the old brain box from it’s red line rate at the moment.

Next Page »

Powered by WordPress