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.

Cutscenes, subs and... stairs

Posted by Asthree Works (Creator)
43 likes

Two months of madness

Hi everyone! we were busy as hell since the last update, focused on solving different tech issues and including key features to advance in the game development.

This update will be less “flashy” than others because some things related with animations and designs enter the spoiler terrain. Either way we made some improvements that Carlos will summarize, explaining what’s been done in the coding department during this time. Mainly we’ve made progress in the cutscenes area, which are a key to achieve our vision of Paradise Lost, and we’ve also hit a very hard wall with something that didn’t look that difficult to begin with, stairs. Here we go.

Importing sprites

Until now every sprite we made I imported into Unity manually, I grew tired of this so I made a tool to import these sprites, saving us a lot of time in the process. The importer is very simple and ad hoc, we pass the importer a folder and all the sprites inside this folder are named so the tool knows everything needed to cut them into the correct number of frames, the width and height of these frames is also set on the name. For example the file fall_9_10x10 would be imported as a sprite named fall, cut it into nine frames of ten by ten, but a file named recovery would be imported as a single sprite with that name.

 Additional options let us import the sprites as Advanced Textures and set a Packing Tag shared by all the sprites inside the folder.

Cutscenes and subtitles

In February we bought Cinema Director from the Unity Asset Store, a tool to make cutscenes inside Unity using timelines and actions, with the ability to preview the cutscene outside play mode. At first this sounded amazing, but the asset was made with 3D in mind and 2D was not supported. Thankfully the asset came with the source code, so the first week was spent learning the asset and customizing it for our project, with pretty good results.

The most important changes made to the asset were the inclusion of a MoveTo action to the timeline, which lets us move any 2D entity using our previously built movement components, and the Subtitles action, which writes subtitles on the screen using our DialogueManager. Also MoveTo gives us a good estimation of the time that’s gonna take the entity to reach the set position, even on preview mode, which makes life so much easier.

To give you an idea of what we would be doing to move a character without the addition of the custom MoveTo action, we would have to add an Animation track to animate the entity, an Audio track for the steps, having to synchronize the sound with the animation with the same precision as the code does, and a Translation track to actually move the entity.

How to move a character inside cutscenes with the original asset. As you can see there are too many steps to make a simple cutscene and a velocity curve is needed to reproduce the character’s movement, which is bothersome and not very precise.

___

How to move a character inside cutscenes with our customized actions. With a pair of clicks the character is moving with the same pace and motions as in-game.

Subs

About the subtitles, we wanted to add ones similar to what you can see in the trailer, with only minor changes to improve them, this was easier than expected and now we have a DialogueManager, and the previously mentioned custom action inside Cinema Director to add subtitles to the timeline. Its functionality is very straightforward, first we create an XML with the actors and the lines they say, then we can either run the subtitles by code or setting a new action inside Cinema Director, always specifying duration and the XML path.

On this example both dialogue animations have the same length but the second one needs to show more words. The DialogueManager will write the subtitles at the right speed given a certain duration -we tied speed to duration to properly synchronize dialogue with animations-.

This enhancements give us the possibility to portray a more cinematic look to the scenes, pairing the texts with the length of each animation and avoiding the classic dialogue-skip scheme with breaks, typical of this kind of games.

Stairway to hell

If someone asked me what I thought was going to be really difficult to code, I would never have said slopes. Probably some of you remember the designs made by Enol and posted in the update #32. He designed a stair system based in Subject W’s pivot (wich is wider than the human one) and added perspective to them, giving the feeling of depth necessary to avoid the character standing in the air.

I’ve spent a great part of the last month trying to make them work, and they’re still a little bit clunky. The problem was that the player, Subject W, it’s a not kinematic entity and responds to real physics, this combined with very steep stairs and all the code behind which makes the player move, jump, land properly, pass through platforms and so on, made what looked like a simple task into a nightmare.

It’s not the first time we’ve had problems because something done months ago doesn’t work with something that you never thought would cause issues, these things happen sometimes, but this time we made a really big mistake regarding planification. Whenever I’m working on a certain mechanic or system for the game I try to design it with every feature in mind, and I don’t start another task unless it’s finished. But I didn’t realized we were adding slopes when I made the movement components.

Certain aspects of the movement and the numerous possible collisions needed to be changed to work with slopes because they are a very particular case.

The math behind the slopes is, in theory, simple enough to implement. This first image shows the forces that are applied to Subject W at any moment, obviously if not moving or jumping its velocity is gonna be zero.

 With this information we can deduce that to counteract the gravity the terrain needs to apply a certain friction to the velocity on x of Subject W. This friction is also modified by the normal of the slope in relation to Subject W, because a slope rotated 45 degrees is not the same as one rotated 10 degrees, which is much easier to climb.

In the end the velocity on x for Subject W while on a slope at any given time is:

velocity.x = velocity.x - (hit.normal.x * friction)

And this is the final look of the colliders applied to the stairs:

This wasn’t the only issue to tackle, we also faced the need to design the input around this element, one easy to understand for the player. So far this is the solution that we came up with:

If you walk straight Subject W will obviate the stairs, passing through them.

___

If you jump in front of a stair flight Subject W will land on it.

___

Walking, crouching, running and jumping work the same way as they do on the ground.

___

If you move towards the bottom of the flight floor level the character will continue moving on the ground.

___

If you stay in a half space landing and want to go up you’ll have to jump.

___

If you stay in a half space landing and want to go down you simply move the character in that direction.

___

You can also get down of a stair flight by pressing down+jump.

___

This is the best system we came up with, considering the character movement and the gameplay mechanics already designed and used. We’ve eluded the use of diagonals because they do certain movements in Paradise Lost (if you press down+left Subject W will dock, and adding a new/different feature only for the stairs will be confusing for the player). We are considering to add visual prompts to help players notice the actions that they can make in certain spots of the stairs, but they’ll probably obstruct the designs and look a little bit overloaded. In any case your opinions are more than welcome :)

As you can see development issues can appear anytime, and with a complex game like this with tons of features that involve specific game mechanics is easy to overlook stuff or fall into something that you thought will be made in no time.

In any case we hope that you liked the update and also be of interest to other developers that are having similar issues with their projects. We also appreciate all your comments and opinions on these news.Till the next one!

Comments

Only backers can post comments. Log In
    1. Corey Rollins on

      Love your updates, thank you so much for making them with so much love and detail! So excited for this game :)

    2. Tarwin Stroh-Spijer on

      Oh wow. Yeah, stairs / slopes are annoying. I went through exactly the same set of steps with Scarygirl :D

    3. Zombra on

      Good answers, thank you Asthree team :)

    4. Martin O
      Superbacker
      on

      Interesting update as always!
      I would like to see using 'up' to differentiate between walking past stairs or going up.

    5. Asthree Works 2-time creator on

      @Matt actually you can "adhere" to the stairs jumping in front of them, without the need of press up while doing it. We avoided the use of diagonals to move through half spaces because it looked a bit confusing and changed the control mapping completely. Anyway, we'll keep in mind all of your concerns to polish the stairs functionality ;)
      -
      @ Jorlinn on Linux working on it as you can read in the @Zombra answer :)
      -
      @Diggeh as stated by @Matthew Haws, vector texts are more readably and, in our case, follow the linear-vector aesthetic of the rest of menus and HUD. Besides that we wanted to differentiate this elements from the in-game elements.
      -
      @Zebra don’t worry about being harsh, all opinions are welcome :)
      About your idea of pressing “up” by the side of the stairs to climb, actually that could work because it doesn’t interfere with the rests of controls. The problem is that you can’t press down to descend, in that case, we’ll need to substitute the crouch action. The thing is: if we change going down for the crouch it can be a little confusing. We’ll work on it.

      The text box will be wider in the final version, don’t worry about that :)
      Taking on the text pace, we kept the same scheme shown in the first trailer. Since then we didn’t think about changing it, but that is a possibility. In any case, we can’t add a skip funcionality. Think of it as a real time cinematic. If there is a traveling with two characters talking and walking to a determined point, it’s impossible to coordinate them. Actions are linked to text in most cases.
      -
      @Matthew Haws we studied different scheme controls and the Castlevania one seemed a little odd and dated. Besides that, the half space landings are difficult to face because there is so little space to walk and adding new features only by staying on the stairs is too much ad hoc I think.
      -
      @Donnie Kornick right now is difficult to give an ETA. We were working with a release window of late 2016 in mind, but as you can see things can get complicated and there are some things to do till we can be confident about the final date. Sorry.

    6. Matt Lohkamp on

      two nitpicky control comments:

      are you trying to avoid linking up/down presses to mounting/dismounting the stairs? but you've already established it in down+jump=dismount - why not require holding up+jump to mount?

      are you trying to avoid diagonals? why not let up+left go up to the next staircase, in the case of the stairwell/jump to mount? hold left + down to go back down the stairs, hold left + up to continue up the stairs.

    7. frederic tarabout on

      Slopes are always a pain in the butt :p
      I'm gonna bookmark your solution because I think I'm gonna have to deal with it pretty soon on my game.

    8. Matthew Bowie on

      @Diggeh

      It's a matter of practicality and usability over consistency of a graphical limitation. The pixelated text will only be harder to read.

    9. jorlinn on Linux on

      Thanks for the wonderful update! The stairclimbing looks great to me. I agree with Zombra that subtitles should not appear at a snails's pace.

    10. Matthew Bowie on

      @Zombra

      I couldn't picture them ever mapping up on the controls to jump. Surely it's a dedicated button.

    11. Diggeh on

      Shouldn't the subtitles be pixelated to match the game? A regular font sticks out like a sore thumb!

    12. Sharkey on

      Pretty fascinating stuff, thanks for the cool update! Keep up the great work, dying to play the final game! XD

    13. Zombra on

      It just occurred to me that maybe jump isn't a separate button .. in which case straight up and jump would be one and the same. That would make sense! but a separate "climb up" button still seems more intuitive to me than jump-only for climbing.

      Also, I hope I don't seem overly harsh in my criticisms. You guys are doing wonderful work.

    14. Zombra on

      I'm confused. Why can't Subject W mount the stairs when I simply push straight up on the controls? It looking like jumping is the *only* way to climb them. This seems bizarre. Maybe you could use the current controls *and* add another key for climbing stairs for "power players" who are comfortable with games with more than 6 buttons. If you're worried about confusing players, just don't tell them about the extra key, hide it in the manual somewhere. It can be our little secret.

      Additionally, let it be known that I hate scrolling text as it forces me to read at a certain speed. Is there a reason cutscene text is only 20% of the screen width? Make it wider. I also hate "timed" text that appears letter by letter, typewriter-style. It's cool you have it synced to the animations, but I really prefer for the text to appear all at once like the subtitles in a movie. Again, regulating the speed at which I read is going to make me frustrated and ultimately I will view cutscenes with dread instead of interest.

      Showing dialogue a full line at a time and letting the player push a button to go to the next line is the standard because games *evolved* that way for player control. Go back to early JRPGs and you will see text appearing one letter at a time and never stopping to let the player control the pace. This is garbage and there's a reason games don't do it any more.

    15. foducool
      Superbacker
      on

      oh shit, son, didn't think I'd see stuff I learned way back in mechanic be applied here XD

      and these dumbasses say that maths are useless XD

    16. David Payne on

      you guys give the best updates. thank you

    17. Matthew Bowie on

      From what I read, you can only climb half space landings only by jumping, which isn't really precise on it's own. Have you tried experimenting with an additional control scheme similar to Super Castlevania IV where you can press and down to climb on the D-Pad?

    18. Donnie Kornick on

      Do we have even a general ETA?