Jul 242015
 
twittergoogle_plusredditlinkedintumblrmail

Hello there, this is just a quick update to let you guys know of a couple interviews/articles about the game that have been published on the web recently.

The first one is in French, and you can find it by clicking on the picture below:

ScreenShot 2015_07_15 07;38;22001_cropped

The second one is in English and you can read it over at 80.lv: http://80.lv/articles/ghost-of-a-tale-journey-from-minions-to-mice/

It talks a little more in details about the technical aspect of creating the game and the Unity engine. For example the use of tessellation compensating for relatively low-rez models.

Although it is worth to point out on the picture below that what you see is temporary whitebox geometry in Maya, NOT the final in-game meshes that get tessellated.

ScreenShot 2015_07_23 12;38;00001

Just a couple of development news: Paul has been hard at work on writing the game’s dialogs and it’s all shaping up very nicely. I’ve even added queries into the time-of-day system so NPCs can greet you while mentioning the proper time of day (ie: “Good afternoon!”). 😛

I’ve done a pass on optimizing the UI and that paid off; I was able to shave off a handful of frames-per-second by reworking the entire system and separating each canvas into its own prefab.

Incidentally the UI system (inventory, dialogs, main interface, etc…) is starting to come into its own and feels more and more consistent.

So things are moving forward at a steady pace! The amount of work left to do is still rather daunting though. I think that within a few weeks I should be able to accurately assess the situation with regard to an early release.

Of course release plans have not been finalized by a long stretch yet but it is looking more and more like we’re going to do an early release of the game on Steam. In any case I will post many more details about that in an upcoming update!

Jul 062015
 
twittergoogle_plusredditlinkedintumblrmail

Hello everyone! After having developed the game’s quest system I’m now mostly done with the dialog system; the interface which lets you communicate with the game’s Non-Playable-Characters. Such an example of NPC is Kerold, an old inmate in the bowels of Dwindling Height’s prison (don’t mind him, he’s a bit mad 😀 ).

ScreenShot 2015_06_10 23;39;06001_cropped2

The dialog system of course deals with displaying the NPC’s dialog on screen (as there are no voiceovers in the game). Text is supported by a 2D portrait of the character’s expressions and sound effects. It’s a pretty tried-and-true approach which works quite nicely in the game.

But the dialog system also has to fulfill many other functions. In fact it can get pretty tricky to manage in the long run and it’s very important to make it modular and simple enough to maintain and/or expand. Here’s an overview example of a dialog tree structure (just a few branches actually):

ScreenShot 2015_07_03 09;34;59001_cropped

NPCs can greet you with several different lines depending on the current situation. But through dialog they must also be able to interact with the game’s quest system I mentioned at the beginning.

They can query the state of some quests or tasks (quests are made of a certain number of tasks), they can start a new quest, trigger the completion of some others, check if Tilo has some items in his possession, or even give him some items, accomplish an action, etc…

codeSmall2

At the heart of the dialog system lies a test-machine parsing many different conditions and displaying dialog nodes depending on the results. Dialog nodes are only revealed if their conditions are fulfilled and some nodes should only be displayed once and never again. The system needs to keep track of all this information and it is obviously crucial that everything stays synchronized!

Paul and I have spent a LOT of time talking about finding the “voice” of the characters and Paul has already written quite a few spiffy dialogs. So I have to say that adding at last this level of interaction to the game feels great… :)

Jun 222015
 
twittergoogle_plusredditlinkedintumblrmail

Hello and welcome to a new Ghost of a Tale update! I have recently implemented fire interaction in the game. It’s something I was thinking of for a while but hadn’t come to work on yet.

In this GIF you can see it’s never a good idea to jump into a brazier. I’m pretty sure Tilo would agree with me… :)

burnBanner
 

You’ll also notice that the banner catches fire when Tilo runs close to it. Some objects can be set on fire this way, although not everything in the game is combustible of course.

Anyway as we’ve seen in a previous update there are much safer ways to burn things (usually any open flame will do the trick). No need to set yourself on fire!

But if it comes to this Tilo can put out fire by jumping (or hiding) in a water container (basin, barrel, etc…). Also some items you’ll find in the game offer varying degrees of protection against fire.

On the topic of performance optimization (but still related to fire): in the picture below, center frame at the end of the corridor you can clearly see the stages into which a torch comes alive.

torchExample
 

(Please note that for the purpose of this demonstration I have drastically lowered the distance settings on that torch in order to clearly display the different stages)

  • Stage 1: The torch flame is not visible at all.
  • Stage 2: Only the particles become visible. No “real” light involved yet.
  • Stage 3: Light is on but it doesn’t cast any shadows yet.
  • Stage 4: Light now casts “dancing” shadows.

You’ll be able to set the light distance in the game’s Graphics options menu. People with a good gaming PC can use higher values while those with a more modest rig can lower the distance at which lights appear. It can make a big difference performance-wise as Ghost of a Tale doesn’t use any baked lighting; it’s all “real time all the time”… 😉

And that concludes this update. As usual, please don’t hesitate leaving your comments and/or questions below!

May 312015
 
twittergoogle_plusredditlinkedintumblrmail

Hello all, welcome to this new update! Lately I’ve been hard at work on the UI side of the game. Which comprises the inventory, the 2D interactions with the world, textual feedback, etc…

For example in this animated picture you can see Tilo looting the contents of a chest. As a player you can choose which item you want to take or you can take everything in one go.

opening chest
 

You’ll also notice that the chest remains slightly ajar when Tilo’s done, which is a visual indication (useful at a distance) that this container has been emptied. This way if you don’t remember you looted the chest you don’t need to come and check again. The mention “(empty)” is also added so there’s no confusion as to why you can’t access the contents anymore.

And here is the way Tilo can switch his currently equipped item on the fly. Note that you can also equip items from within the inventory of course but this is a much more direct way to do so.

switch_tool
 

I have also finalized the quest system! I’ve looked long and hard at using an existing Unity quest manager asset but I finally opted for writing one from scratch (which took me a couple of days). This way I’m sure it’s an exact fit for the game.

The inventory itself is not 100% finalized yet (there are still some data to fit in there) but it’s really exciting to see all of it coming together. It looks and feels like a proper game and as a result Tilo is more of an actor and less of a witness now.

Finally, on a totally different topic I feel the need to address the fact that the game is going to be one year late of what I thought when I did the Indiegogo campaign (it’s been 2 years to the month since the campaign ended).

As you all know it has been a learning process for me but I assure you I do work very hard each and every day (the concept of week-end seems like a nice memory). Thankfully all of you are supportive and follow closely the game’s development. And I just want to express my gratitude for this rather mature behavior. It is rare enough on the internet to be appreciated as such!