PC Version Overview (Part 3 - Final)

The Legend of Heroes: Trails from Zero

When Lloyd Bannings is assigned to Crossbell's Special Support Section, he and his new teammates must prove themselves as they fight to overcome the injustice of a city gripped by corruption.

Hi everyone, and welcome to the final post in this series on the upcoming Trails from Zero release! In case you are just joining us, there were two prior parts: in [url=https://store.steampowered.com/news/app/1668510/view/3361388019335519328]the first part of the series[/url], I talked about a slew of general and PC-specific improvements we made to the game, including support for arbitrary resolution, framerate and aspect ratios, the message log, and full mouse support both for gameplay and in menus. [url=https://store.steampowered.com/news/app/1668510/view/5138061328894182485]The second part[/url] was all about how we selected, generated and sometimes recreated the highest quality assets for map textures, character sprites, and the UI. Originally, I planned for this final installment to deal primarily with platform features, a bit about optimization, and perhaps also some information on the more obscure almost antique bugs we fixed for our release of the game. However, after the first post, we were contacted by many people who pointed out various features of some specific previous releases which, despite our best efforts, we didn't yet include. Luckily, we managed to get not just one but [b]two surprise features[/b] in since then -- the most highly requested one by far, and another one which most people might not even be aware of. So without further ado, let's get started with those two surprises! [h1]Music Information UI[/h1] [img]{STEAM_CLAN_IMAGE}/40784458/818c715db154ecea51a3ff7b3719f38996851c22.png[/img] The single most requested feature - of those that we had not already included - was a background music track information popup as seen in the Geofront fan patch for the game. I'm happy to report that we managed to implement this without too much hassle. As you can see above, it is of course entirely optional. With that option enabled, every time a new music track starts playing a UI popup will show the track name, and, if available, the OST disk and track number it can be found on: [img]{STEAM_CLAN_IMAGE}/40784458/8ef03fa12c446948882c8577fcced9cff3dd9e51.jpg[/img] [h1]Dynamic Character Shadows[/h1] [img]{STEAM_CLAN_IMAGE}/40784458/cab8de8eb39b897d76f9b01c064a4ba04e0ab314.png[/img] This is a much more obscure feature request, which reached us after the first post in this series went live. When we first received it we were surprised - none of us were aware that this existed - and not quite sure if we could actually implement within the resource constraints we have. Some background: the Japanese-only Vita "Evolution" version of the game features dynamic character sprite shadows in some scenes. These do not exist in any other version of the game, and we had access to neither the source nor assets used in this particular version. As such, for this particular feature, the problem is not just coding the shadows, but actually placing lights on all maps where they make sense. Luckily, we were able to create some in-game UI for light placement which allowed our beta testers to contribute to getting all the light locations just right. [img]{STEAM_CLAN_IMAGE}/40784458/0842525288d9eee9e90ae892a0a5bcb648967a22.png[/img] We now have dynamic shadows from light sources in dungeons, and on other maps at nighttime. As an added bonus, our character shadowing allows distinguishing between torches, flame-like lights, and other light sources, and the former feature a subtle shadow flicker and movement over time. [h1]Platform Features[/h1] [img]{STEAM_CLAN_IMAGE}/40784458/838bdc65e7093f9ac14198dce7197991436c8802.png[/img] A small feature we have included in this release for the first time is [b]rich presence integration[/b], with both the Steam and Discord APIs. The Trails games are pretty long, so now your friends can see what you are doing all that time - if you are into that and have it enabled of course. You can see an example of the type of information that will be displayed in the image above. Perhaps a more practical feature that will be particularly important to any of you playing on Steam Deck is [b]Steam Dynamic Cloud Sync[/b] integration. In practice, this means that it is even more convenient to shift between playing on different devices, and in particular between the Steam Deck (and other PC portables) and a different PC. You can read more about this [url=https://steamcommunity.com/groups/steamworks/announcements/detail/3142949576401813670]here[/url]. Talking about saved games, there are a few more things that I should mention. First, we've been asked quite a few times whether saved games made using the Joyoland (and thus Geofront) releases of the game will be compatible with our version. The answer used to be "no" - the save format had changed slightly, and we also [b]compress [/b]all save data so that it takes up even less space for e.g. portable cloud sync purposes. However, we have now implemented the ability for the game to load saves made in previous releases, giving us [b]save backwards compatibility[/b] with saves made using the previous PC versions! Oh, and the somewhat popular "continue from latest save" feature which you might know from our previous releases is returning as well. [h1]Performance Optimization[/h1] Reading this headline you might rightfully ask yourself what I'm going on about: Trails from Zero is, after all, a relatively old game, and should [i]easily[/i] run on most PCs without much optimization work, right? Absolutely. But that doesn't mean that there is nothing left to optimize. And, while it really doesn't change much on a full PC plugged into a wall socket, our optimizations actually made some impact on Steam Deck power consumption and thus battery life, as you can see here: [img]{STEAM_CLAN_IMAGE}/40784458/9fa215c05c4d63c99dee6fd6b14d8c2fbe1d62e2.png[/img] This is a comparison of the peak total system power draw of the game on the Steam deck at native resolution and 60 Hz/FPS, between one of the first working versions we had, and a version close to release. Note that this is in one particular level, and with ~30% screen brightness. We primarily implemented two optimizations: a general rendering optimization which we worked on to make sure our Switch port hits a solid 60 FPS on all maps, and a specific optimization for the High Speed / Turbo mode of the game, reducing its CPU impact. As you can see in the comparison, while these aren't game-changers, they help make it feasible to hit 6 hours or even more on battery when playing Zero on the Steam Deck - and more specifically, turbo mode no longer notably affects power consumption. We also implemented texture de-duplication, which allows us to keep the game download and install sizes small (less than 4 GB!) despite including higher quality assets. [img]{STEAM_CLAN_IMAGE}/40784458/25d400ee256c3577542563787a1a5c5718bddc9f.png[/img] Talking about the Steam Deck, I'm happy to announce that Trails from Zero is already [b]fully Steam Deck verified[/b]! In fact, as you might have surmised from earlier posts in this series, it goes beyond the verification requirements by offering 16:10 aspect ratio support. [h1]Bug Fixes and More[/h1] Even after 3 blog posts I still haven't touched on a few points I wanted to mention. For example, we backported book page navigation as well as the "Encounter Trigger" and "Other Voices" settings from Trails to Azure. We also added basic rumble support (on damage), and offer separately configurable speed up factors in battle for high-speed / turbo mode. Beyond all these feature improvements, we also fixed a lot of bugs. Some of them were new in the Kai versions of the game - e.g. a handful of wrong textures ids - while others have existed in every single version since the very first PSP release of the game. Perhaps the most amusing of these bugs, and one of the harder ones to find, is one where an enemy could reset the input handling, causing "stuttery" character movement, by triggering the hitbox of a door. To the best of our knowledge this could occur on only one map in the entire game. But it's gone now. [h1]Conclusion[/h1] This release has been a long journey - and at this point, even writing about it is starting to feel like one. But that might just be appropriate for a franchise which is epic in the truest sense of the word. Anyway, before I close out this final post, I'd like to thank everyone involved with making this version of the game happen, one last time: the developers at PH3, our beta testers, NISA, the members of Geofront and of course Falcom. And finally, thanks to everyone who is interacting with these updates and discussing them online - I try to follow most of that discussion, and participate when I can. While it's not always possible to answer all of it or implement 100% of all requests, as you can see with the two features mentioned at the beginning of this post, your feedback can help us deliver an even better final product. Cheers, Peter "Durante" Thoman, CTO, PH3