← All experimentsOpenForge logo

OpenForge

Taking a system apart to understand its rules.

By Satyajit PradhanUpdated RustTauriOpen source
Open source · MITExplore the source ↗
OpenForge / Trainer
Screenshot of the OpenForge Trainer window.

Game-specific controls, organised in one desktop application.

01 / Describe

A game manifest

Declarative TOML and RON describe the game and its controls.

02 / Implement

An engine adapter

Rust backends handle the parts that differ between engines.

03 / Present

One desktop home

A Tauri application brings the library, trainer, and mods together.

OpenForge is my open-source Windows desktop application for offline single-player game trainers and mods. I wanted the game library, its controls, and the code behind those controls to belong to the same tool. The actual screens above show that arrangement: select a game, then move between its trainer and mod options.

One application, different games

I built the interface with Tauri and TypeScript; Rust handles the engine-specific work underneath it. A game definition describes the features the interface should expose. TOML and RON files keep those definitions inspectable alongside the code.

That split is the part I find interesting. Adding a game should not mean designing another launcher. A game definition can describe the controls while an engine adapter deals with the mechanics that differ between titles.

From a control to its implementation

The screenshots show an example game workspace, including trainer controls and a separate Mods tab. They are captures from the repository, so the visible options belong to that recorded build. Supported games and features continue to live in the source.

I like being able to follow a button down into the system it changes. OpenForge is where I work on that in Rust, behind an interface I can use myself. That interest in understandable device capabilities also turns up in Aster.

Open the project

OpenForge is available under the MIT license. The repository includes the application, game definitions, engine architecture, and authoring documentation. It is built for offline single-player use.

Sources & further reading

What I built, and the history behind it, is my first-person account. The links above back up the product descriptions and implementation details.

Another question worth following?

Explore the workGet in touch

A good project often starts here.

Leave me
a what if.

All the places to find me ↗
To Satyajit

There’s an app I wish existed.

Tell me who would use it and what they are trying to do. A rough sketch is plenty to start with.

Talk to me on LinkedInLet’s follow the question.