I wanna say this will be a short announcement, but you know the deal by now
Before anyone asks: I'll be in lurker mode and probably miss whatever everyone is writing still, anyone tagging me gets the sweet fat hammer up their arse to get kicked by whichever @Staff or @Owner is having a great day. You have been warned
Having that said, let's get into it.
TL;DR: I will remain inactive here for a while longer. The current devs will keep working on SPT-AKI and shape it as they see fit, while I'll work on the new project codenamed Yuki (雪). I won't share/release the source/compiled form until I think it's ready for the public.
For those that don't remember or weren't around here at the time, SPTarkov's rewrite was supposed to be project Aki, a C# rewrite of the server in which we could reuse a lot of code across the projects (server, modules, launcher). But when I realized how long it would take, SPT-AKI came to be as a stopgap solution; making modders more familiar with concepts like database patching, client module mods and more. To this extend, SPT-AKI has reached the goal. However, it was never designed to be maintainable, it just needed to do it's purpose that it was designed for.
In addition, over the years the purpose of the server changed drastically:
Just being able to run the game (polivilas emutarkov)
A custom singleplayer experience (jet 2019)
Implementing all possible eft features for singleplayer (senko's pub emutarkov)
在单机里实现所有的功能（senko's pub emutarkov）
A moddable custom singleplayer experience (sptarkov)
A modding framework (SPT-AKI)
The JS code of the project wasn't largely written for the current use. For a modding framework, you really don't need randomized bots or loot generation, flea market generation. Not having these features doesn't crash the game either, so it's in the end much better suited as a mod. It is fun to play with, absolutely, but the complexity of the functionality is AT LEAST a thousand additional lines of code each.
The biggest problem for me with the server is JS. Compared to C#, the tools are immature, the lack of enforcement of types makes it hard to maintain a project with (TS types is like plugging a kitchen sink with a sponge), lacks the power (multi-threading for example) a more mature language has. Most of the devs know C# much better than JS also.
Modders might not like C# as much as the devs do due to the increased learning curve, but I believe that on the long run the investment is worth it; we finally can have mods that can safely undo database changes and other people's mods, share the same tools we use across the project (lowering the entry to contribute overall) and get better documentation in return (yes, I am documenting everything I do now
) in addition to autocompletion and a clean code base to develop against.
While change isn't always fun, in our case the benefits heavily outweighs the disadvantages. I think that the project cannot grow (in quality, modding capabilities) without it.
In the past days of not being active here, I've been working on a C# http server capable of handling HTTP with a TLS secure connection. Or in human language: the core of a server that could communicate and process the game's requests. I've cleared the first and to me the hardest hurdle now, meaning that progress is far enough that I can start trying to work towards loading into the main menu of escape from tarkov.
I've laid the ground work for the initial beginning of the project. While it seems like nothing that it's not even capable of loading into the game yet, it is a huge step so far. It means that developing a primitive EFT server in C# on my own is doable within two weeks or so (aka loading into the main menu, loading into the raid, loading into hideout, changing locales, nothing else. No manipulation of the profile or game state of any kind).
(if you got a better 4-or-less characters safe-for-work name/acronym that doesn't include “tarkov” or other copyrighted material, im open for it!)