{"id":44100169,"url":"https://github.com/yggdrasil-au/remakeengine","last_synced_at":"2026-05-06T08:03:36.443Z","repository":{"id":321034326,"uuid":"1065740415","full_name":"yggdrasil-au/RemakeEngine","owner":"yggdrasil-au","description":"The Game Remake Engine","archived":false,"fork":false,"pushed_at":"2026-02-24T11:54:49.000Z","size":26191,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T16:46:23.322Z","etag":null,"topics":["game-development","remake-engine","reverse-engineering"],"latest_commit_sha":null,"homepage":"https://yggdrasil-au.github.io/RemakeEngineDocs/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yggdrasil-au.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":"CLA.md"}},"created_at":"2025-09-28T10:34:43.000Z","updated_at":"2026-02-24T11:53:41.000Z","dependencies_parsed_at":"2025-10-27T13:11:47.634Z","dependency_job_id":"774163cf-4928-4faa-a2b9-0102ed938a63","html_url":"https://github.com/yggdrasil-au/RemakeEngine","commit_stats":null,"previous_names":["yggdrasil-au/remakeengine"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/yggdrasil-au/RemakeEngine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yggdrasil-au%2FRemakeEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yggdrasil-au%2FRemakeEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yggdrasil-au%2FRemakeEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yggdrasil-au%2FRemakeEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yggdrasil-au","download_url":"https://codeload.github.com/yggdrasil-au/RemakeEngine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yggdrasil-au%2FRemakeEngine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29991312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game-development","remake-engine","reverse-engineering"],"created_at":"2026-02-08T14:09:51.634Z","updated_at":"2026-04-14T08:01:53.311Z","avatar_url":"https://github.com/yggdrasil-au.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Remake Engine\n\nRemake Engine is an extensible cross-platform orchestration engine for repeatable game workflows. It ships with a .NET 10 core (**EngineNet**) that can run through a command-line interface, a TUI, or an Avalonia-based GUI.\n\n## Key Features\n- Configuration-driven operations defined in JSON or TOML (`operations.json` / `operations.toml`).\n- Embedded Lua, JavaScript, and Python engines (heavily focused on Lua, with minimal JS/Python support) with shared SDK helpers plus built-in extract/convert actions.\n- Cross-platform GUI for \"run all\" and launch scenarios, alongside full TUI experiences for power users.\n- CLI execution of manifest-defined operations by exact name or numeric ID, plus a dedicated run-all flag.\n- Declarative placeholders that pull values from `project.json` to keep per-user paths out of manifests.\n- Tool orchestration for common pipelines (QuickBMS, FFmpeg, vgmstream, etc.).\n\n## Documentation\nProject docs live at \u003chttps://github.com/yggdrasil-au/RemakeEngineDocs\u003e with a web page \u003chttps://yggdrasil-au.github.io/RemakeEngineDocs/index.html\u003e\n\n## Getting Started\n\n### Prerequisites\n- [.NET SDK 10.0](https://dotnet.microsoft.com/en-us/download/dotnet/10.0)\n- git\n\n### Platform Support\n- **Primary Supported:** Windows x64 (`win-x64`)\n- **Target Support:** All Windows variants and Linux distributions (primarily `linux-x64`)\n- **Best-Effort:** macOS (`osx-arm64`) where available\n\nThe engine is developed and tested primarily on Windows x64. Cross-platform support is an active goal across all Windows and Linux targets, with macOS support provided where practical.\n\nModule support is separate from engine support. Individual game modules can have narrower platform support based on their scripts, external tools, and format pipelines.\n\n### Clone and Build\n```pwsh\ngit clone https://github.com/yggdrasil-au/RemakeEngine.git\ncd RemakeEngine\n\n# Build and run tests (solution-wide)\ndotnet build RemakeEngine.slnx -c Debug\ndotnet test Unit.Tests/EngineNet.Tests.csproj -c Debug --no-build --logger \"trx;LogFileName=test_results.trx\"\n```\n\n### Run the Engine using one of the three UX options\n```pwsh\n# Default entry point (auto-selects GUI when no CLI args are supplied)\ndotnet run -c Release --framework net10.0 --project EngineNet\n\n# Use GUI or interactive CLI (TUI)\ndotnet run -c Release --project EngineNet --framework net10.0 -- --gui\ndotnet run -c Release --project EngineNet --framework net10.0 -- --tui\n\n# CLI example, great for direct operation invocations\ndotnet run -c Release --project EngineNet --framework net10.0 -- --game_module \"EngineApps/Games/demo\" --script_type lua --script \"{{Game_Root}}/scripts/lua_feature_demo.lua\"\n\n# Run a manifest-defined operation by ID or name\ndotnet run -c Release --project EngineNet --framework net10.0 -- --game_module \"demo\" --run_op 1\ndotnet run -c Release --project EngineNet --framework net10.0 -- --game_module \"demo\" --run_op \"Lua Feature Showcase\"\n\n# Registered module IDs are also accepted for module resolution\ndotnet run -c Release --project EngineNet --framework net10.0 -- --game_module 480 --run_op 1\n\n# Run the module's configured run-all sequence\ndotnet run -c Release --project EngineNet --framework net10.0 -- --game_module \"demo\" --run_all\n```\n\n### Quick Demo Run\nRun the demo module’s Lua feature script with arguments as used for development validation:\n```pwsh\ndotnet run -c Release --project EngineNet --framework net10.0 -- \\\n  --game_module \"./EngineApps/Games/demo\" \\\n  --script_type lua \\\n  --script \"{{Game_Root}}/scripts/lua_feature_demo.lua\" \\\n  --args \"[\\\"--module\\\", \\\"EngineApps/Games/demo\\\", \\\"--scratch\\\", \\\"EngineApps/Games/demo/TMP/lua-demo\\\", \\\"--note\\\", \\\"Hello from the Lua demo\\\"]\"\n```\n\n## Continuous Integration \u0026 Releases\nGitHub Actions workflows in `.github/workflows/` keep pull requests, SonarCloud analysis, and tagged releases healthy:\n\n| Workflow | Trigger | What it runs |\n| --- | --- | --- |\n| `build.yml` | Pushes to `main`, PRs | Windows build with SonarCloud analysis using the runner-hosted scanner cache. |\n| `global-release.yml` | Tags matching `v*`, manual dispatch | Matrix builds/tests on Windows, macOS, and Linux across Debug/Release, then publishes self-contained artifacts for `win-x64`, `linux-x64`, and `osx-arm64` and attaches them to a GitHub Release. |\n| `on commit -- Win64 Build.yml` | Tags matching `win-v*`, manual dispatch | Windows-only Debug/Release build + test followed by a packaged `win-x64` release artifact. |\n\nRun `dotnet build RemakeEngine.slnx` and `dotnet test RemakeEngine.slnx --nologo` locally before opening a PR so the CI checks stay green. To cut a multi-platform release, push a tag like `v2.5.0`; for a Windows-only drop use `win-v2.5.0`. The workflows create the release entry and upload the zipped outputs automatically.\n\n## Interfaces\n* **Simple GUI (Avalonia):** end-user focused entry point to run predefined operations and launch games.\n* **Interactive TUI:** menu-driven experience that lists games, collects prompts, and streams output.\n* **Developer CLI:** direct command invocation for automation or module authoring. It supports both ad-hoc inline execution and manifest-defined operations selected by name or ID, and it can resolve registered modules by name, ID, or path.\n\n## Configuration and Modules\n* `EngineApps/Games/\u003cGameName\u003e/operations.(json|toml)` define operations for a game/module. Groups inside these files control execution ordering.\n* `EngineApps/Games/\u003cGameName\u003e/config.toml` can supply placeholder values consumed by scripts and built-in actions.\n* `project.json` (auto-created on first run if missing) stores per-user settings such as project paths and tool overrides.\n* `Tools/` contains shared binaries or helper scripts. Module manifests declare dependencies that the engine can download via `ToolsDownloader`.\n\nSchemas and documentation are included to help author and validate manifests in editors:\n* `schemas/operations.toml.md` — comprehensive guide for operations files, explaining prompts, placeholders, and operation dependencies\n* `schemas/operations.schema.json` — operations files (JSON)\n* `schemas/config.schema.json` — engine configuration\n* `schemas/game.schema.json` — game/module metadata\n* `schemas/tools.schema.json` — tools manifests\n\nManifest placeholders follow `{{PlaceholderName}}` syntax and are resolved with data from the engine config, module metadata, and TOML placeholder tables.\n\n## Repository Layout\n```text\nRemakeEngine/\n  EngineApps/                 # Game modules and Registries\n    Games/                    # Game modules\n      demo/                   # Demo game module\n        operations.toml       # Sample operations manifest\n        config.toml           # Sample per-module config\n    Registries/               # Module, Tool, and Operation registries\n      Modules/                # Module manifests\n      Tools/                  # Tool dependency definitions\n      ops/                    # Internal operation definitions for built-in actions (eg git download of Modules)\n  EngineNet/                  # C# core engine and CLI entry point\n    source/Shared/            # Reusable serialization helpers and shared engine utilities\n  schemas/                    # JSON schemas\n  RemakeEngine.slnx           # Solution\n```\n\n## Where To Look Next\n- [EngineNet/readme.md](EngineNet/readme.md) for the .NET entry point and project layout.\n- [EngineNet/source/Core/readme.md](EngineNet/source/Core/readme.md) for engine runtime responsibilities.\n- [EngineNet/source/Shared/readme.md](EngineNet/source/Shared/readme.md) for reusable serialization helpers shared by Core and ScriptEngines.\n- [EngineNet/source/Interface/readme.md](EngineNet/source/Interface/readme.md) for GUI/TUI/CLI behavior.\n- [EngineNet/source/ScriptEngines/Readme.md](EngineNet/source/ScriptEngines/Readme.md) for embedded and external script runtimes.\n- [schemas/operations.toml.md](schemas/operations.toml.md) for the operations manifest guide.\n\n## Contributing\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines, coding standards, and release workflows. When modifying the engine, update the matching schemas in [schemas/](schemas/) and public docs in [RemakeEngineDocs](https://github.com/yggdrasil-au/RemakeEngineDocs).\n\n## Module Licensing Policy\n\nRemakeEngine is licensed under Apache 2.0 and may be used freely, including for commercial projects.\n\nHowever, modules that target copyrighted games or other proprietary media must respect our **Non-Commercial Module Policy**:\n\n* To be listed as an officially supported module, the module must use a custom Non-Commercial License.\n* Modules under OSI-approved commercial-use licenses will not be listed in the official registry **if they target protected media** unless they prove they are legally permitted to do so.\n\nSee LICENSE_MODULE_TEMPLATE.md for the recommended license text.\n\n## License \u0026 Legal\napache-2.0 for the engine core and all code in this repository, but modules must use a custom non-commercial license if they target protected media.\nSee [LICENCE](LICENCE)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyggdrasil-au%2Fremakeengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyggdrasil-au%2Fremakeengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyggdrasil-au%2Fremakeengine/lists"}