Interstellar Express (ISE)Adam L September 02, 2020
The successor to GlitterWorld Prime.
A mod for RimWorld, consisiting of two parts, The C# "client" which is the mod itself, and the backend written in Rust.
Not a single line of code from the original mod was re-used, the entire C# client was re-writtent to task advantage of C# Async and the new Tasks that were now available.
I also moved away from using RimWorld's built in trade dialog and created a fully custom one from scratch.
Using the drop pods was also removed and instead the items were "Materialised" using a new building to workaround a heap of issues with the drop pods especially when people made very large orders.
The new code also used a local database to store a cache of the server items which were signed by the server (known as a promise) which essentially made a guarantee that if you complete the transaction in the alloted time, the server would accept and process the trade regardless of what had changed in the real-time market data.
The client and server communicate using Protobufs over REST, a sort of partial gRPC implementation, but due to the broken Mono implementation used in Unity, a native gRPC client is not possible.
The backend uses Actix to host the API and Diesel to provide the ORM for a PostgreSQL database.
The server is still active and you can get the mod for RimWorld through the Steam Workshop.
Again, due to my total lack of interest in working with RimWorld or Unity due to their broken implementations or tedious workflows to write and debug mods, this is currently on an indefinite pause.
All the source is available here:
Both GWP and ISE still have an active friendly community on Discord