Open source re-implementation of The Sims 2 in Unity
Find a file
2023-08-19 10:44:52 -04:00
.github/workflows Checkout correct PR repo when run with label 2023-02-02 19:29:24 -05:00
Assets Add ability to render multiple scenegraph resources to a single ScenegraphComponent 2023-08-19 10:44:52 -04:00
Packages Make unity materials from TXMT files. 2023-07-18 11:22:15 -04:00
ProjectSettings Add dirt terrain shader to included shaders 2023-08-03 01:13:19 -03:00
TestAssets Document more of the animation format 2023-08-14 12:34:01 -04:00
.gitattributes Add loading of terrain geometry 2023-02-15 19:27:10 -05:00
.gitignore Add parsing for scenegraph material definitions. 2023-07-15 11:34:48 -04:00
.vsconfig Initial Commit 2022-04-27 01:25:57 -03:00
config.example.json update json config to remove language as it's not used yet. 2022-10-22 01:37:08 -03:00
LICENSE.md License 2022-04-29 09:02:20 -03:00
packages.config Initial Commit 2022-04-27 01:25:57 -03:00
README.md screenshot in readme 2023-07-31 18:42:31 -03:00

OpenTS2

OpenTS2 is an Open-Source Reimplementation of The Sims 2, using the Unity game engine. Also aims to provide a number of modular libraries for working with TS2 formats in a C# environment.

Progress

Currently a basic main menu with a neighborhood chooser is implemented. Neighborhood info can be previewed and a basic neighborhood view can be accessed. image

Acknowledgements

Similar Projects

  • FreeSO - Open Source reimplementation of The Sims Online using C# and Monogame. OpenTS2 borrows a lot of code and structure from this project.
  • Las Marionetas - Similar project, aiming to reimplement The Sims 2 by reverse engineering its binary code into C/C++ source code.
  • SimUnity2 - Earlier attempt at a TS2 reimplementation in the Unity engine. Abandoned, succeeded by this project.
  • OpenTPW - Open Source reimplementation of Sim Theme Park / Theme Park World.
  • OpenRCT2 - Open Source reimplementation of Rollercoaster Tycoon 2.

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Development

Prerequisites

  • Unity 2020.3.32f1 - Can be found under "Unity 2020.x", you could also download the Unity Hub and install from there. Unity version is subject to change, please keep an eye on this!
  • Visual Studio 2019
  • A copy of The Sims 2 Ultimate Collection

Setup

  1. You need to have a "config.json" file in the root folder that provides paths to your Sims 2 UC installation and user directories. Copy the "config.example.json" file and rename it to "config.json" to start off, and type in your own paths.
  2. In Unity, make sure Edit > Preferences > External Tools > External Script Editor is set to Visual Studio. By default it opens files separately as opposed to in a solution.

Project Structure

We follow the layout of a normal Unity project except:

  • Assets/Scripts/OpenTS2 - Contains the bulk of the C# code that deals with TS2 formats and files.
  • Assets/Scripts/OpenTS2/Engine - Unity specific code tends to live in here to keep it separate from the more language-independent code in the directory.
  • Assets/Tests/OpenTS2/ - Unit tests following the same directory structure as the Scripts folder.

Testing

We currently use the Unity Test Runner for unit testing code. These tests can be run inside of unity through the test runner tab or if you use Rider as your C# editor, inside of it.