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.

TrashTVAnimationPickUp

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.

TrashTVShiftWorld2

Purpose:

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).

noiseColourful

 

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.

lavaVertChase2

Screenshot Saturday

Still shuffling the rooms around, altering the pacing between thinky slow puzzly levels and “Shit heads up!” action levels.

allLevels3

Screenshot Saturday

Got a huge amount done this week, the time off gave me fresh eyes and a heap of new ideas!

allLevels2

Screenshot Saturday

Its my birthday in a few days (24)! I’m taking some time of Trash TV but I still had time to write a displacement shader.

Click for animation, check it out!

heatWave2