Upcoming 1.2 Update and Catch Up
5 months ago
Firstly it has been a while since the last devlog, work is keeping me busy but I'm doing what I can still on STKP. There have been a large number of changes since the last development log so I'll try and get everything summarised best I can!
I'm going to quickly address a recurring thread before digging into the changes, performance;
This seems to come up a LOT, so I want to explain a few things. Similar apps to STKP all run in a similar fashion, the app collects data from your sim, ships it off to server(s) elsewhere and you get your output from essentially a website. Most of the processing of the sim data is done on those servers.
STKP doesn't work like that. All of the processing is done locally, there are a few services that run on servers for providing upto date information and keeping essentially a backup of your data, but everything on STKP is local first. Because of this there is naturally an overhead locally that isn't present in similar apps. This can vary based on your hardware and some users may experience more issues than others. I'm doing what I can to optimise the codebase to improve performance with each update.
Why is STKP written this way? Well it would be easy for me to rewrite it to be more remote focused but that adds problems with server availability and drastically increases the running cost of the project. It wouldn't be viable at this point to switch to a remote first system for that reason. The current running costs of the remote parts of STKP are wholly covered by Patreon supporters meaning I can continue to grow the project and continue to offer everything for free.
Features that you will pay for elsewhere are free here for this reason, at the cost of slightly increased overhead of running the STKP app. It also means that should there be an outage of any kind, either STKP servers or local internet issues, your flight will continue to be tracked, you can fly with STKP fully offline with only slightly reduced features.
I hope that answers some of the questions you may have had on performance and hopefully addresses why STKP is "doing more" with your local PC resources.
There have been a large number of changes to the app since the last update including a visual overhaul to modernise the UI significantly, but most of the changes have been invisible. Time to have a bit of a dig into the app itself.
SimToolkitPro runs on Electron which is essentially a chromium browser with desktop capability. It runs in 2 threads primarily, a main thread and a renderer thread. The renderer thread is what draws the app itself. Most of the most recent updates have been to move STKP's main logic into the main thread, the reason being when large bits of processing are done it could cause the renderer thread to "hang" this would produce the occasional stutters. Moving this logic to the main thread will remove these stutters.
It hasn't been without its issues, the occasional JS errors that have now been sorted were one of the issues that cropped up, and overall it has been a net improvement in performance.
A number of builds have been discontinued as a result of incompatibility with certain features, currently there are only plans to continue with Windows, Linux and Mac 64 bit builds. Regarding Apple's M(x) chips I don't have access to them to provide builds. It's something I might look into with in the future if I manage to acquire a more modern Mac. It's likely possible to do builds using Github Actions which is used for each release but being unable to test these builds makes it a less viable solution. If you have access to M1/M2 hardware and would be interested in testing a build out, let me know with a DM on Discord and I'll see if I can get a build created for testing.
STKP is now running across 4 servers of varying hardware, and an S3 style storage system for screenshots, talking of screenshots we are upto 181K screenshots now across all users. Most of the services are shared across 2 servers and the others provide backup redundancy to those. The new API which will be addressed below, is being used to good effect to reduce the overhead of the server calls and overall improve the performance of the app and the services used.
STKP uses 2 APIs, the newer API is planned destination for all the old routes, but this is an incremental process. A lot has already been moved over but I'm hoping to have everything using the new API by the end of the year.
Network traffic is now provided by this API along with NAT data and several other data points used in the app, all with the idea of removing workload from the local app itself without moving too far from the "local first" approach.
If anyone has specific questions about STKP I'm open to answer them in DMs, I can't provide support in DMs because, well thats a very slippery slope as we are over 90k users now!
Thanks for taking the time to check out this devlog and hopefully it gives a bit more of an insight into what goes on behind the scenes. Improvements are coming and there are some plans for the near future that will help out users still struggling with issues.