OUT NOW! 30% Off till March 2nd.




It’s done!

Trash TV is finally ready for release! Get it on Steam on the 23rd Feb



State of the game

Hey everyone, sorry I’ve been quite for so long. The game is still being produced and nearly ready for release, there have been some slight changes to the launch schedule and scope of the game at launch.

Single Player:

All single player levels have been produced and have gone through a ton of player feedback, I’m down to just two puzzle that need tweaking and testing. Overall it weighs in at 2 hours long of head scratching puzzles and nail biting chases.


Designing for co-op has tricky to say the least, while I’m now really good at playing two characters at once, overall I’ve only got half of the levels produced, tested and polished to a level I’m happy with. The new plan for co-op is to release it as a post launch free update.

Mac & Linux:

I’m not personally covering the port of the Mac & Linux version, instead a company that worked for the Humble Indie Bundle will be doing the port, they estimate around 2 months to complete it. The good news is I get to focus on getting co-op ready at the same time as the game gets ported.

Level Editor:

This is my lowest priority item and will be something I look at after I secure the co-op and ports.

Screenshot Saturday

I worked on the projection effect today. Previously the game told you which buttons to press for actions that context sensitive, like pick up and throw. Now I’m going back and replacing them with Machinarium style thought bubble/projections to show the player what’s possible in a way that matches the thematics of the game much better. This also means I have a easier way to communicate story to the player. All very exciting stuff.

Click for Animation.


Shader Overview #1

Hey Everyone! I thought I’d share some of the behind the scenes secrets for the visuals of the game.

So since I handle the code, art and design for Trash TV I want to squeeze every single bit of juice from my main discipline, coding, to my tertiary skill, art. Behind all the glitzy shaders it’s probably fairly average pixel art.

There’s currently 8 Shaders in the game.

ShiftWorld Shader

Ripple Refraction Shader,

Lighting Shader,

Noise Shader,

Line Art Shader,

Distortion Shader,

Static Field Shader

Ambient Occulsion Shader.

Today let’s look at the ShiftWorld shader.



In this part of the game the player can change the channel between two levels. So this shader is fairly special is that it’s more than just aesthetics, it needs to convey the location of items on another channel. Originally I tried rendering the channel 2 over channel 1 with quarter transparency. It worked ok but was very visually messy. What I needed was some way to pick up just the important details. With this in mind the first thing the shader does is an edge detection pass like an emboss filter.

float4 normal = tex2D(TextureSampler, texCoord); //grab texture minus the background layer

texCoord[0] += 0.001;
texCoord[1] += 0.001;
float4 normalOffset = tex2D(TextureSampler, texCoord); //grab texture offset slightly

returnin[0] = normal[0] – normalOffset[0] + normal[0] – normalOffset2[0]; //take the difference between the two images
returnin[1] = normal[1] – normalOffset[1] + normal[1] – normalOffset2[1];
returnin[2] = normal[2] – normalOffset[2] + normal[2] – normalOffset2[2];

If the difference is high enough we render the 2nd texture which is a colour noise texture created in Photoshop. (Note, I only check the R channel out of laziness, works fine though).



This gives us the colour noise across any edges of items in the game. The rest of effect is simply a slight skew effect linked to a sinwave to give it that unstable look and a bit of colour tweaking.

Screenshot Saturday – Adaptive Splitscreen

Been working on how to handle split screen. Think I’ve got a pretty nice solution. It tries it hardest to maintain one view with both players but if the two split left side tracks left most player, bottom tracks bottom most, etc. Switches between vertical and horizontal split when needed. Was a proper bitch to code, still got a lot of little tweaks to finish. AdaptiveSplitScreenCnmp

Co-op Teaser

A little video of me and my brother playing Trash TV uncooperatively in the co-op mode. (I’m Signal, he’s Static).

Screenshot Saturday

I’ve overlooked and understated the co-op in Trash TV so this week is a double GIF on the subject.

TrashTVCoop TrashTVCoop2

New website

This week I designed this site and populated it with the most popular updates that were originally only shared through twitter.

There’s now several places you can track the progress of Trash TV, here, facebook, twitter and TIGSource Devlog. You can also subscribe for email notifications for this blog on the right. I’ll try to keep the content consistent throughout all of them so you choose your favourite and not worry about missing out!

Screenshot Saturday

Click for animation.