Saigai Solves is an exploration/puzzle game that focuses on educating players about natural disasters.
Saigai Solves is available for macOS, Windows, Linux, and webGL. The game is triggered to be rebuilt after commit to the remote repository through GitHub Actions. Visit the releases page to download and play the game for your preferred computer system.
To build the project from source, the following dependencies are required:
- Unity Editor (tested: 2022.3.30f1)
- Python (tested: 3.8.6)
- Rust (with Cargo) (tested: 1.77.2)
All tools are assumed to be found on your path can be called with their native name.
Additionally, to generate a .msi
installer file, the build machine must be running Windows, the build target must be win64
,
and the following software must be installed:
- Inno Setup (tested: 6.3.1)
Run the following command for your preferred platform:
python build.py <unity> <target> [iscc]
where:
<unity>
is the full path to the Unity Editor binary on your local file system
Examples:- MacOS:
/Applications/Unity/Hub/Editor/2022.3.30f1/Unity.app/Contents/MacOS/Unity
- Linux:
/Applications/Unity/Hub/Editor/2022.3.30f1/Unity.app/Contents/Linux/Unity
- Windows:
C:\Program Files\Unity\Hub\Editor\2022.3.30f1\Editor\Unity.exe
- MacOS:
<target>
is one of Unity's supported targets Examples:- MacOS:
osxuniversal
- Linux:
linux64
- Windows:
win64
- MacOS:
[iscc]
is the path to Isso Setup'sISCC.exe
compiler, i.e.C:\Program Files (x86)\Inno Setup 6\ISCC.exe
To build the installer on a Windows 64-bit computer with Unity installed to "C:\Program Files\Unity\Hub\Editor\2022.3.30f1\Editor\Unity.exe":
python build.py "C:\Program Files\Unity\Hub\Editor\2022.3.30f1\Editor\Unity.exe" "win64" "C:\Program Files (x86)\Inno Setup 6\ISCC.exe"
Saigai Solves's overarching goal is to educate players about natural disasters. This includes:
- How to prepare for a natural disaster (if possible)
- What to do when a natural disaster occurs
- How to recover from a natural disaster
To convey the information about natural disasters, Saigai Solves allows the user to traverse an overworld map and select one of multiple specially marked locations. Selecting a location will provide the user with a unique minigame tied to the location's context. Completing the minigame will reward the user with a Saigai Card, a cool collectible that provides informational tidbits about natural disasters and how to combat them.
Players can quickly recall natural disaster information from their collected Saigai Cards on the "gallery" screen, which is accessible from the game's start screen.
Each world focuses on one particular disaster. Before entering a world, players have the ability to select which disaster to play through. The following is our roadmap for disasters support:
Disaster | Status |
---|---|
Earthquake | In-progress |
Tsunami | Planned (DLC) |
Before working on the project for an extended period of time, be sure to do the following:
Note: All commands are ran from this README's directory in your local filesystem.
- Pull the latest changes from the remote repository (either using
git
command-line tool or GitHub Desktop):
git pull
- Rebuild the Rust dynamic library:
cd Rust; cargo run; cd ..
- Open the project in Unity (either using
Unity
command-line tool or Unity Editor).
Unity -projectPath .
Saigai Solves uses the Localization package from Unity to allow for translatable text throughout the game with the click of a button. For this project (and probably general use), follow these steps as a template for your game objects:
Note: This information will be updated as better organizaiton is demanded (creating new tables, etc.)
-
Window -> Asset Management -> Localization Tables. Create a new key and fill with corresponding information.
-
Select your text object and clear the "Text" field. Add a component "Localize String Event".
-
In "String Reference" select your key under the correct translation table. "Table Collection" should be the same table.
-
"Update String": Editor and Runtime; Text -> text; drag object from Hierarchy into dark gray field.
-
Hip Hip Hooray!!
Kelly Beaudrot, Joseph Benigno, Thet Ei, Gianna Giliberto, Thomas Le, Yi Min, Chase Ruskin