Share this project

Done

Share this project

Done
Play as an alien plant and escape from a scientific facility, full of secrets and dangerous experiments.
Play as an alien plant and escape from a scientific facility, full of secrets and dangerous experiments.
5,953 backers pledged $144,960 to help bring this project to life.

Color enhancement, particles and shaky cams

Posted by Asthree Works (Creator)
53 likes

Hello everyone! We are here another month to show you how things are going in the studio. We spend some time working on the use and application of colors, tints and shades for the characters and scenarios, trying to approach the original concepts made outside Unity. We’ve been experimenting with particle systems too and worked in other technical issues like improving the loading times between stages. Want to take a look?

Level color grading

Since the beginning we wanted to design the different elements that shape the game (scenarios, objects, lighting effects, characters) without color restrictions, avoiding the 8/16-bit retro palettes characteristic of the pixel-art aesthetic.

Certain materials like metal or cardboard use a consistent color pattern on different objects, but our priority was to create every element with its own tones and shades. Although this is not a problem in itself, it is true that all these graphics can be dissonant with each other as they are not affected by the global lighting and refraction of color of the different stages and elements (such as tinted bulbs/glasses, fire, water…). In order to unify the hue range without losing their original colors we applied tonal curves and adjustment layers previously generated in a raster graphics editor.

To import these adjustments on Unity we use an asset called Amplify Color that helps to blend the tones of the scene and obtain an homogenous look for each stage. This extension is really easy to use, the only thing you have to do is generate the hue/saturation/color curve you want in Photoshop and link the image generated with Unity. The results are astounding and it doesn’t even affect the game in terms of performance.

Here are some examples of color grading. As you can see the colors stand out and the color curves manage to give a cohesive look to the different entities that conform the scene.

Color blending options

Leaving the level color grading aside, we needed to develop ad hoc shaders to tint certain zones of the scenarios and objects/characters depending on specific situations. The question is: Why don’t you apply the color grading asset on individual elements? The answer is simple: unfortunately, Amplify Color doesn’t apply this effects to isolated sprites. The extension picks the original adjustments made outside Unity and adds them to the whole scene (in brief: to the game camera), so we can’t obtain adjustment effects on determined spots/elements.

To this effect we managed to integrate Color Fx shaders that are similar to the layer blending options of raster programs like Photoshop or Gimp, considering that we can’t accurately reproduce adjustment effects such as curves or color balance to individual sprites.

On this example you can see the steps made to change the overall lighting of a scene. Each element has a specific shader with a blending mode. The curve adjustment is the last one applied and affects the whole group of layers behind.

The math behind the blend modes

We implemented various typical shaders to apply individually or as layers, this way we can recreate some effects otherwise impossible for us.

Additive: an additive shader does what the name implies, it adds the color passed through, or the color of the layer, to the original color.

If "o" is the original pixel and "c" is the color you’re applying the function will look like this:

f(o,c) = (o.rgb + c.rgb) * o.alpha

Multiply: multiplies the color passed or the one from the layer to the original color:

f(o,c) = (o.rgb * c.rgb) * o.alpha

Tint: this one is more complex, we convert the RGB components of the original color and the color being applied into HSV, then we calculate the resultant RGB like this:

cHSV.brightness = oHSV.brightness * brightnessProperty cHSV.saturation = saturationProperty

o.rgb = ConvertToRGB(cHSV) * blend + o.rgb * (1 - blend)

Where oHSV and cHSV are the original and new color RGB componentes converted to HSV, brightnessProperty and saturationProperty are variables to determine Brightness and Saturation respectively, and blend is a variable between 0 (none) and 1 (full) to control color blending.

Creating contrast and depth

Throughout the development we noted that in some areas like the laboratories wich have a big set of on screen elements -such as servers, research equipment, tables, monitors and more- were difficult to differentiate the characters from the environment. Also, interactive objects didn’t stand out from decorative ones. To solve this problem we added a gradient shadow in some stages between the interactive and decorative layers. Now players will be able to spot platforms, scalable objects, buttons and hideouts more easily.

Pixel particles

A lot of Paradise Lost elements are volumetric shapes like smoke, fire, water, electricity sparks... When we started the project those effects were made with traditional animation. Seeing the amount of work needed to obtain realistic effects, Carlos proposed to create a particle system that allow us to include particles with a pixel art look, adding dynamic behaviours to this elements and saving development time. This is an example of the particle system added for effects like energy flakes or smoke.

To obtain a pixel art look we imported pixel sprite particles of different shapes, showing jagged columns that follow the same aesthetic of the game. The different parameters allow us to change the density and frequency of the particles emitted by the different objects.

This is a sample of the dynamic particle behavior, attached to a thrown gas bomb:

Shake it

As of late we felt that the damage perceived by Subject W wasn’t too obvious (with tons of elements on screen and a discrete HUD this was a problem in some circumstances), so we worked on a system to show the impacts in a more clearer way. Most games add a tint effect in the borders of the screen, but it looked too annoying and overlapped, so we decided to include a little shake to the cam. We don’t want a dizzy/blurred effect so we added a controller on the editor to regulate the effect if needed.

Loading

The issue with loading times was clear since the demo, they were too long for being as frequent as they are. So Carlos tried to find the reasons behind the lenght of the loading screens and how to solve them. The solution was pretty obvious and one of those things that ended up being far more simple than expected.

When the game enters in a loading screen, the screen fades to black, then loads the room, then the audio switches if necessary and lastly the screen fades again to the game. The problem lies in the amount of time spent on fading the screen and switching the audio, it was too long, and it was something we put there, we set the speed for the fading and the switching, so when pumped up the loading screens were cut in more than half the time, leaving the loading almost instant.

We think it’s possible to shorten the time even more with a few tricks Carlos has in mind, is something that we’ll address ASAP.

And that’s all for this month! We’ll keep you updated with more progress in the near future. In the meantime don’t forget to enjoy the wonderful Hyper Light Drifter, one of the big indies out there.

PS: for those who played the game... have you found Subject W already? (・∀・)

Comments

Only backers can post comments. Log In
    1. Christian Dannie Storgaard
      Superbacker
      on

      Great update! Thank you for continuously giving great insights into your thought processes and techniques, it's very much appreciated. Also, don't listen to the hateful comments; some people seem to think that Kickstarter is for pre-orders and game-development is only coding (shipping without foreground/background separation, particles and colour grading would make for a very different feel in-game - such silliness.)

    2. Asthree Works 2-time creator on

      Thanks to everyone for the comments and support. You’re the best (and most patient) fans that anyone could ever wish to have.
      -
      @Thomas Herzog we think that showing the insights of game development could be interesting not only for the backers but for other people focused in game design, and maybe help or encourage them to start a new project, creating some kind of synergy. Following other devs pushed us to create PLFC, so we want to show our experience and tips to the game community too. That is the magic of internet.
      -
      @Alabug when the time comes and new versions of the game are in production we’ll make an update and contact backers of the OUYA version to propose another platform of their choice.
      -
      @Carlos Sánchez lots of things to do before having a certain release date. We are working focused on a late 2016 release window, but it will be difficult I suppose :( Anyhow we’ll keep you informed as long as we have the game in a more “solid” state. Fixing a deadline is the best, but sometimes we go off the rails with some stuff (for example: any matter concerning AI is done twice as fast compared to months ago because we have more experience in that area, but facing new things like the stage editor takes hours and hours away).
      -
      @L.M. we don’t have any problem with people being vocal about the development, but we always appreciate the respect, comprehension and pragmatism of the community. If you think that showing how color grading works and graphic edition is “minor hipster-shit” is all right, but you’ll have to understand that it is a part of the dev. process, and other people might be interested in it as long as you don’t. And the idea behind posting the development process is… well, show you the things we are working on. Would you prefer that we write down 100 lines of code in order to show “real hard work”? or don’t post anything at all till we have the game finished? I’m sorry but I don’t see the point of your criticism in that matter :-/ In any case, and as stated before, your opinion is welcome -and we are doing our best to share with you a playable demo ASAP-.
      PS: about the time in development, we lost a programmer with all the code of the game. Needed to re-do everything concerning code and always kept you informed about this issue.

    3. Missing avatar

      thomas herzog on

      Please remind me, am I expecting a full game, or the complete tutorial on how to write it myself? :-D Awesome insights!!! Love it.

    4. Evan Coolen on

      These updates are actually very informative! Its very cool to see how all things are coming together. Thanks for sharing your processes. You could even bundle the updates in a book :)

    5. Missing avatar

      Alabug on

      How will OUYA backers be able to get a DL code for another console?

    6. Carlos Sánchez on

      OK, I agree you guys are doing awesome things in developing the game... do you have an estimated release date? Not that I am really in a hurry, but just curious. Please don't let the multiple delays spoil the good work done. Fix a deadline and try to attach to it.

    7. Missing avatar

      Sonntam on

      Once again a great update! Love how in depth you document the game development.

    8. Missing avatar

      Alyssa Argento on

      Love the shadow layer solution to making interactive elements stand out! Also the smoke / particle solution looks great.

      Fantastic job guys.

    9. Missing avatar

      L.M. on

      It's been almost 3 YEARS of development and you still don't have anything playable. Lol @ such details like colors and stuff, release a fucking game THEN update it for this kind of minor shit. But too late now. Can't believe it man. And don't "it ain't minor" hipster-shit me please.

    10. Asthree Works 2-time creator on

      @Demiurge sorry pal, but I don’t see a valuable contribution in your comment :-/ we posted a gameplay video in the update #41, so we DO have a game but it is not fully developed. Making games takes a lot of time and we are a very small team (keep in mind that this is our first project and we have no previous experience with game development). Hope you understand this point of view and help us improve the game with more proactive comments ;)
      PS: we are working at full throttle to give an stable demo to all backers.
      -
      @jorlinn on Linux the different tonal effects help us gave more variety to the stages, as the game happens in closed environments the majority of the time. It is not a matter of realism, it simply stands out the colors and give a cohesive look, independently of the elements in-game (and the objects with intense color do pop-out besides the use of curves, don’t worry ;)
      Btw, the junkies fact cracked me up XD
      -
      @James Oliver damn! we knew that someone would prefer the retro palette haha. The thing is that it actually looks good, but it’s hard to obtain a clear contrast between objects-backgrounds and it wasn’t the visual result that we aimed to obtain. We use gradients and modern effects that give a particular look to the different elements... Just a different perspective for the same aesthetic. PS: with a gameboy palette it would look pretty neat too :D wonder if there is an “easy way” to apply those graphic filters in-game.
      @Francesco Rugerfred (✌ °∀° )

    11. Demiurge on

      Lol you guys don't even have a game do you?

    12. jorlinn on Linux on

      I do like the scene with the emergency blue light though.

    13. jorlinn on Linux on

      Thank yo for the update, but... I don't particularly care much for the effect of the level colour grading. I don't think that many environments would realistically have such different colours of light. This is especially true for the office environment. Is that a public toilet that they are changing the colour to a sickly blue in order to frustrate the finding of veins for occasional junkies? I'm not a big fan of high colour saturation in game or comic scenes, I find a more muted tone in to come over as more natural, generally speaking. This allows the few objects that do have an intense colour to really pop-out of the scene.

    14. frederic tarabout on

      I want all your sweet pixel technology!

    15. Yotam Ivgi on

      Looks great!
      Found him and instantly had a fuax nostalgia moment where I missed playing PLFC...
      Can't wait

    16. James Oliver on

      The 8 bit NES color palette looks better.

    17. Ben Drechsel on

      What a great update, stuff like this is fantastic to see. Amazing attention to detail!

    18. Troy Dunham on

      As eager as I am to play - I love that you are taking time for all of these amazing details!!! Thanks for the update

    19. Nathan Morse
      Superbacker
      on

      Fantastic! You guys are just nailing this. I can't wait to play it!

    20. Sharkey on

      Haven't touched HLD yet as I'm waiting for my console release first. :D