My Simulation is an experimental open source multiplayer game based upon The Sims Online. It attempts to mimic the original game as closely as possible while extending it with new features.
Find a file
Tony Bark 199256785b Port FSO's Server architecture
- FreeSO's older libaries use .NET Standard
- Added TargaImage, needs to be ported
2024-05-06 06:46:27 -04:00
.github/workflows Removed NioTSO client and server 2024-05-01 02:55:43 -04:00
.vscode Switched to Raylib 2024-04-29 03:04:46 -04:00
docs Added some resources from FreeSO 2024-05-05 12:38:19 -04:00
library Switched to Raylib 2024-04-29 03:04:46 -04:00
resources Port FSO's Server architecture 2024-05-06 06:46:27 -04:00
server Port FSO's Server architecture 2024-05-06 06:46:27 -04:00
src Floor rendering almost works 2024-05-04 06:34:53 -04:00
Tools Floor drawing function 2024-05-04 04:57:22 -04:00
.gitignore Updated server README 2024-05-01 03:50:54 -04:00
build.zig Floor rendering almost works 2024-05-04 06:34:53 -04:00
build.zig.zon Use personal point release fork of Raylib Zig 2024-05-04 22:59:47 -04:00
code_of_conduct.md Removed NioTSO client and server 2024-05-01 02:55:43 -04:00
LICENSE Added some resources from FreeSO 2024-05-05 12:38:19 -04:00
README.md Added some resources from FreeSO 2024-05-05 12:38:19 -04:00

My Simulation

My Simulation is intended to be an experimental reimplementation of The Sims Online written in Zig that's based on RayLab and NioTSO's C libraries. It uses FreeSO's API server for handling backend.

Motivation

Although an established reimplementation project already exists, it has excess legacy baggage due to it originally being based on .NET Framework 3.5 and XNA, causing plenty of performance issues and accessibility remains limited in its current form. (Trust me, I've tried). Meanwhile, NioTSO's foundation remains solid, even though it was never finished. The client perfectly simulates a loading screen, plus it can render Sims and objects flawlessly.

The problem is C is, well, C. ¯\_(ツ)_/¯ Accessing NioTSO's code in safer languages like Go or Rust has been historically difficult. While Zig is still in its infancy, the language's FFI is perfectly capable of directly accessing C headers without jumping through hoops. Making it well worth giving it a try. Although Zig itself has not yet hit 1.0, the RayLib game engine is mature.

Will this succeed? I have no idea. I'm not much of a game developer, but that hasn't stopped me from dreaming. Your help is most welcome. My goal is to at least create a successful lot server for endless P2P fun.

To do

  • Rewrite C++ header files

  • Communicate with FreeSO-based API server

  • Write Vitaboy renderer in Zig

Requirements

  • The Sims Online
  • Client
    • OpenGL
    • Zig 0.11 or newer
  • API Server

Getting Started

  1. Clone the Repository:

    git clone https://github.com/tonytins/mysimulation.git
    
  2. Navigate to the Repository:

    cd mysimulation
    
  3. Run the Examples: Execute the code examples using the Zig compiler. For instance:

    zig build run
    
  4. Experiment and Learn: Modify the code, try out different constructs, and see how Zig behaves.

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0). The full text of the license is available within the project repository, accessible through this provided link. Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.

Disclaimer

My Simulation is not in any way affiliated with Electronic Arts, Maxis or The Sims, it is an unofficial community run project