Jan 122017
 
twittergoogle_plusredditlinkedintumblrmail

Hi guys! Paul and Cyrille join me to wish you all a Happy New Year! 🙂

This update is going to be essentially a technical one (it’s been a while I haven’t done any of those). I received many questions regarding the new vegetation system in Ghost of a Tale, which was introduced in the latest build. So I will now attempt to answer them.

Caveat Emptor: this technique is used on PC and Xbox One/PS4 (I haven’t applied it to any other platform yet).

(Also: yes, the game is running on Unity 🙂 )

THE SYSTEM:

The reason why I developed this system is because I don’t like it when I see vegetation behaving like the vertex are warping and stretching unnaturally around a sphere or capsule shape (even in AAA games). If I were a shader wizard maybe I would have come up with a super smart shader that would give me what I need, alas I’m not. So I had to find another way… 🙂

The main idea is what happens around Tilo should be high quality while the rest should stay as cheap as possible (nothing new here).

In this example the fern objects are made of two models:

  • A static one (a simple mesh with usual LODs)
  • A dynamic one (same model as LOD0 but the stems are skinned to a couple of joints). Technically each stem only uses 2 bones (the end one is not part of the skinning).

screen-shot-01-07-17-at-10-58-am-001

The dynamic models are deactivated by default, leaving only the cheap static ferns visible. No script is running in the background so there’s no overhead.

The root game object has a simple static box collider trigger. When Tilo enters the trigger that’s the signal that we should switch to the dynamic model.

screen-shot-01-07-17-at-11-02-am

Since the static and dynamic models have the same pivot point it means the wind animation (vegetation shader) is exactly the same on both meshes. So there is no visual pop whatsoever when switching between the models.

The dynamic model has a kind of “fake physics” (using this great asset) which acts as colliders on the stems’ joints. Those colliders collide with the actors’ limbs (head, chest, waist, etc…). Note: In this case I reuse the actor’s colliders from the game’s dynamic props system, so there’s no additional colliders to create (always reuse whenever possible!).

What this gives me is more accurate detection in that if a character plays an idle animation while remaining in contact with the fern, the stems will still react fairly precisely. In other words this is not a simple “capsule” avoidance.

screen-shot-01-07-17-at-11-04-am

So when Tilo is within the trigger the fern’s dynamic (skinned) model is visible, but when Tilo leaves the trigger then after a second or so -long enough for the fern to settle down- we switch back to the cheap static model.

screen-shot-01-07-17-at-11-06-am

Again, there is absolutely no visible pop during the change because the “rested” dynamic model and the static one have perfectly matching vertices positions.

NOTES:

There is a couple more details to keep in mind: I use a special vegetation shader (written by shader wizard Larsbertram) that produces translucency but uses the deferred rendering path (whereas normally you would have to use a slower forward rendering path).

A second important point is that I don’t use OnTriggerStay in the trigger detection process. I only use OntriggerEnter and OnTriggerExit. The reason is OnTriggerStay can prove quite heavy (depending on your physics matrix) and we don’t really need it. All we need is to be notified when Tilo enters and leaves the trigger.

There is also the tricky case where Tilo would have left the trigger (for whatever reason) without calling OnTriggerExit. Which is a fairly rare situation but it could happen. To remedy this case I use an Update function on the vegetation bend behavior script which tests from time to time (every couple of seconds) if the distance between the actor and itself (in this case the fern) is greater than a certain threshold. If it is then we know for sure we should switch back to the static model.

Of course that component only becomes active while Tilo is within the trigger. And it ensures we don’t accidentally leave some vegetation items in “high-quality” mode.

That’s it for this update! I will keep converting a lot of the game’s vegetation over the next build updates but some assets will remain “dynamic-but-rigid” (meaning non-skinned/rotation only) as they don’t require as much detail.

I hope this answered any questions you guys might have had regarding this topic, and I genuinely hope it didn’t bore you to tears. See you in the next update! 🙂

Dec 202016
 
twittergoogle_plusredditlinkedintumblrmail

Welcome to this new Ghost of a Tale update! How time flies. Paul, Cyrille and I have been working like crazy on a lot of different things over the last months.

Work has been roughly divided between enhancing the early access (fixing the bugs, adding features) and working on the final game (new locations, game mechanics, etc…).

By the way, just to avoid any confusion: some of the screenshots displayed in this update are from new areas which are not yet open to the public! They’re just a taste of things to come… 😉

(In the screenshot below Tilo -or is it the famed Red Ranger?- has found an old place in the forest. Some say it dates back to the War of the Green Flame…)

screenshot-2016_12_06-220314001

The new build update available today provides a solid cushion for the new mechanics (to which I alluded in the previous update) which will be part of the final game. It also represents a clean slate of some sort.

Indeed after the last build update we took a long hard look at what could be improved and we found several areas where we could do better (from an artistic, visual and coding standpoint).

We knew that since those changes were so fundamental we would lose previous saves compatibility. We didn’t take that lightly but we assessed the prospective benefits and we decided that since the game is still in early access it was really worth it. And we hope you will agree with us!

Performance:

Last time I alluded to performance improvements and I can confirm they are indeed substantial! As an example I tried running the game in 720p on a very old computer of mine which doesn’t even have a proper gaming card (it’s got an old Quadro) and while before it was struggling to reach a barely playable 20fps it now runs above 40fps!

Some other average machines that could barely run the previous build at 30fps in 720p can now do so at 1080p (or close to 60fps at 720p).

Finally on my powerful gaming machine the average framerate went from 90fps to nearly 150fps (which is admittedly a little ridiculous).

screen-shot-12-19-16-at-02-25-pm

So all in all I’d say it was well worth the effort! 🙂

But that’s not all: We have implemented a new kick-ass sectioning system that allows us to streamline everything we display and I’m happy to report that there is no more stuttering or micro-freezes when transitioning between areas.

Visuals:

As you guys know Ghost of a Tale relies a lot on tessellation and I reworked all the tessellation shaders using a new shader editor for Unity by Amplify which takes care of the remaining issues in previous builds: transition with distance looks much better, all the micro-cracks/back-faces scintillating artifacts are gone and finally it does a much better job at showcasing the humidity and wetness of some materials.

(In the screenshot below you can also see the improved sub-surface scattering shader on Tilo’s ears and hands)

screen-shot-12-19-16-at-03-54-pm2

Plus you get new settings to change the tessellation’s amount and distance to your liking.

Some textures have also been doubled in resolution for a finer look and detail mapping now plays a much bigger role in delivering crisper textures when seen up close.

Gameplay:

Tilos’ costumes are now directly affecting Tilo’s capacities as well as the guards’ detection. Cloth items now influence Tilo’s endurance, the rate at which he recovers his stamina, his sprint speed, auditive discretion and visual conspicuousness.

Costumes don’t affect Tilo’s health/stamina anymore, meaning there’s no issue anymore with losing health/stamina when switching between different costumes.

It feels much better because the new items now really have a discernible impact on Tilo’s skills. All this is in preparation for the upcoming game mechanic when you can find some costumes that allow Tilo to run around without being attacked right away by the guards.

(On the screenshot below you can spot Tilo in a suspended basket which works as a new shortcut between the top of the tower and the garden below)

screen-shot-12-19-16-at-02-08-pm-001

Xbox One:

There’s not a lot to report on that front unfortunately; we have submitted a build to Microsoft in order to enter the Game Preview certification process but that was a while back and we haven’t heard from them since.

Anyway, since this is totally out of our control we will keep concentrating on the PC version!

Regarding the new build I invite you all to go here to read the release notes for all the details.

Finally we wish you all happy holidays! Thank you for sticking with us throughout this year of development! And stay tuned for more Ghost of a Tale related news to come in 2017! 🙂

Oct 222016
 
twittergoogle_plusredditlinkedintumblrmail
(Note that this post contains a couple of nifty screenshots by talented forum member Nautilus)

Welcome to this long-due Ghost of a Tale update! 🙂

As the title says we’ve been extremely busy this month, dealing with a lot of different topics ranging from bug-fixing to improvements and optimization as well as working on what lies beyond early access. It’s been a very pregnant period in terms of ideas, concepts and overall dealing with the feedback from players as well as gameplay suggestions.

After pouring over the feedback Paul, Cyrille and I talked a lot among ourselves about ways to make stealth in Ghost of a Tale more challenging, more realistic, more demanding, but… well, after a while it became quite clear that this wasn’t the proper route to follow.

One day I found myself watching many videos of stealth games and came to the realization that I was basically trying to make Ghost of a Tale behave like other more hardcore stealth games. And that was definitely wrong.

We’ve got a pretty clear idea of what Ghost of a Tale should be and that never entailed consciously mimicking other games’ mechanics. Ghost of a Tale is not a hardcore stealth game (like Styx or MGS 5); it’s a hybrid of action/RPG/stealth. It is about exploring Dwindling Heights, dealing with the enemies (sneaking is one way), talking to well-defined characters and leading Tilo in his quests.

That being said I believe the stealth elements need to blend better with the rest of the game; which is why we’re currently working on a sizeable update. Here are some of the main lines. Please note that NOT all of those will necessarily be included in the next build release!

The costumes should play a bigger role:

Costume’s items will now have a direct effect on Tilo being detected by the enemies. Visual and auditive discretion will vary depending on the cloth you wear.

Items you wear will not only have an effect on your resistances but also have a direct impact on the rate at which your stamina depletes and the speed at which it regenerates. So there will be a greater emphasis on practical differences between the costume items.

Costumes however will not change Tilo’s health amount anymore. Only resistances, sneaking skills and stamina will be affected by them.

rhmecju

Being able to explore the world more freely:

And here’s a big change: some of the costumes you complete will let you walk around Dwindling Heights without getting attacked right away by the guards. How much time you get before being considered a target depends on which costume you’re wearing.

What will happen is the guards will become gradually more suspicious of you and then they’ll walk towards you. If you manage to break the line of sight and hide without scampering away then they’ll just lose you.

But if they reach you then they’ll challenge you (e.g. “Who are you? What are you doing here? What’s the password?”, etc…). If you answer correctly they’ll let you be for a while. But if you raise their suspicion then they’ll attack you (as they do now).

But remember this mechanic only works with some of the complete costumes; running around as a thief or in mismatched clothes will still make the guards aggressive towards you.

ggejzn6

It’s an important nuance in the game: If the rats attack Tilo that’s because they recognize him as a prisoner who escaped his cell. Not because they’re inherently evil (they’re not).

Conversely, you’ll meet other mice in Dwindling Heights which are not prisoners, like contractors working on rebuilding dilapidated parts of the place (mice are famous for being good architects all across Pangia). But they might not be willing to help Tilo just “because they’re all mice”; they’ll just see him as an escaped convict and want nothing to do with him.

Once again this drives home an extremely potent point: rat guards do not attack all mice on sight and other mice are not necessary your friends just because they’re mice.

Enemies and combat:

There will be different types of guards in Dwindling Heights: some are the slower halberdiers you meet in the jail. Some others will carry swords and shields and be much quicker on their feet. Finally some will be armed with crossbows (introducing the element of range combat). They will definitely offer a greater challenge for those seeking it.

In the final game Tilo will also have additional tools to deal with guards (ie: ability to throw hornets’ nests at them, etc…). This will enhance the interactivity with the rats without overpowering Tilo.

Quests offering more rewards:

Completing quests will grant Tilo renown points. Every time Tilo gains a certain number of points he gets one additional health/stamina slot. So Tilo’s health and endurance levels are now in direct relation to your actions as the player.

On top of this the NPCs will grant you some florins and items when completing their quests, so as to make the whole experience a little more rewarding. As usual, those florins can be used to buy some special skills/information from some NPCs.

screenshot-2016_10_17-165328001

Better Platforming:

This has been greatly improved and Tilo can now climb much more freely all around. It makes a big difference! 🙂

On top of that, if you maintain the jump button pressed as you run around, Tilo will automatically climb over things as you run into them.

Improving assets quality:

I have done a huge reworking of the vegetation (thanks to coder wizard Larsbertram) and the game now has trees that react to proper wind zones and sway in the breeze, gently waving their branches and leaves.

As you can see in the video the leaves translucency is also more accurate when the sun creates back-lighting. Trees were always something that bothered me in the current release and since we have wooden areas coming in the final game I really had to rethink my whole vegetation pipeline.

The game now also uses Unity’s new Temporal Anti-Aliasing which is a step up from the one we were using before.

screenshot-2016_10_04-235423001_taa1

Recently I started using photogrammetry for some rock assets and ground features; they bring a touch more credibility while all the while being easier on performance thanks to the use of LODs (there are almost no LODs in the current release).

screenshot-2016_10_22-121616001

I have also reworked the water interaction (after having been inspired by the tech presentation from Playdead’s Inside). I’ve posted about it on Twitter already but this is a better quality version for those interested:

Which is a great segue into…

Xbox One:

We have made huge progress on this front. Basically the game currently runs at 30fps in 720p, as you can see on the video below (sorry for the shaky-cam).

Microsoft has some a strict certification process and I’m sure it will take a while before Ghost of a Tale’s Preview version can land on your favorite console. Still, already having the game chugging along is no doubt a step in the right direction and I just wanted to let you guys know!

The good thing is it looks exactly like the PC version. No real dumbing down. Just a LOT of optimizations without compromising the way the game looks.

The PC version also benefits from this of course. As a result the tech requirements for the game will go down. For example my computer is 3 years old (albeit with a kickass video card) and the game went from 70fps to 90+fps (in 1080p).

All thanks to having to optimize the game for consoles! 😛

And let’s not forget that we made drastic structural improvements in the way zones are loaded and activated in the background. Those might sound less exciting but trust me when I say that they are every bit as important as the shinier improvements.

It also means that your saves probably won’t be compatible with the next release but that’s the price to pay for this performance boost and game mechanic changes.

So when is the next early access release happening?

We don’t know yet. But I just wanted to make sure you all understood that if this update is taking a long time coming it’s not because we don’t care anymore, quite the opposite! It’s because the changes are fundamental and require a lot of work and planing to get implemented!

Alright now it’s time for me to go back to work. As always, please feel free to share you reactions and ask questions in the comments… 🙂

Aug 192016
 
twittergoogle_plusredditlinkedintumblrmail

Now that the dust is settled I can at last find time to post an update! What an experience it’s been! 🙂

Ghost of a Tale has been out in early access on Steam and GOG for more than three weeks now. And it’s been both exhausting and exhilarating. Some days we worked nonstop around the clock with only 4h of sleep so it was rather intense, but in the end it was all worth it.

I want to thank Cyrille (Cosmogonies) and Paul (FakeNina) for answering emails and replying on forums while at the same time toiling away on the game. If Ghost of a Tale’s launch wasn’t a total chaos it’s all thanks to their constant dedication and hard work, for which I am immensely grateful.

Thank you also to all of you guys who took the time to send us your saves, screenshots and bug reports! You have truly made the game better for all those who will come after you.

To say the reactions to the game have been overwhelmingly positive is an understatement. Here’s a typical example of a player’s reaction about the game:

ScreenShot 2016_07_26 16;29;18001

I’m really glad we tested the game beforehand as best we could because it actually paid off: Ghost of a Tale was called one of the best example ever of a game released in early access. For some reviewers it even set a new standard in terms of quality of a pre-release. Which is music to our mousey ears! 🙂

Of course there are still bugs remaining and we’re working tirelessly to squash the most annoying ones as quickly as possible. We also added requested features and players were sometimes amazed to see we genuinely cared for their feedback.

We’ve got some great suggestions (regarding AI, game mechanics, etc…) which will make the game even better than it is while keeping the original vision intact.

All in all I’d say the game has attracted a really nice crowd, with a lot of good will and a genuine desire to help. And that’s probably one of the most welcomed achievements of the game as far as I’m concerned.

How did the game do in early access?

It did alright! The sales are not fantastic by any measure but it should allow us to finish the game as intended. Now for any slightly bigger studio that level of revenues would without a doubt spell the end of the project. But not in this case, rest assured the game will get finished!

Early access games are rarely a smash success and we released Ghost of a Tale without any publicity whatsoever. I didn’t even have time to do a proper new trailer, Microsoft couldn’t provide any marketing support since the game is not yet out on the Xbox One and almost no journalists were aware of the game’s pre-release. Talk about a hard sell!

Anyway the uptake is a lot of players went “This looks really nice, I’ll wait until it comes out of Early Access!”. So if Steam’s dashboard is to be believed we have ten times more potential buyers waiting for the game to be finished than the actual amount who already bought it. Which seems to indicate the game should be fairly successful when it gets officially released.

So what now?

The very first step is to take care of all the remaining bugs to ensure the early access is basically as bug-free as possible, since the systems and game mechanics will be used in the final version.

The second phase involves tweaking the gameplay, integrating more feedback from players, etc… Then early access will be deemed complete in the sense that it procures a thoroughly enjoyable experience to players new and old. Development will then branch out to what will become the full (final) version of the game. We are currently nearing that stage.

On that topic, a quick message to all of you backers who got access to the Beta version of the game on Steam: you can now switch back to the default branch. The Beta branch is going to be used mostly for experimental builds, where we introduce tweaks or changes not yet ready for prime-time.

So if you’d like to provide us with feedback about new features (and potentially new bugs) please stay on the Beta branch. If not, then simply opt out of it in the game’s properties.

What about consoles?

We are currently working on getting the Preview version onto the Xbox One. I will of course post here whenever there are related news.

Regarding the PlayStation 4 we don’t have anything to announce yet, besides the fact that Sony is indeed aware of the game and would like to see it come to their console. Once more I’ll let you guys know as soon as there’s anything new to report. 🙂

Will the game be available on the Humble store?

Yes it will, thank you for your patience! It will also be possible to buy the game directly from this site through the Humble Widget. I’ll post an update when that’s ready to go.

Alright, I have to get back to work now. And I’ve still got hundreds of emails to go through. So please be patient, it will take me some time…

Finally I simply want to thank again all of you backers of the Indiegogo campaign who chose to give Tilo a chance three years ago. It looks like you won’t have to regret it! 😀