Shaders, skill improves, menus, gamepad modes

Last month we released the updated demo to all our Kickstarter/Humble backers with tons of fixes and gameplay adjustments. Most of the problems were solved for this second alpha but a few of them are still on the to do list (we needed to prioritize other tasks in order to complete major milestones).

One of the bigger problems we faced is explained right below:

Color replacement troubles

In addition to the multiple genders + hair styles already designed for each profession of the G.E.R. staff we wanted to include an option to make all characters unique. With the use of a color replacement shader we could create cloth variety and represent racial diversity.

As cool as it sounds it’s relatively difficult to implement this shader and it’s giving us some headaches. Unity2D is based upon Unity3D, as such the Sprites used by the engine are just textures with a particular material so the engine can render them properly (each material is defined by a shader). You can change this material for another one compatible with Sprites/Default, thus applying a different shader to the texture, but you can’t have more than one. This means that we need to create a shader that combines all the color corrections and light effects we want to use on a character. This is our main problem as we currently don’t know if this is possible with the effects we’re using right now or even how to do it.

Let’s see an example:the enemies have one material that allows an alarm to tint these characters with a vivid tint effect. Now, imagine we swap this red tint material to a change-color material so we can recolor all the enemies and give them different looks, when the alarm starts the game should change their material from the change-color one to the red one, but if we do this the red tint would be applied to the base colors of the sprite instead of the recolored ones from the change-color material.

This is what happens when the shader affects the character > it resets the sprite color to default, losing the tinted shader in the process

We tried different solutions like the use of imported LUTs applied to a new camera focused exclusively on the characters layer, multiply tints… but no advances were made on this area. Our last resource is the development of the mentioned mega-shader but graphic programming is a whole new field and could take us some time to achieve it.

We have planned other solutions outside the use of shaders if we come to a dead end, like the inclusion of skin colors and different clothes to our current sets of sprites, but this will limit the variety of npc’s so we’ll exhaust all the possibilities before making this move.

Skill changes and development of new menus

Releasing the two demos helped to calibrate the game difficulty and allowed us to see the strengths and weaknesses of the game on multiple levels. One of the most complex tasks of development is the adjustment of the different elements that conform the gameplay structure. Paradise Lost is especially sensitive on this field because the enemies have numerous interactions between them or with their surroundings and also react differently depending on the skill that W is using against them.

The acquiring of new abilities will be a crucial factor to progress on the adventure so we decided to make some changes in order to simplify game mechanics and have a more enjoyable / less frustrating game experience.

Decoy skill

Originally, the decoy was meant to have different levels of progression like most of the skills, but we realized that it was difficult to improve a skill that is focused on two simple tasks: attract the attention of enemies and go through places that Subject W can’t reach.

We came up with different approaches like enhanced durability, use of multiple actions or teleport W to the decoy’s position unlocking the higher level (which causes troubles like ending in “dead zones” or giving the player the possibility to surpass entire levels in a blink) so we decided to keep it simple and change it to a skill without progression, like the double jump.

To do so we mixed the different actions devised by level and balanced them to create a unique mechanic.

In earlier designs the decoy was able to jump in order to reach higher surfaces, but that alerted the enemies and made its use difficult and frustrating, more so if we keep in mind that it has a time restriction. We could preserve the jump action without alerting them, but it’ll look weird to see a spider-like seed jumping near characters and these remaining impassive.

We wanted to maintain the “decoy” element without losing the platforming so certain changes needed to be made. After the inclusion of the new climbing mechanic (holding a button while walking) we decided to extrapolate this concept to the decoy skill and now it has two different actions that do not enter in conflict with each other: it can reach higher elements unnoticed with the climb button and attract enemies with a new explosion button (that can be used in conducts too), eliminating the jump from the equation. This is the result:

Also, the decoy is capable of interacting with elements (like Subject W) and move between the floor and the conducts if they have a ventilation grid. This diversifies the gameplay and allows players to create multiple strategies.

Shell skill

New animations have been added to the shell state (like slip and recover) in case players fall from platforms while walking.

We also simplified how the damage is perceived while enhancing the ability under the skill tree menu.

Instead of showing a table for each level representing the multiple types of damage (which is difficult to remember) we decided to keep it simple and reduce by half all damage when players invest skill points on it (progressive damage like gas or fire is reduced on level 2 and direct attacks on level 3).

Spore skill

The spore went through a big facelift in order to make its use more fun and its progression more challenging.

Previous version of this ability had two different functionalities related to the first levels of the skill tree, changing the way that could be used: Level 1 > the spore seed reached half of a room, Level 2 > with the skill button pressed the spore seed reached further.

This idea was a bit lame because the landing was very imprecise and overall annoying to use. Also, the gas animation needed to vary from one level to another in order to reach higher spots. This was related to the third Level that gave the spore the capacity of exploding automatically when touching the floor and avoiding elevation like the previous levels (this force-feeded the players to reach the top level in order to be mildly interesting).

Giving a twist to the spore functionality we created a new mechanic that is resemblant to the Balloon Fight game (do you remember this NES classic?) allowing Subject W to create the spore directly from its head.

New floating animation for the spore

Now the spore floats but it can’t maintain itself on the air so the player needs to constantly press the jump button to keep it elevated and navigate through the room with the movement controls (beware! W gets exposed while controlling the spore!).

Using it is more interesting and fun because we can reach higher places and affect enemies like cameras or cambots.

In addition if a character identifies the spore it can blow it up and alert the room, giving us the tools to create more possibilities and challenges.

Host skill

With the host players are able to control scientists and press elements unreachable by Subject W or move them away. Certain characters like guards have the ability to knock out other enemies.

The earlier version of this skill used a dart to hit the enemies and trigger the skill from a safe distance, but it was redesigned to create a more clear progression.

Now, On Level 1 Subject W controls enemies if it touches them.

Level 2 gives the ability to control them at distance throwing a dart and also gives the player the option to knock them out from afar (this interrupts the skill). Level 3 has no time restrictions + gives the possibility to switch between the enemy and Subject W to avoid being seen or create more elaborate strategies.

The decoy, host and spore skills are complex mechanics in which you control different entities and the world reacts in various ways to their actions, we needed to adapt several systems to recognize and work well with more characters than Subject W. Thankfully as this was a planned feature a lot of the work was done on the first iterations of those systems and the implementation was moderately quick and clean.

Skill tree modifications

The skill menu has been modified to adopt these changes and the abilities without progression have been added too.

We removed the skill names and levels to have a cleaner look (these will be represented in the info box) and the shell has been relocated to the right in order to create a pyramid composition: stealthy techniques to the left / ‘offensive’ techniques to the right. Thanks to this we were able to expand the info box, gaining space for the action graphics and showing a more concise explanation of the level with a bulleted text.

The top tabs have been reduced and navigation buttons have been added to the bottom of all sections.

Unification of state bubbles

Now that we are unifying mechanics and concepts we decided to do the same to the state bubbles that represent any kind of damage done to an enemy. We had states of sleeping and knocked out for humans, stand by globes for robots/mechanic enemies, etc., so we realized that all of them served the same purpose: show that an enemy is unconscious. With this in mind we created a new bubble that applies to any KO state:

Gamepad modes:

After changing the climbing mechanic we thought that adding two control options to the gamepad could be a good idea. Taking the Xbox controller as reference:

Mode A: run with the X, climb with the Right Trigger

Mode B: run with Right Trigger, climb with the X

Most players are probably more familiarized with the old school running (ala Mario Bros) but other players seem to prefer RT running, so we’ll keep both of them selectable in the Options menu.

PS: Development forum

We are still working on the forum in order to implement it on our website (been busy with development issues) and figuring out how to send invitations for the backers, etc. As soon as we have it we’ll contact our Kickstarter backers.