1. SimAirport
  2. News
  3. Summer 2022 - Performance Upgrades, Translations, and New Game!

Summer 2022 - Performance Upgrades, Translations, and New Game!

It's summer for us and it's really heating up (and probably starting to really get cold for those of you in the southern hemisphere) -- and with the heat on, it's time for an update to SimAirport!

In this iteration we've taken an even deeper look into Performance and we have some solid gains for you on that front. We have also brought to SimAirport the same Localization system that we've been using for SimCasino, which will make adding & improving translations much simpler for the community. Finally, we'd like to take a short look at our newly-announced upcoming title and talk a bit about how it came to be!

Before we get into the details, we want to make you aware of our upcoming Live-Stream -- planned for this Sunday! We haven't done one in a while but Arthur and Joscha are excited to join you once again to play SimAirport alongside the community and chat with you -- we'll be talking and answering questions about SimAirport and, as usual, it will be a "fire-side chat" style discussion where we'll talk about anything interesting, from gaming & aviation to world news, and anything in between.

We're excited to be back streaming with you and playing SimAirport, so be sure to join us!

Live Stream Details
    When:
    Sunday, July 3rd @ 11AM PDT // 20:00 CEST

    Where to Watch


[h2]Performance[/h2]
As we've always said - we're always looking for performance improvements and if/when we find something actionable, we won't hesitate to jump at the opportunity. Sometimes, however, this isn't enough -- and to get a really deep look into how and what we can do to improve performance improve we've been sitting down together in multiple-hours-long calls and delving deep into the profiling tools at our disposal. For a reference, this is one of the reporting tools that we have available and is a good example of what we're talking about:

Note: This is the Profiling view of our last default build - it helps us see the areas we can Improve on.

Since the last release we've been able to find major performance gains in several of the "systems" that the SimAirport gameplay relies upon to function. Notably, agent movement updates & calculations - these are now parallelized, meaning several threads can run these updates at once leading to a relatively substantial improvement especially for those who have robust CPUs with high core counts.

The second major improvement comes from improving how we organize and approach the agent rendering aspect of the code - specifically the organization & layout of the data, and how many "indirections" were required simply to update the position or facing of PAX and staff. While the new code may not be quite as optimal from a maintainability standpoint, due to the "hot path" that this code has (translation: extremely high-frequency invocation), making this code more 'direct' (even if a bit less legible) directly translated to a relatively major boost in performance -- and one that doesn't change the underlying results whatsoever, meaning the improvements made here will affect everyone!

Lastly, we've improved several aspects related to our "object validation/functional requirement checking" systems -- this handles things like ensuring that objects or zones are functional. We won't dive too deep into the weeds on this one, but suffice it to say that we uncovered several aspects of the system that were substantially slower than they should have been, bordering on egregious even, and much of this code was still nearly "original" from early in SimAirport's development. Suffice to say, after updating these systems and applying better paradigms we were able to make several areas of this system run quite a bit faster! :).

Besides these major systems, we've also fixed various issues as we encountered them across them - check out the full change-log below for all the details!

[h3]Results - An 18% Performance Improvement![/h3]
We've been able to improve performance by a whopping 18% -- and that's on a massive 14k+ PAX airport!!
A big thank you to Chick for letting us test on his save!

Check out the some of the detailed profiling results we've gathered; this screenshot displays the "before" vs "after" (a comparison between last default and today's default release):


If you'd like to know more about what, why or how we took care of profiling SimAirport, or if you want to understand the things we talked about a little deeper, then be sure to join us on Discord or join us on the upcoming live stream! :)

[h2]New Translation System[/h2]
As you may know, we "crowd-source" translations via you -- the community -- for both SimAirport and SimCasino. While this has been working really great for SimCasino, we've been using an older and antiquated system to handle collaboration by the community for SimAirport, a system that has been in place since the initial release of the SimAirport localization functionality, and which even predates the existence of the system. The new system is MUCH easier, though, and far more user-friendly -- and so we're now making the switch to Localizor for SimAirport, too!

We've been using Localizor on SimCasino since release - it's easy to use for everyone, and now both games can much more easily be translated into many more languages and further refinement/improvement to translations of already-supported languages can continue with far less friction than before.

If you'd like to help us translating SimAirport into your language be sure to check out SimAirport on Localizor - If you have any questions or need any assistance you can always let us know on our Steam Forums or join our Discord Server!

We've also taken a look at, and fixed, several issues related to translations, language-specific fonts, and fonts/text in general. Some fonts (e.g. the one used for Chinese) were not correctly displaying all characters - this is now fixed for all fonts! We also received and confirmed reports of some font-related issues when playing on Apple M1 systems, where only some text would be displayed while other parts were completely invisible - this has also been fixed!

[h2]Newly-Announced Upcoming Title![/h2]
Escape: The Endless Dogwatch is the next game from LVGameDev and is a project spearheaded by Michael. It's a new and unique genre for us, a point-and-click adventure set on a creepy ship where you, as the 2nd Officer, have to to uncover a secret that the Captain is hiding from you. Wishlist on Steam: Escape: The Endless Dogwatch

[h2]Final Words[/h2]
You may have noticed somewhat of a downtime from us the last few months, in terms of updates for SimAirport and SimCasino. To be honest, we've all been a little burned out to some extent, or at least close to it. To avoid burnout and stagnation, we have all been on vacation recently, and we've all spent some time working on various 'passion projects' to keep the fire alive (along with new game), all in an effort to continue keeping things fresh and fun. Also, some of you may know, Joscha is still in University -- so, in addition to working on SimAirport, that has added a bit of additional downtime as he (hopefully!) starts to wrap up his studies, too.

Luckily, working with ya'll is always a treat - whether on the forums, live-streams, email, or Discord -- we're always happy to chat and discuss how we can best improve SimAirport!

Be sure to check out Escape: The Endless Dogwatch and join our Discord server for some chatting!

Happy Summer (and/or Winter) To All - the LVGD Team

[h3]Changelog for the Hotfix of July 5th[/h3]
  • Disable LRT Sounds until we can either improve it or add a slider for it.
  • Fix text settings and make sure we're using the right font in all places.
  • Fix setting font in some places - we don't need to set the font, it should be correct from the get-go.
  • Fix setting objects constructionstate to finished twice when constructing using instant build which may have caused an issue where the AI would only chose one object instead of spreading out to several of the same type.
  • Update TMP package to fix texts going missing.
  • Fix mod closing mod status menu using ESC while mods are being downloaded causing the game to be stuck on paused.
  • Actually fix fonts being broken - I thought I had fixed this for Chinese and some other Languages but it appears it was still broken; Should now be fixed.
  • Fix some text being displayed all scrambled up due to using the wrong Font.
  • Fix deleting non-functional queue resulting in non-functional warning being left until reloading the save.


[h3]Full Change Log[/h3]
  • Prevent functional object updates from being calculated on threads which could have caused problems. Dev Note: It was probably fine and wouldn't be noticeable but this just makes sure nothing can break while not impacting performance :)
  • Improved performance of functional object checks.
  • Check up to 20 objects at once for whether or not they're functional (this will result in faster updates if e.g. the secure area is broken).
  • Fix PAX being spawned all at once causing a lag spike whenever a bus, LRT or plane unloads.
  • Various smaller code refactors to improve performance.
  • Improve runtime of some agent tasks.
  • Improve performance of updating agent positions (~3.5x faster on our tests, should result in a pretty good improvement overall).
  • Improve calls on (smart) objects.
  • Fix some objects/elements using the wrong font possibly causing some objects not to display text on M1 Macs.
  • Add a system to concurrently update agent movement.
  • Fix some texts not receiving the right font when switching language.
  • Add Radial menu for tools and UI (two separate ones); these are mostly for controllers but can be used on desktop to; On desktop they're setup for Mouse Button 4 and 5, if your mouse doesn't have any extra buttons check out the keybindings!
  • Theme hotkey bindings menu to be in the same look as the rest of the game.
  • Update steam integration libraries to prevent possible crash on launch and other inconsistencies with Steam.
  • Update translations from github.
  • Moved translations to localizor - update about this with a more detailed description to follow soon.
  • Fix issue where too many characters in one Font may cause an overflow and all further characters to only show up as rectangles.
  • Fix possible issue where pax don't go home after a flight was unable to land.