Dev Blog

INTERIOR DECORATOR RN JESUS

 
 

3.23.2018  -  INTERIOR DECORATOR RN JESUS

Intro.png

Above is a single basic room in Gone Viral (our upcoming indie action roguelite). To add to the variety and challenge, much of the game is randomly generated out of tiles. Yay!

Random generation does, however, make it harder to make rooms look as sexy as ones with custom-made decorations placed by a human artist. Getting from a bare set of individual tiles to a fully procedurally decorated room takes more steps than you might imagine - so in case it helps others, let's walk through the steps we take to decorate our rooms.

Let's focus on just the floor of the room since it acts as the background to the gameplay. Know that we do other randomly generated decorating for things like the greenery and lights on the walls!

Basic.png

Here's a floor with no decoration and a basic textured tile. It has some subtle color variation and internal tile lines in an attempt to limit that repetitive feeling you can get with big tiled floors, but the lack of variation and highlights adds up to blandness at best.

Mass spawning identical copies with no variation? Boo! Let's break up the repetitiveness...

Random.png

First, even a small amount of variation helps. Let's mix in two more tile variations; a whole tile and a chipped tile. Now we will occasionally swap out the original art with one of the new looks (on a weighted basis since some tiles look distracting if they are too prevalent). Additionally, we'll rotate all tiles randomly to give them that little extra push towards feeling organically placed.

This breaks up that repetitive feel but has it gone too far? Now the floor has variance, but feels muddy and almost too random - not like it was a room built by people.

Bordered.png

Adding clean and consistent border tiles, especially ones that connect together like these grating tiles, does a good job of placing the randomness inside an intentional frame. We have a quick algorithm to auto-place these around walls and around barriers, which can be overridden by a designer if they would like to hand-place gratings.

Not only does this reduce the randomness of the room as a whole but it also borders it and constrains it to a specific area. Now it feels a bit more room-y!

Lit.png

Adding a spotlight to the center of the room pushes the constructed feel of things even more.

It draws the eye to the center while giving an even and predictable drop off as your eye moves to the edges of the room. This softens the randomness without actually reducing it directly.

We also add floor clutter at random, although heavily biased towards the edges of the room. This helps break apart the incredibly regular border tiles just a bit while adding another layer of light randomness over everything, including tile boundaries.

Done.png

Finally we're fully decorated - time to spawn in our gameplay objects like rocks, barrels, and crates! Generally these can either be hand-selected or spawned from "pools" of possible room contents.

When working on the tiles and backgrounds we're not using a lot of brightness or saturation, but as each room element type gets layered on top, we highlight things that are interactive or important to the player. Explosive barrels, destructible crates, and coin rewards stand out from less-interactive but still destructible rocks, which of course stand out from the background of the floor.

Now we can see and appreciate the floor doing what it was intended to do: Be a coherent background, while still directing attention to the important gameplay elements of the room.

Our game relies on random generation to continuously give the player new and interesting experiences each time they play and our visual goal is to have these spaces be visually interesting while not taking focus away from the action of the game. These methods of using and manipulating our art let us do that without sacrificing the visual style we want.

If you found this interesting, please follow or even wish list us on Steam! Thanks! It helps quite a lot.

A DASH OF SYNERGY

 
 

3.15.2018  -  A DASH OF SYNERGY

Firewalker in action

This week, we'll follow up on some of our recent progress in mutations, which are the heart of the combinatorial goodness we're working on.  Those of you who are watching our Dev Streams (Thursday nights at 5 pm PST on the Skullbot Games Twitch channel) saw the beginning of the creation of Firewalker - a mutation that gives fire immunity as well as the sexy power of leaving behind a fire trail whenever you Dash.

Dash is one of those fundamentals we like to mutate in addition to the wallops and projectiles we talked about last week.  For mutations, the goal isn't so much to add new keystrokes or button sequences on the gamepad to memorize, but rather to add new goodness onto your fundamental ways of interacting with the game.  Weapons however, add new attacks and attack combos, while Carnage Items change the behavior of your  "Do A Cool Thing When I've Gained Enough Carnage" button.

Your basic Dash covers a lot of utility.  It's your basic key for "I wanna cross that pit" as well as a good closer during combat and a way to escape from enemy attacks heading your way.  It also does a small knock back to move enemies, barrels, or other movable objects around without causing them damage.  It can sometimes be very useful to position an explosive barrel or nudge an enemy to line up the perfect shot!

So any of these functional uses of Dash are fair game for us to mutate!  Sometimes we'll make it more useful in one way and slightly less useful in another, sometimes it will be a straight up rocking upgrade, and some mutations might be good for audience amusement but less good for, ya know, your own survival.

Firewalker straight up rocks, of course.  Leaving a trail of flames and getting fire immunity are a sexy combo.  On the utility front, Cash Dash adds coins whenever you collide with an enemy - why not make some money while incinerating your foes?

Either work especially well combined with the probably-too-similarly-named Dash Crash, which actually turns those gentle enemy nudges from your basic Dash into full damaging wallops.  This adds some great utility when you are using weapons like the Missile Launcher which have weak or non-damaging wallops themselves, meaning other great wallop synergies like Spike Strike or Acid Strike can now be used with those weapons!

Mildly OP Shotgun Mutants checking that projectile optimization went well

Anyhoo, we just wanted to give a little insight into recent mutation work.  This week has also seen the unsexy-but-critical implementation of optimizing projectiles which means we can now spawn hundreds of them with low overhead.  Fear our mighty test shotgunner firing 100 bullets per wave!  Sadly, he's gone back to his wimpy 3-unless-otherwise-mutated-shot version after his moment of glory.

We'll show more next week!  Check out the Dev Stream Thursdays at 5 pm as well for live updates and feel free to ask questions or give feedback either here in comments or then in Twitch chat!

Edit:  Further update after a reddit thread developed on the subject on the cute little shotgun mutant spam test gif above: 

Even more OP Shotgun Mutants shootin' death spirals

To push bullets to where it started breaking, I set seven of them to each shoot 101 bullets per burst, with each bullet .01s apart from the previous one, is where it knocked our FPS down to <30*.  That's actually not bad for being largely unoptimized IMO (though we tend to do optimization passes at least gently every few months). Go, Unreal Engine!

The next culprit looks like ProjectileMovementComponent ticking in the engine code, so we'll probs need to write a custom one of those at some point.  Since we're not really a bullet hell game (well we'll probably do a boss or two that way to mix it up) per se we might never need to do more TBH, but projectiles are usually one of the things you tend to optimize the heck out of over a project since there are lots of the little buggers.

*Caveats:  running in the editor, and while running OBS, and with non-nativized Blueprints, on a beefy but 3 year old machine.  The pedantic programmer in me can't resist giving context for pros and cons...

FIFTY SHADES OF SLAY

 
 

3.9.2018  -  FIFTY SHADES OF SLAY

Gone Viral is a heavily combinatorial game.  Your character and your run go through changes that effect gameplay, both large and small, and the combination of those changes can add up to madness as they all interact together.  Every run should be different!

This is a staple of some really good roguelites.  If you're 1,000,001% of the way to having butt-burns from sitting on a radioactive throne with Dragun scars, you know why that's cool.  We're speaking the same language (we love that stuff too) and want to add to the conversation.

Killer Combos

The Rules...

Gone Viral has fundamental rules for how things work.  Every new life and new arena run starts off with similar basic (but interesting!) ways of interacting with the enemies and the environment, thus kicking enemy butt.

Putting the "Fun" in Fundamentals - Wallops and Projectiles

Wallops - Positioning enemies through melee is a fundamental concept for us.  Smacking a guy with a sword does some damage, but that damage doubles if he slams into a wall across the room.

Basic Wallop and Harpoon

Even better, hit a baddy into their buddy and both take damage or knock him back into a pack to cause mass havoc.  And most stuff is more damaging than a wall!  Traps often kill outright or otherwise mess with an enemy's day.

Projectiles - Most weapons allow you to shoot projectiles and you start off firing Harpoons.  Harpoons can damage enemies outright (especially immobile ones) but they also pull the enemies back towards you, opening up more options.  You can pull arena denizens into pits, grab the leader of a pack so you can wallop him back into his friends, pull a barrel into an advantageous position, and much more.

Further Fundamentals 

There are additional basic interactions with the world including your Dash (to move quickly to get into and out of trouble), Powered Attacks, and collecting Carnage.  Physics will knock objects around whether you use your sword, dash, or just push stuff with your body.  There are lots of ways to interact with things, and we try to build on all these.

But let's keep it simple for the moment.  With just the two fundamentals of Wallops and harpoon Projectiles, skillful players can pull off a lot of crazy combos to wow the psychotic audience.  These basic rules combine, opening up the possibility of bonking enemies into death traps, bouncing explosive barrels spinning into hordes, and provoking mass wallop collisions (for mass Carnage!) - all sorts of stuff.   After all, you want the basic rules of how the game works to be easy to pick up, but take a lot of skill to master.

But those rules are just the starting point, and that's where Mutations come in.

...Are Made To Be Broken.

Once you've learned the basic rules, it's curveball time!  Everything in the game is intended to bend, spindle, fold, or mutilate our fundamental rules.

Enemies - Mutating Over the Long Run

Each enemy works with or against those rules.  Bomb Spiders light their fuse when walloped and explode when it burns completely.  Spike spiders are prickly - hard to melee (or safely harpoon) without getting hit, but those spikes cause extra damage when you smack them into their buddies.  Some creatures throw projectiles you can wallop, like saw blades, giving you extra defensive and offensive options.  So at the base level, each enemy should have an interesting interaction with the combat - some making life relatively a little easier for you, some harder.

Every run builds up combinations of changes to the enemies on top of this as you progress.  Each new level of the arena applies some new stats or rules for not just the enemies on that level - but also those on all future levels.  One run might have a final level with creeplingly slow enemies that can one-shot you while the next ends with super fast enemies and bosses that spam lots of little love-taps.

Change Starts With You

Changes to you matter the most, though.  Gain fans and the audience rapidly starts sending you stuff - weapons, for instance.  Weapons allow new attack patterns, projectiles, or wallop mechanisms - changing quite a bit!  But weapons are rare and you can only wield one at a time, so even more important from a combinatorial standpoint are strands of the Mutation Virus

Every Mutation you get affects your gameplay directly, and they all stack up.  Some of this is mucking with your stats and just changing stats up and down can give a surprising amount of variance.  A run where you can knock enemies across the room but can only attack slowly plays quite differently than a run where you fly like a butterfly and sting like one too. 

But stat changes are only the beginning of the madness.  Mutations are coolest when they start manipulating fundamental rules in combinatorial ways.

Putting the "Mental" in "Fundamental" - Mutations

Mutations can add or modify very different rules to the standard ones you're used to.  Walloped enemies might sprout spikes when you hit them, or curve around in a circle on a wallop, or explode on contact with the walls.  Your trusty harpoons might start homing, or bouncing, or even go away entirely and get replaced with spiked balls, laser beams, or bombs.  Your dash might leave a fire trail or knock spare change from the pockets of enemies you run into.  You might gain the ability to start deflecting laser bullets back into your enemies or slow down time itself.

But let's give an example or two to make it less abstract.

Bomber Wallops and Projectiles

Bomber is a mutation that changes both your wallops and projectiles.  Your harpoons are replaced by exploding bombs, allowing you to do more damage and pull off multi-kills, but limiting your ability to position enemies.  Walloped enemies explode when they collide with things, allowing for some pretty cool combos but maybe exploding some things you would rather not explode.

Spike Strike Wallops FTW

Spike Strike makes any enemy you wallop sprout spikes, causing extra damage in a radius around them.

Tracker Shots layering homing death onto other attacks

Tracker Shots occasionally make enemies attract things you shoot or wallop, making aiming easier!

As with many mutations these things stack up and work on various kinds of weapons and projectiles, allowing for a lot of crazy combos that can make for very powerful (or very dangerous!) runs.

Mutations are the life-blood of the game and so they're intended to combo together in as many ways as possible.  This helps each run (and near-inevitable death) play differently based on whether there are strong, weak, or outright kooky synergies formed by combining mutation effects together.

One run might be almost entirely based on melee.  The next might be all about rapid-fire projectiles like a twin-stick shooter.  Both of those runs change when your enemies and/or projectiles start looping back at you, exploding, or a rare combo makes dashing into enemies your best attack of all.

Mixing It Up Even Further

This is all before the audience decides to cause their own chaos, adding new rules on a per-room basis with Viewer Events.  Those mutant shotgunners are normally pretty tough, but when they start firing bouncing vortexes of extra-powerful bullets, it's time to quickly figure out some clever ways to survive.

The Low Tolerance mutation means that syringes (one of our common consumables) do double their effects to you for good or ill.  Useful!  Or deadly!  But when you fight the crazed medbot Doctor Death who throws syringes as projectiles at you, things change up.  You'll find knocking his syringes back at him and his bodyguards with your sword duplicates them but if they hit you it's twice as nasty.

From a design standpoint, our goal is to really allow as many crazy synergies as possible.  Every run should be different and unique, because where the real pride and accomplishment (cough cough) comes in games is reacting skillfully to a unique situation that in part the game presented you, and in part you chose yourself.
 

Going Forward

A goal of ours is that rules should be understandable, but still able to create unique situations and reward experimentation.  As we're adding content over the next months, we'll regularly call out new combos we're adding or even finding ourselves.  We have built this thing generally enough that emergent synergies often happen on their own.

We are striving to make an action-y game that still allows for thinking and strategy - where clever and skillful players can really shine.  If we do our jobs right you should see combinations that make you fight in new ways, see new things, or just boil your brain a little, even after a ton of hours of play.  It's why we are spending a bunch of time adding new mutations, traps, monsters, events, and more to the game and making sure they interact well.

We want a game that's still fun to play (and fun to watch played!) after you've "mastered" it.

Anyways - back to coding and thanks for reading!

-Gaffer

WELCOME TO GONE VIRAL

 
 

2.28.2018  -  Welcome to Gone Viral

To kick things off, we'll talk about some of what is key to us when designing Gone Viral.  We're tackling a few completely new features we haven't seen before while doing our damndest to take some standard roguelike/lite tropes up a notch.

Pinball Combat

This is something new - what is it and where did it come from?  Instead of Gone Viral being primarily about shooting and dodging from afar twin-stick-shooter-style or memorizing attack patterns ala Dark Souls-y style melee, we wanted to try something different.

Your basic melee attack is a Wallop - it sends enemies flying, which feels pretty cool in its own even before we start building on it.  Some damage happens on the basic hit, but even more damage happens when you whack NPCs into things - other enemies, obstacles, you name it. 

The goal is that combat shouldn't just be about knocking down a health bar, but rather to have a more dynamic combat caroming your enemies into other baddies and/or spinning blades, pits, spikeballs, and other deathtraps. 

This adds movement and environmental interaction to every combat to keep fights feeling fresh.  It also means that the best defense is a good offense - enemies can't hit you if they are busy falling into a pit or being mashed to death.

Wallops tie into two other fundamental systems:

Killing with Style - Carnage

The setting for Gone Viral:  You're busy escaping a post-apocalyptic prison arena and you have to earn your freedom by winning over the audience.  Your badassery is being streamed to psychotic post-apocalyptic viewers, and earning their respect (and goodies) depends on something simple:

Fans. Love. Carnage.

Carnage can be gained in a number of ways but the rule is - the cooler of a move you pull, the more carnage you get.  Using the positioning power of your wallops, the audience fricking loves it when you can knock an enemy into an explosive barrel - setting it off and killing 3 more enemies outright while blowing a 4th into a pit of death.  Each of these events is a Stylish Move, and combo'ing them together creates lots of Carnage, which makes for more happy and bloodthirsty followers.

And your nutball viewers reward you with strands of the Mutation Virus, which ties into...

Combinatorial Gameplay

Having abilities, items, enemies, and game itself combine to add up to something special on each run is an area that's been done before - and done well - but we fricking love it, and want to take the concept another step forward.  Having all sorts of emergent gameplay is key to having the depth necessary to be fun over the long haul and (in the era of Twitch and YouTube) fun to watch over the long haul as well.

We get to play with some new toys here.  First of all, because of walloping, we get to do fun stuff with walloped enemies.  Have an effect that spins your shots in odd directions (with audience bonuses if you can hit)?  Cool, walloped enemies spin too.  Smack an enemy with the right mutation and they might sprout spikes for extra damage, fly in the air, crush rocks on impact, shock anyone nearby, leave a trail of fire - all sorts of stuff.  Mix all those at the same time and you might get really crazy.  Then when you find a spikeball shooter, you might fire spikeballs as area-denial weapons with all those effects.  Get a rocket launcher, and watch it fly in a circle and hit you in the noggin while emitting sparks and acid willy-nilly.  The audience might well love it...the zanier, the more carnage (and often the more dangerous to you!)

Welcome to the Party!

Anyhoo, there's lots more to talk about - but that's a start.  We're relatively early in the development of Gone Viral  (as of 2.28.2018) and are in the process of adding a slew more content (which is where the fun is for this kind of game) while we finalize our base systems. 

So there's a bunch in place, but a ton subject to change as we test and get feedback - and that's where you come in.  We're having a good time .