Dev Blog

Dev-Blog 209: Those Lost City Shenanigans!

02/24/2016

devblog_header08

Welcome back followers of the fearsome!

This week zone 4 is coming at you with its scorching deserts and ancient buildings! In Zone 4 the difficulty in Viking Squad spikes up as you and your crew are going to be fighting even craftier enemies with stronger attacks and more devious tricks!

We wanted our 4th zone to have a different feel to the other zones so we took our trusty vikings all the way to the desert! Initially we had a canyon set up but after a few rough runs through the level we felt it really needed a splash of life so brought in some fun palm trees and vegetation around an oasis. This really mixed up the area and after some tweaks with color grading and lighting we got a really interesting look to the level.

VS_silhouette154

We also wanted to get some “lived in” quality to our canyons so we started putting together some strange houses that slide right into the background and look pretty interesting. We looked at as lot of ancient cities with their clay bricks and creepy deep windows. This gave us a lot of visual interest whne the players where inside the area and allowed us to get cool pockets of light as well.

VS_silhouette153

Below is a small look at being inside the canyon, where it’s darker but that desert sun still screams into the play area where our Vikings will be fighting crazy bosses and collecting cool treasures!

VS_silhouette155

———-

And remember that we’ll be hitting up our Dev-Stream today at 4pm! It’s going to be another great time with tons of new faces and squad members! Be sure to drop in and say hello!

VS_DevstreamBanner

———-

So that’s it for this week! We’ve been working on the last zone in the game and cramming in content and today we’ll be testing our 3 player networked game today so cross your fingers! And until next time, keep those canyon cities mysterious!

Jesse_avatar64 -Jesse

Twitter: Nick: @nickwaanders Jesse: @jouste Caley: @caleycharchuk SlickEntertainment: @SlickEntInc

Google+: Nick: +NickWaanders Jesse: +JesseTurner Caley: +CaleyCharchuk

Facebook: https://www.facebook.com/SlickEntertainmentInc

Twitch: http://www.twitch.tv/slickentertainmentinc

Posted by: Under: Art Work,Slick Entertainment,Vikingsquad Comments: Comments Off on Dev-Blog 209: Those Lost City Shenanigans!

Dev-Blog 208: Cinematic effects!

02/17/2016

devblog_header03

Welcome back, followers of the fearsome!

I have been plugging away on the networking code, while at the same time doing the administration of the company (as an indie, you get to do it ALL! yay!). To have a bit of fun (and partly putting the ‘pro’ in procrastination), I implemented some cinematic effects for our game.

First of all, I improved the vignette shader to give it more tunable values. We used to have only the ‘radius’ to tune how much the vignette was affecting the sides. Now, there’s a radius, a softness and an opacity value.

This next slider box shows the effect of different parameter settings. The hard line is the radius of the vignette, and the opacity is how much darker the outside of the vignette gets. The softness determines how soft the gradient will be between no vignette and full vignette. Slide over the box to see the difference between a softness of 0.0 and 0.2. Click on the image to go to a full screen slider box.

 
The shader used is pretty straightforward (glsl shader):

uniform float VignetteRadius;
uniform float VignetteSoftness;
uniform float VignetteOpacity;

// inputColor is the color of the final image for the pixel
// texCoord is the coordinate of the pixel on screen, in the range [0,1]. 
vec4 CalculateVignette(vec4 inputColor, vec2 texCoord)
{
    vec2 dist = (texCoord - 0.5);
    float len = length(dist);
    float vignette = smoothstep(VignetteRadius, VignetteRadius-VignetteSoftness, len);

    vec4 result;
    result.xyz = mix(inputColor.xyz, inputColor.xyz * vignette, VignetteOpacity);
    result.w = inputColor.w;
    return result;
}

 
Of course these settings are a bit intense, so here’s the vignette effect in a more real in-game setting:

 
Next, I added a bit of film grain. Currently I’m calculating a random pixel value using a weird pseudo random generator I bashed together from some code I found online, which results in a super fine grained noise. I might actually change this to a 2d perlin based noise at some point so we can control the size of the film grains.

uniform float FilmGrainAmount;
uniform float FilmGrainSeed;

vec3 Random3D(vec2 uv)
{
    float noiseX = fract(sin(dot(uv, vec2(12.9898,78.233) + FilmGrainSeed)) * 43758.5453);
    float noiseY = fract(sin(dot(uv, vec2(12.9898,78.233) * 1.2345 + FilmGrainSeed)) * 43758.5453);
    float noiseZ = fract(sin(dot(uv, vec2(12.9898,78.233) * 2.1314 + FilmGrainSeed)) * 43758.5453);
    return vec3(noiseX, noiseY, noiseZ);
}

// inputColor is the color of the final image for the pixel the vignette is calculated for
// texCoord is the coordinate of the pixel on screen, in the range [0,1] for both x and y. 
vec4 CalculateFilmGrain(vec4 inputColor, vec2 texCoord)
{
	float luminance = dot(inputColor, vec4(0.299,0.587,0.114,0.0));
	float lum = luminance + smoothstep(0.2,0.0,luminance);
	vec4 noise = vec4(mix((Random3D(texCoord) - 0.5),vec3(0.0), pow(lum,4.0)), 0.0);
	return inputColor + (noise * FilmGrainAmount);
}

 
The Film Grain effect is hard to see in this small slider box, so click on it to go to full screen image!

 
Next up, Chromatic Aberration! This effect pulls apart the Red, Green and Blue layers of the screen to create the effect of an old tube TV. I added some settings to tune the amount of chromatic aberration depending on where the pixel is on screen, in much the same way as the vignette. There is a aberration value for the middle (innerAmount), the outer corners (outerAmount), and a curve power value to change how the amount of aberration interpolates between the middle and the corners. Here’s the code. Note that this requires a texturemap as the input. This would be the rendertarget you’re applying the post effects to.

uniform float ChromaticAberrationInnerAmount = 0.0;
uniform float ChromaticAberrationOuterAmount = 0.0;
uniform float ChromaticAberrationCurvePower = 1.0;

vec4 CalculateChromaticAberration(sampler2D textureSampler, vec2 texCoord)
{
    vec2 dist = (texCoord - 0.5);
    float len = length(dist);

    float power = pow(smoothstep(0.707, 0.0, len), ChromaticAberrationCurvePower);  // [0-1]
    float aberrationAmount = mix(ChromaticAberrationOuterAmount, ChromaticAberrationInnerAmount, power) * 0.001;

    vec4 r = tex2D(textureSampler, texCoord + vec2(aberrationAmount, 0.0));
    vec4 g = tex2D(textureSampler, texCoord + vec2(0.0, 0.0));
    vec4 b = tex2D(textureSampler, texCoord + vec2(-aberrationAmount, 0.0));

    return vec4(r.x, g.y, b.z, 1.0);
}

 
And the effect is shown below (with somewhat extreme values to show what the effect does). Again, it might be hard to notice in this small slider box, so make sure to click it so it opens up a full screen version!

 
Alright, now that all the components are there, we combine all of it using the following shader code:

vec4 rawColor = CalculateChromaticAberration(TextureMap, f_texCoord);
fragColor = CalculateFilmGrain(CalculateVignette(rawColor, f_texCoord), f_texCoord);

 
And the final result looks something like this: (Keep in mind, we’re still tuning these values, so it will look different in the final game!)

 
That’s it for this week, I hope you liked my little distraction from network coding. I think the post effects need a bit of work still, but they are starting too look pretty neat.

And of course, make sure to tune in later today at 4pm PST to see Jesse make a fool of himself in our weekly Twitch Dev-stream:

VS_DevstreamBanner

Thanks, and see you next week!

-Nick

Twitter: Nick: @nickwaanders Jesse: @jouste Caley: @caleycharchuk SlickEntertainment: @SlickEntInc

Facebook: https://www.facebook.com/SlickEntertainmentInc

Twitch: http://www.twitch.tv/slickentertainmentinc

Posted by: Under: Tech,Vikingsquad Comments: Comments Off on Dev-Blog 208: Cinematic effects!

Dev Blog 207: Draugr Tombs and another shout out!

02/10/2016

devblog_header08

Welcome back followers of the fearsome!

This week we have a quick look at some of the cool locales in our spooky zone 3! The Draugr infested graveyards and mausoleums!

VS_silhouette150

Above you can see which area we are talking about. Zone 3 has been a lot of fun creating and it has some of the most varied areas in the game so far! The beginning has some rolling hills with flowers and twisted trees and after the players tackle the first area they sneak into the mausoleums and battle some even stronger enemies. We grabbed a lot of inspiration from old graveyards for this area to really twist it up and make it spooky. After coming from the friendly and goofy Snowclaw tavern, this area really swings the other way but manages to stay wacky!

VS_silhouette151

After you manage to tackle the mausoleum and cathedral areas you’ll delve into the super nasty slime tunnels and undertombs! there you’ll run into all kinds of strange monsters and ultimately the boss of zone 3! We wanted to get a really crazy neon-pink for the slime to contrast the stone background. The idea is that the slime is super concentrated ectoplasm and it flows like a river underneath the whole zone. Below is a slimy creature that could attack our Vikings as they slosh their way through the tunnels!

blobby_attack.gif

——–

Also we’d like to give a quick shout out to those cool guys over at Campo Santo for their release of Firewatch! A very cool narrative experience you should definitely check out on Steam or your ps4! Big congrats guys! It really looks amazing!

VS_silhouette152

———-

And remember that we’ll be dev-streaming today at 4pm PST! We’ve been lucky enough to be on the front page of creative the last little while and it’s gotten a bunch of new voices in the chat and checking out Viking Squad! So hop on into the stream and catch up with the crew here at Slick!

VS_DevstreamBanner

So that’s it for this week! We are honing out our final zones for Viking Squad and we’ll be getting some super cool stuff in super soon! Thanks for stopping by and checking out what we are working on and until next time, keep watching those fires!

———-

Jesse_avatar64-Jesse

Twitter: Nick: @nickwaanders Jesse: @jouste Caley: @caleycharchuk SlickEntertainment: @SlickEntInc

Google+: Nick: +NickWaanders Jesse: +JesseTurner Caley: +CaleyCharchuk

Facebook: https://www.facebook.com/SlickEntertainmentInc

Twitch: http://www.twitch.tv/slickentertainmentinc

 

 

Posted by: Under: Slick Entertainment,Vikingsquad Comments: Comments Off on Dev Blog 207: Draugr Tombs and another shout out!

Dev Blog 206: Steam Stuff and a Necrodancer Shout Out!

02/03/2016

devblog_header08

Welcome back followers of the fearsome!

Part of developing the game is setting up the store fronts where people can actually get your game when it comes out. It’s a great place to show what your game is about, and allows people to wishlist it or mark it as ‘Want it!’, and they get updates when the game actually comes out. We have had our Playstation store page up for a little bit, and it probably needs some updating before we actually go live with our game.

We’ve been wanting to set up the Steam page for a while, and we finally got around to it this week. It takes a fair amount of time to do these things, and while doing this, you don’t work on the game itself, but it’s equally important!

Anyway, without further ado, here it is (click the image) :

VS_silhouette147

take a quick click on the image above and check it out for yourself!

Caley Has been working super hard on Boss behaviors and Nick’s getting that Networked Multiplayer set up while I’ve been getting more content into the game. It’s super exciting to have your project up there in the Steam store, and on the community pages. We are looking forward to getting Viking Squad shipped and available for everyone soon!

———-

And we’d also like to give a shout out to those super cool guys at Brace Yourself Games for getting Crypt of the Necrodancer out on Playstation 4 and the Vita! huge congrats guys! It was awesome watching the project from the beginning and sharing your experiences!

VS_silhouette148

———-

And as always we’ll be doing a Dev-Stream today at 4pm PST! Come on by and hang out with the whole team here at Slick while we get some Viking Squad stuff done up! We’ve been interacting with a whole bunch of new people and it’s been a great time.

VS_silhouette115

So that’s it for this week! Thanks for stopping by! And until next time, be sure to check out Crypt of the Necrodancer on your Sony devices!

Jesse_avatar64-Jesse

Twitter: Nick: @nickwaanders Jesse: @jouste Caley: @caleycharchuk SlickEntertainment: @SlickEntInc

Google+: Nick: +NickWaanders Jesse: +JesseTurner Caley: +CaleyCharchuk

Facebook: https://www.facebook.com/SlickEntertainmentInc

Twitch: http://www.twitch.tv/slickentertainmentinc

Posted by: Under: Slick Entertainment,Vikingsquad Comments: Comments Off on Dev Blog 206: Steam Stuff and a Necrodancer Shout Out!

Follow us!

titlebutton_twitter titlebutton_facebook titlebutton_youtube titlebutton_twitch titlebutton_spreadshirt

Join our mailing list!

/ /

Dev Blog

January 20 2017

I almost can’t believe it: Slick Entertainment is a decade old! In the last 10 years we’ve made a bunch of great games, and I am super proud of what we’ve achieved with our small team: 4 fun games, custom C++ engine on 6 different platforms, 3 games feature online multiplayer, all hand-drawn art for […]