karashiiro / Simulacrum

Video shimdeo
GNU Affero General Public License v3.0
5 stars 0 forks source link

Simulacrum

Video shmideo

Usage

Don't

Developing

This section is a work in progress

Use Corepack, it's just corepack enable

NUKE

Simulacrum uses NUKE as a build script manager. It is strongly recommended to install the global tool when developing Simulacrum.

Run nuke Compile to build the project.

Run nuke YarnInstall (or yarn install) to install the Node.js package dependencies.

Running nuke YarnDev (or yarn dev, or turbo dev, if you have the appropriate tools installed already) will run the development servers.

Running nuke YarnTest (or yarn test, or turbo test) will run tests for all workspace packages.

Repository structure

All project components are stored in the src directory. Their purposes are listed below:

simulacrum-cloud-api: The WebSocket API.
simulacrum-cloud-aws-cdk: IaC for provisioning AWS resources.
simulacrum-cloud-aws-local: Docker Compose things for AWS development.
simulacrum-cloud-diagrams: Solution architecture diagrams.
simulacrum-dalamud-*: Dalamud plugin-related projects.

FFmpeg

Simulacrum relies on FFmpeg for AV-decoding. If you are modifying the native libraries, make sure you have the FFmpeg development files installed.

If you use vcpkg, the dependencies can be installed with vcpkg install ffmpeg[all] --triplet x64-windows.

The plugin should always be built for the x64 platform, to match the game itself.

Backend

The backend is built in Nest on AWS, using Node-based tooling.

Backend components will have self-hosted equivalents written after the initial version is done. The AWS backend will represent a reference architecture that can be refactored and simplified for more constrained environments.

Architecture diagram

Architecture diagram