Dev Blog

Dev-Blog 122: Those textures need some polygonizin’, son.

07/23/2014

devblog_header03

Welcome back followers of the fearsome!

You may remember a blog-post I did a long time ago about the texture polygons we created for Shellrazer. If not, here it is. The system we used at the time required hand-editing of each texture, and this quickly becomes WAY too much work. Especially at the rate Jesse is able to crank out art for Viking Squad!

Now, Viking Squad is not meant for mobile devices, but we’re still generating texture polygons. The difference is that we’re only using full opaque texture polygons for viking squad, and we have removed all alpha blended triangles from most triangles that get rendered. This is mostly as a preparation for proper shadows and lighting (which I haven’t implemented yet). Also, by enabling full screen anti-aliasing, the edges of our models are really nice and crisp, especially on a 1080p TV.

The whole process of generating the texture polygons is also fully automated now. The basic algorithm is fairly simple, I first trace the outline of the mesh by checking the alpha of each 2×2 pixel block. I add edges for each edge, and connect them all together. After this step, the mesh would basically look like this:

swordnosimplification

 

That’s a LOT of points! As a clarification, on the right is the image with blue circles representing the vertices, and a green triangles representing fully opaque triangles. On the left is the resulting mesh rendered. As you can see the edges get a bit blocky with this many points, something we’re trying to avoid.

The next step is to simplify the edge, while trying to retain the shape of the outline we just created. This is done by a basic edge-collapse algorithm that calculates the ‘cost’ of collapsing each edge by looking at how much it would alter the original outline. Each turn, every potential edge collapse is given a score based on how much it alters the original outline, and then the one with the lowest score is collapsed. Then another turn is started. This continues until the cost of a collapse is above a given threshold value. The end result looks something like this:

sword

As you can see here, the steppy-blocky edges are pretty much all gone, and they have been smoothed out into nice sharp looking edges.

The triangulation of the outline is the last step in the process. I use OpenTK in our editor (a C# OpenGL, OpenAL and OpenCL implementation), and luckily that has access to the GLUTess functions, which create a tessellation of a given outline. This works pretty well!

There’s another example, this time a tree:

tree

As you see, we’re generating quite a few triangles for each object, and in a whole scene this turns into quite a lot of triangles, but they are all nice and crisp and all ready for some awesome lighting (which again, I still need to implement). Check out this wireframe/solid slide able image to see how many triangles we’re putting on screen: (The second image might take a while to load, just give it some time. It’s mostly because I can’t even HTML)

slider

(Btw, the very cool slider thing we used in the ‘Click me’ image above is from here)

Alright, that’s it for this week. Until next time, and keep those triangles wireframing.

Nick_avatar64-Nick

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

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

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

 

Posted by: Under: Slick Entertainment,Tech,Vikingsquad Comments: 1

Dev Blog 121: A Jarl most Jevil!

07/16/2014

devblog_header08

Welcome back followers of the fearsome!

This week we’ll be diving a little into the story we are building for Viking Squad! We were interested in the idea of an evil viking Jarl that has our hero’s village in a dark grip of greed and gloom. The spooky Jarl sends the vikings out to raid and pillage over and over to quell his thirst for gold and spoils. The Jarl is corrupted by evil and the Vikings are powerless to stop his reign of cruelty. Hopefully you can band together and unlock clues during your voyage to free your village and end the Jarl’s grip on your home!

VS_silhouette23

Designing the Jarl is a lot of fun because we just wanted an evil creature to boss the players around. When you’re allowed to design big broad strokes within the framework of “obviously evil king” you can add a lot of fun things to him. I really wanted him to be slumped in his throne, like uncomfortable in his seat because he really shouldn’t be in that position so i took it literally by making him to big for the throne. I also enlarged his hands to make grabbing at treasure and other things even more exaggerated. The Green eyes are another symbol of greed and make him more soulless than our pupil sporting main characters.

With a nice big and gross beard you have a lot of mouth shapes that you can use to exaggerate his expressions like him yelling in the bottom image here. It’s a trick a lot of great shows use like the Ice King in Adventure time to name one. All in all he looks pretty spooky and with a bit of work he’ll fit right into our Viking Squad universe!

VS_silhouette25

———-

So that’s it for this week’s dev-blog! We hope you guys have liked our quick little look into the badguys of Viking Squad and be sure to come back next week when we’ll be talking about even more Viking Squad related stuff! Until next time, keep those Evil Jarls in check!

 

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

 

 

Posted by: Under: Art Work,Slick Entertainment,Vikingsquad Comments: 3

Dev Blog 120: Whats yours is mine!

07/09/2014

devblog_header08

Welcome back followers of the fearsome!

Vikings are made of two things, the strength to fight and the tenacity to take whats not theirs. The later is what I want to focus on in this blog post. A piece of recurring feedback we get is “I want to pick this up!”. Until now in Viking Squad you could smash enemies and items for treasure, however you couldn’t physically take anything with you.

During one of our initial play tests we had this random red gem that people were drawn to. Players would scrape tooth and nail pushing this thing back to their boat where upon arrival…it did nothing. We’ve taken this and turned it in to an actual mechanic where players can pick up large objects and return them to their boat for additional prizes!

Below you can see two vikings tossing a gem back and forth. With this new mechanic you can not only carry treasures, you can throw them at enemies or pass them to a teammate to get out of harms way!

GrabThrow

Once you finally get the treasure back to the boat you are rewarded for your effort. Some items like the gem break in to smaller items for cash. While others will actually stick with you on your journey altering further destinations.

HandIn

So there you have a taste of things to come! Happy looting!

Caley_avatar64

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

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

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

Posted by: Under: Slick Entertainment,Vikingsquad Comments: 0

Dev Blog 119: The Marauding Menace!

07/02/2014

devblog_header08

Welcome back followers of the fearsome!

This week we’ll be checking out some of the newer enemies we have planned for our Vikings to raid and demolish!

Even though we love our ugly little Draugrs they were never meant to be the only thing you’d be pummeling. Draugrs were initially the first enemies we drew fighting our Vikings in our game documents and were easy enough to design with their hodgepodge of rusty weapons and gross, green faces. If we needed to make a Draugr seem more powerful we simply added more heads to them and made them taller! Their weapons were always crude clubs and bits of rusted metals so we never had to worry about attack animations getting too graceful or complex. This was great because it really helped us work with the puppet technology and become better at animating and making art that works best.

Here’s a quick reference sheet if you’d ever want to draw your very own Draugr army! Be sure to add staples and nails to their ghoulish bodies to really add to that un-dead feel!

VS_silhouette20

The Draugrs were designed to be a flexible enemy visually so we could test the differences with scale and attack movements. We could easily make them big oafs or little gremlins quickly and without too much design work. This was great for our early development but we really wanted to start brawling with fellow humans.

————

Since the Draugrs are pretty simple mechanically, we wanted to get some enemies in the game that had combination attacks that could really damage players that weren’t careful. We decided on an enemy race we are currently calling “Marauders”. These super scary bandits wear black armor and use huge cutlasses and combination attacks to deal out the damage. Their look is an homage to the evil crew men under “Halfdan the Black” in the movie Erik the Viking. We are also playing around with the idea that they will be pillaging the map as well, taking the riches right out from under you if you don’t tangle with them fast enough!

These guys will be more advanced than our current Draugrs. Right now each Draugr has a melee attack and something else like a lunge or throwing weapon. The Maurauders perform relentless combo attacks. This means getting caught in an entire combo will decimate your health, it is also more difficult to find an opening to attack.

VS_silhouette21

————

So that’s it for this week! We hope you guys like our quick little look at some new enemies and ideas on our journey through the creation of Viking Squad! We’ll be pillaging out a new dev-blog next week so be sure to come back and until next time, keep your axes sharp and your helmets horned!

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

 

 

Posted by: Under: Art Work,Slick Entertainment,Vikingsquad Comments: 0

Dev Blog 118: Scripting and Level Design

06/25/2014

devblog_header03

Welcome followers of the fearsome!

Since Nick gave a brief overview of our editor last week, I thought I would go in to more detail on how we actually script events and fights in Viking Squad. Before I get in to our tools I just want to break down the basic components of level design.

There are three key factors that play in to any games level design. Space, Time and Score. Understanding how these concepts form your game is critical when it comes to designing a scripting tool with the most flexibility.

Space. In games that feature characters, they often move from point A to point B in world space. You need to be able to control events depending on where the character is between A and B.

Time. The average human reaction time is 0.215s and the average human perception time is at minimum 2.5s. So we need a way to space events out in times perceivable by players. Time is a very important ingredient as it plays a major role in pacing. Unexpected events happening in quick succession lead to confused players.

Score. This is how we gauge the progress of a players actions. In an FPS it’s the number of enemies you’ve shot. In a puzzle game, the number of matches made or obstacles cleared.

So in our tool, we have triggers and scripts that let us manipulate these three key principals. All this is authored right in the window.

Encounters_FlowEncounters_Flow2

Our scripts follow a branching sequence of logic. The following is an example of a combat script. The fight triggers when the camera reaches a coordinate, this locks the camera’s position, which then leads to the spawning of enemies. Once those enemies are dispatched more follow at different times. The camera lock is removed once all its children are complete.

On any given node we can right click and add new ones. Or drag and drop existing nodes to rearrange the sequence. Each node is a class written in C#.

Trigger. You can see the trigger line represented in the window below. Once this line is crossed the children are activated in sequence.

Encounters_Trigger

CameraLock. The bounds of the camera lock are displayed in the viewport and can be adjusted to span multiple screens. The trigger that activates it can also be seen.

Encounters_CameraLock

Wave. Each wave can have multiple points with recurring spawns. You can see the points represented as spheres below.

Encounters_Wave

The nice thing about this system is we can write and maintain each node once and then instance it throughout every encounter in the game. As we write new scripts those can be seamlessly incorporated in to existing encounters.

Well there you have it. A look at the scripting system we use to create our action in Viking Squad!

Caley_avatar64

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

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

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

Posted by: Under: Slick Entertainment Comments: Comments Off

Latest News

July 26 2012

VANCOUVER, British Columbia – July 26, 2012 – Independent development studio Slick Entertainment is proud to announce Shellrazer for iPad, iPod Touch, and iPhone, released on the App Store today for a temporary launch sale of $0.99 (regular $2.99). RIDE YOUR GIANT WAR TURTLE TO VICTORY OVER THE NASTY GOBLINS!! You are a Klang Clan […]

Dev Blog

July 23 2014

Welcome back followers of the fearsome! You may remember a blog-post I did a long time ago about the texture polygons we created for Shellrazer. If not, here it is. The system we used at the time required hand-editing of each texture, and this quickly becomes WAY too much work. Especially at the rate Jesse […]