mirror of
https://gitlab.acidiclight.dev/sociallydistant/sociallydistant.git
synced 2025-01-22 09:31:47 -05:00
75c8b5432c
* Fix crash on lower screen resolutions when clicking on Terminal Mouse coordinates were not being scaled from screenspace into canvas space, resulting in a crash when clicking on the Terminal. Also add documentation for internal VirtualScreen implementation, and define dynamic properties for CanvasWidth and CanvasHeight in the UI system. Issue: #13 Signed-off-by: Ritchie Frodomar <alkalinethunder@gmail.com> * Remove old GuiService virtual screen and document IVirtualScreen Whoever wrote that old code was high, fuck... wait a minute... Signed-off-by: Ritchie Frodomar <alkalinethunder@gmail.com> * Fix various errors after emergency rebase * Remove Rider caches * Attempt to enable Wayland support * Add support for enabling/disabling Wayland support on Linux * Move SettingsManager to GameApplication so settings can be loaded before the game engine fully boots. * Test commit. Signed-off-by: Ritchie Frodomar <alkalinethunder@gmail.com> * Move Terminals to their own tile * Add support for getting CPU name on Windows via registry * Add support for disabling background blur * Fix window hints not being restored when switching between main tool tabs * Testing the DCO acknowledgement job Signed-off-by: Ritchie Frodomar <alkalinethunder@gmail.com>
67 lines
3.9 KiB
Markdown
Executable file
67 lines
3.9 KiB
Markdown
Executable file
# Socially Distant
|
|
Socially Distant is an up-coming hacking game following the story of a global ransomware attack disrupting a society forced into cyberspace by the spread of a deadly biological threat to humanity.
|
|
|
|
## Ritchie's Toolbox
|
|
This game is made using Ritchie's Toolbox, a defacto custom game engine built on top of a fork of MonoGame. We do not directly use the MonoGame Content Pipeline, instead we use AutoPipeline and some custom MSBuild targets to build the game's content. Most of the time, you shouldn't notice - but if you are adding content to the game, you should never directly interact with or commit the `Content.mgcb` file as it'll be wiped and overwritten by AutoPipeline.
|
|
|
|
## Building from source
|
|
Building Socially Distant from source is moderately simple.
|
|
|
|
### Pre-requisites
|
|
On all platforms, you should have the .NET 8 SDK and Steam installed.
|
|
|
|
You will need to add a NuGet package source for our MonoGame fork, otherwise `dotnet` will not download the correct version of MonoGame.
|
|
|
|
```bash
|
|
dotnet nuget add source -n monogame-socially-distant https://gitlab.acidiclight.dev/api/v4/projects/13/packages/nuget/index.json
|
|
```
|
|
|
|
You will need to add the source once for every device you build the game on. You can find the source code for our custom MonoGame fork over [on its GitLab group](https://gitlab.acidiclight.dev/monogame).
|
|
|
|
> :warning: **Shaders on non-Windows platforms**
|
|
>
|
|
> If you aren't building the game on Windows, you **will** run into build errors during shader compilation. This is because MonoGame currently uses the Direct3D shader compiler for initial shader compilation before transpiling to the target platform. Linux users will need to install Wine and run the `mgfxc-wine-setup.sh` script in the root of the repository, this will set up a Wine prefix with the necessary setup for shader compilation. For macOS users running Apple Silicon, you're on your own.
|
|
|
|
### How to build
|
|
1. Clone this repo, or fork and clone that.
|
|
2. Open the solution file at `src/sociallydistant.sln` in your .NET IDE
|
|
3. Build and run the `SociallyDistant` project.
|
|
|
|
Depending on your IDE/setup, you may need to run:
|
|
|
|
```bash
|
|
dotnet tool restore
|
|
```
|
|
|
|
in the repo root, and
|
|
|
|
```bash
|
|
dotnet restore
|
|
```
|
|
|
|
in the `src` directory. The first command installs any missing local .NET tools, and the second restores NuGet packages.
|
|
|
|
## We're accepting contributions!
|
|
Feel free to submit merge requests to the game. If merged, they will be shipped in the next Steam release of Socially Distant. For more info, see the `CONTRIBUTING.md` and `LICENSE` files in the repo root.
|
|
|
|
> :asterisk: **Note
|
|
>
|
|
>By contributing to the game, you agree to the Developer Certificate of Origin. You acknowledge that you own or otherwise have the permission to submit your contribution under the same license as the game's source code. To acknowledge the DCO, all commits must be signed off.
|
|
|
|
## Project structure
|
|
|
|
### Source code
|
|
All the important code lives under `src/`. In there, you will find:
|
|
|
|
- `SociallyDistant`: This is the main game application.
|
|
- `SociallyDistant.Framework`: This is the Socially Distant runtime, a library that the game itself and all mods must reference.
|
|
- `AcidicGUI`: This is the game's UI system, and the small part of Ritchie's Toolbox that actually exists despite not properly being named. This is subject to be moved to its own repo in the future.
|
|
|
|
### Third-party stuff
|
|
Some MonoGame extensions, such as IMGUI, are compiled from source as part of the game build. These are all found under the `vendor` folder.
|
|
|
|
### Game assets
|
|
All game assets are (and must be) placed in `src/SociallyDistant/Content`. This directory is managed by AutoPipeline and some custom MSBuild tasks.
|
|
|
|
## Continuous integration
|
|
Currently, CI/CD is set up for the Windows and Linux versions of the game. Windows builds are done on AppVeyor, while Linux builds are built locally on Ritchie's workstation.
|