Skip to content

Repository files navigation

DoomForge

CI

A modern desktop launcher and mod manager for GZDoom — built with Flutter (UI) and Rust (core logic), bridged by flutter_rust_bridge.

  • Assemble mod loadouts, order them, and launch GZDoom (with crash monitoring).
  • Scan a mods folder, detect engines & IWADs (Steam/GOG), resolve conflicts, diagnose crashes.
  • Flat DOS/terminal-style UI: one dark theme, 6 accent colors, 11 UI languages, original pixel art.

Downloads

Grab the latest build from the GitHub Releases page.

Windows (x64):

  • DoomForge-Setup-<version>.exe — installer (Start-menu shortcut, optional desktop icon, uninstaller).
  • DoomForge-<version>-windows-x64.zip — portable; unzip and run doomforge.exe.

Linux / macOS: build from source (see below).

DoomForge only notifies you when a newer release exists and opens the release page — it does not self-update.

Project layout

doom-forge/
├── lib/                 Flutter app (Dart)
│   ├── main.dart          entry: inits the Rust bridge + app data dir + window
│   ├── app.dart           MaterialApp + theme wiring
│   ├── app_state.dart     state (provider) + settings persistence
│   ├── shell.dart         sidebar / F-bar shell + navigation
│   ├── theme/             flat dark theme tokens, 6 accent colors
│   ├── i18n/              11 language dictionaries
│   ├── widgets/           pixel-skull BrandMark + reusable flat controls
│   ├── views/             build · library · browse · compare · crash · status · settings
│   └── src/rust/          generated FRB bindings (do not edit by hand)
├── rust/                 Rust core (the launcher's brains)
│   ├── src/domain/         scan, engine, iwad, load order, profiles, launch, conflicts …
│   ├── src/services/       downloads (Freedoom/GZDoom/idgames) + Claude AI
│   └── src/api/            the flutter_rust_bridge API surface
├── rust_builder/         cargokit glue that builds `rust/` for each platform
├── windows/ linux/ macos/  Flutter desktop runners
└── pubspec.yaml

Nothing else — no Node, no web/mobile targets, no Tauri.

Prerequisites

  • Flutter SDK (stable, >= 3.44 — Dart >= 3.12.2) — includes Dart.
  • Rust (stable toolchain).
  • Windows: Visual Studio 2022+ with the “Desktop development with C++” workload plus the “C++ ATL for v143 build tools” component (required by flutter_secure_storage; without it the build fails with C1083: atlstr.h), and Developer Mode enabled (Settings → For developers, or run start ms-settings:developers). Developer Mode is required so Flutter can create the plugin symlinks.
  • Linux: clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev (+ unzip).

Run it

# 1. (Windows, one time) enable Developer Mode
start ms-settings:developers      # toggle "Developer Mode" ON

# 2. fetch Dart packages
flutter pub get

# 3. run the desktop app (debug)
flutter run -d windows            # or: -d linux / -d macos

That’s it — flutter run compiles the Rust crate automatically (via cargokit) and launches the app.

Build a release

flutter build windows             # or: linux / macos
# output: build/windows/x64/runner/Release/

# Windows installer (needs Inno Setup 6 — https://jrsoftware.org/isinfo.php):
iscc /DMyAppVersion=<version> installer\windows.iss
# output: dist/DoomForge-Setup-<version>.exe

Regenerating the Rust↔Dart bridge

Only needed if you change the Rust API in rust/src/api/:

cargo install flutter_rust_bridge_codegen --version 2.12.0 --locked   # must match the 2.12.0 pin in pubspec.yaml / rust/Cargo.toml
flutter_rust_bridge_codegen generate

License

MIT © DoomForge contributors.

Unofficial fan-made tool, not affiliated with id Software or ZeniMax. All artwork is original.

About

A modern desktop launcher and mod manager for GZDoom — built with Flutter (UI) and Rust (core logic), bridged by flutter_rust_bridge.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages