fbpx
Loader image
Loader image
Back to Top
 

Blog

Decisions, Optimization & More!

Welcome to this new update! It will touch upon varied topics and as always I’ll try to present an interesting insight into what it means to develop Ghost of a Tale. But first, let’s start with a screenshot of Dwindling Height’s war room… 🙂

ScreenShot 2016_03_31 10;25;21001

Switching to 5.4

Well, that didn’t go quite as planned…

In fact, the move (from 5.3.1 to 5.4) I alluded to in the previous update was basically a catastrophic one. The reason is very simple: 5.4 was in beta stage. And it is entirely my fault for thinking “how bad could it be”.

For months it was written on Unity’s road map that 5.4 would be delivered at GDC 2016. And they did indeed release it; but as I was saying it was just a beta. To be more precise it was the 10th beta. And I thought “alright, some new things won’t quite work yet, but that’s ok”. That was naïve.

Turns out the move to the beta took me about week. At which point, after the 20th crash to desktop, I had to face the fact I had made a terrible decision and subsequently spent about a day just to revert to 5.3. With the indispensable help of Cyrille I managed to salvage about 85% of what I had created while using the beta, and had to rebuild the rest.

Bottom line is: the 5.4 beta Unity ended up releasing in place of the “real” 5.4 is still months away from being anywhere near production-ready and it is my fault for not picking up on the obvious beta clue. Lesson learned.

We’re now back to 5.3 and while we won’t get the improvements we were hoping from 5.4 I’m just very happy to be able to work again! 🙂

ScreenShot 2016_03_29 11;00;41001

Optimization

Since the game doesn’t use baked lighting at all (every light is dynamic) it presents some optimization challenges. Casting shadows is very expensive in Unity. And baking shadows is quite limiting and would really bog down my workflow.

So I had to come up with ways of keeping nice visuals (shadows are a big part of it) and yet not burn the framerate budget on things that wouldn’t be seen.

It took a lot of work but I improved on the system I already mentioned in a previous update. Before, the lights visibility distance were subordinated to a unique value; an absolute distance all the game’s lights followed.

I changed that so each light now has a specific visibility distance, depending on its location and visibility. That level of granularity keeps lights looking the same, but they’re smoothly turned off by the game as soon as they’re not needed anymore.

It makes a very big difference in the framerate. Before, in the jail, I was around 45-50fps. Now I’m mostly around 70fps (oscillating between 65fps and 82fps). The courtyard is another matter though and I still have a lot of work to do there.

On top of this optimization work I also started using a different LOD system (called AutomaticLOD) for some of the game’s assets (models are getting simplified the further away they get from the camera). It allows the poly count to go down without any noticeable visual drawback. I’m still putting the asset through its pace but so far it works brilliantly and the developer is both helpful and reactive, which is extremely important!

ScreenShot 2016_03_25 23;21;18001

Table Decision

We have this game mechanic where the player can hide in a plethora of items (chests, barrels, cupboards, etc…). Basically anything that would accommodate Tilo’s size.

But since the beginning, tables have been a sticking point. Because it looks like Tilo should be able to fit under one, but actually the table colliders did not allow him to simply walk under a table. Yet it wasn’t visually very clear.

A long time ago I had implemented an automatic system that would put Tilo in a “forced sneak mode” when he would get near a table (touching it). And it would allow Tilo to walk under the table. It worked alright for the most part but wasn’t entirely satisfying.

In the game, when you want to hide somewhere, you switch to the “sneak stance” (hold the right gamepad trigger) and the option to hide becomes available. But again, with tables we were in a situation where it was a half-way thing; you weren’t hiding but merely “concealed”. Sometimes.

And it came with a couple of problems: when Tilo sneaks his walking speed decreases (which might be unwanted if you’re being chased) and when under a table it wasn’t clear if the enemies should see you or not. All because Tilo wasn’t officially hidden.

The solution was to simply turn tables into bona fide hiding spots. This was achieved by lowering slightly the tables’ height so that Tilo can’t quite fit under even when sneaking; hiding under a table is now a clear-cut player decision. You enter the hidden state, or you exit it. No more confusion.

Those kind of things become clearer as we play the game and the structure becomes more established; things that are half-baked like that tend to stick out more.

And on this point I think I’ll end this update. I hope it was an interesting enough read! As usual, please leave your questions and comments below. See you in the next update! 🙂

 

Share
Seith
Seith

23 Comments

  • blank
    evilkinggumby
    March 31, 2016 at 2:15 pm

    wow this all sounds awesome. i’m sorry for the setback of unity being in a beta stance.. but the hardest lessons learned never are forgotten. 🙂

    If you bump into a table and are NOT in a sneak stance, will it auto-drop you to let you hide or do you still HAVE to hold the trigger to enter sneak mode to go under them? My concern is if it auto-drops you, running past tables when moving around a space and getting “sucked” into sneak by the table would be really annoying. kind of like how in some games you auto-cling to walls or subwalls to hide/duck and it gets annoying when you’re just trying to run through an area.

    Also if you ever need a hand with optimization i can help test it. I have several setups of varying capabilities i can check the framerate on.

    -EKG

      • blank
        Dragonhead
        April 6, 2016 at 2:48 pm

        Glad that hiding is a choice. I too find it annoying when it’s done automatically.

        Now, what about looting the chest while hiding inside of it? 🙂

  • blank
    Daniele
    March 31, 2016 at 2:16 pm

    Definitely an interesting read, but the part about the table shines through: super interesting.

  • blank
    Christoph Zürcher
    March 31, 2016 at 2:17 pm

    Thanks for the update. Too bad about Unity, all the other points in the update sound great!

  • blank
    Evan
    March 31, 2016 at 3:34 pm

    Strange how sometimes the most simplest of concepts take the most work in perfecting.
    Still looking good.
    I’m glad you’re focusing on the feel of the game, both from item interaction to frame rates, as well as the finer points often overlooked by many.

    Regarding Unity 5.4, if you’re releasing on 5.3, do you foresee any patches to the new system once it is out of beta, with the assumption that GoaT releases before? At least you have some experience using the 5.4 that would make it slightly better going into it next time around.

  • blank
    Uleertel
    March 31, 2016 at 5:17 pm

    Ces journaux de production (peut on les appeler comme ça?) sont toujours aussi intéressants et j’attend avec impatience le produit final que j’avais participé à financer il y a bien longtemps 😉
    Courage pour la suite!

  • blank
    Jimmey
    April 2, 2016 at 3:17 pm

    Well, that’s twice upgrading Unity has been a problem… 3rd time lucky perhaps?

    Good call on changing the table hiding, had a few games where something like that has gotten quite annoying.

    Also more great screenshots, the world looks better with every one!

    … & be honest, if 5.4 had gone well, would you still have posted an update on it breaking, but just one day later?

  • blank
    MundM
    April 2, 2016 at 8:51 pm

    Holy cheesecake, I think I jinxed it in the last blog update…sorry.

  • blank
    Fonzman
    April 8, 2016 at 7:29 am

    Love the screenshots! Especially the cat’s skull above the fireplace. Every screenshot is so full of details!

  • blank
    Michael
    April 11, 2016 at 5:10 pm

    It’s funny that I have more hype over this game than I do Dark Souls 3, even if the Dark Souls series was one of my favorite gaming series ever. I just can’t wait for this game to come out, I know it will be amazing….. I die a little inside with every setback ;-; but it’s awesome that you have things back up and progressing.

    P.S: How long might it take for this to be implemented on Xbox (if it is) after the full release on Steam? I don’t mean a specific date I mean how long would it take for it to be made compatible on Xbox when it’s finished on Steam.

  • blank
    Roman
    April 19, 2016 at 11:42 pm

    Thanks for the update. It is pleasant to watch the game grow. Keep up the good work and do not forget to take a break from time to time 🙂

  • blank
    Jeremy
    May 8, 2016 at 2:38 am

    It is looking great! You mentioned the XBone version, what about the PS4 version? Or is that hush hush?

    Also I’m glad about the stealth in this game. It sounds like you are putting a lot of thought into it! Not a lot of games do stealth right, but it is looking more and more like you’ll nail it on the head!

  • blank
    Annmarie
    June 20, 2018 at 11:27 am

    If this not adequate you also have ram room improving games
    such as for instance Way reminiscence, Sequence reminiscence,
    Tracks storage and Landscape storage.

Add Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Beta soon…?!!
Tunnel vision