Skip to content
Tony Bark edited this page May 3, 2024 · 4 revisions

Welcome to the My Simulation Frequently Asked Questions (FAQ) page!

Why not just refactor FreeSO's code base?

Refactoring FreeSO's code base has been attempted multiple times in the past. However, FreeSO's code is complex and monolithic, making it challenging to refactor. Additionally, it has numerous dependencies tied to Windows, which may not be the primary desktop environment for some developers. Despite providing instructions for setting up servers and building clients, the actual code documentation is sparse. Furthermore, there is limited acknowledgment or support for other servers within the project, raising concerns about its openness. Moreover, the frequency of news and updates for the project has decreased over time.

Does My Simulation plan to be compatible with FreeSO?

My Simulation aims to achieve a degree of compatibility with FreeSO. It will utilize FreeSO's API and publicly documented Data Definitions, along with the available source code as a reference. However, achieving gameplay-level compatibility with a FreeSO-compatible server is challenging due to the tight integration of the game's AI with both the client and server implementations. As such, complete compatibility may be difficult, if not impossible, to achieve.

Why NioTSO?

Despite being abandoned, NioTSO's codebase has been thoroughly tested during its active phase and is known for its solidity. Everything renders and functions as expected. Porting it to Zig is considered feasible due to the developer's past familiarity with the codebase.

How far did NioTSO get?

NioTSO made significant progress, primarily focusing on core libraries and tools for understanding the game's file interactions. However, development halted at the loading screen for the client, with work on the user interface being a major sticking point. Despite this, the core libraries are essentially complete, and the tools developed provide invaluable insights into the game's workings. This foundational work lays the groundwork for the potential of My Simulation to succeed.

But doesn't FreeSO have similar tools?

FreeSO does have tools that were partially inspired by NioTSO research. However, FreeSO's implementation is tied to the Windows-only .NET Framework and XNA (now Monogame), limiting its cross-platform capabilities. Although the server and engine migrated to the more modern and cross-platform .NET Core-based platform, the tools remained unchanged, as there was no immediate need for them to be updated.

Why not use Rust?

While Rust is a mature and stable language, its memory management system can be challenging to work with. Borrowing checking without garbage collection can lead to headaches, despite the simplicity of unwrapping. While Rust is a good language, its rough edges in memory management make it less preferable for this project.

What makes Zig special?

Zig's direct access to C, integrated into the language itself, sets it apart. This feature allows for seamless integration with existing C libraries, translating into native functions at compile time. Unlike Rust, Zig can access C without sacrificing safety.

If you're not a game developer, why are you trying?

The desire to become a game developer, coupled with a deep passion for The Sims Online, serves as the primary motivation. Nothing drives the developer more than the aspiration to recreate and innovate within the realm of The Sims Online.