Design Goals of DSL Forge

DSL Forge is designed to provide an extensible, modular, collaborative scripting system for Unity projects.

Modularity

Game logic often includes complex tasks, branching dialogues, event triggers, and numerical calculations. If all of that is hard-coded into a single monolithic script, it's extremely hard to maintain or update.

DSL Forge embraces modularity by letting you split complex logic into small, reusable script units. Each flow is an independent module that can be developed, tested, and combined with others.

This enables:

  • Team members to work in parallel

  • Reusing logic across levels and scenes

  • Easier maintenance and updates late in the project


Designer-Friendly

Traditional C# scripting is intimidating for non-programmers. Even small changes require asking a programmer to edit code and rebuild.

DSL Forge is designed to be accessible for non-programmers to author and edit game behavior.

It supports:

  • Plain-text scripts that designers can edit in any text editor

  • Visual node-based editor for drag-and-drop flow building

  • Built-in command encyclopedia to avoid typos

  • Version-control-friendly asset formats

This puts quest logic, dialogue branching, and event scripting truly in the designers’ hands.


Data-Driven

A common problem in game development is hard-coded logic. Even minor design changes require code edits, recompiling, and repackaging, slowing iteration.

DSL Forge is built around a data-driven approach: logic isn't in code; it's stored as editable data.

Benefits include:

  • Designers can adjust content without code changes

  • Version control systems can easily track logic updates

  • Logic can be hot-loaded or updated at runtime

  • Enables modding systems and user-generated content


Easy to Extend

Every game project is unique, and no built-in command set can cover every need. DSL Forge is designed to be easy to extend:

  • The command system is modular and plugin-friendly

  • Developers can add custom commands with minimal effort

  • Plugins can be maintained and versioned independently

  • Editor integrations can automatically generate command encyclopedias

This lets teams build their own command libraries to suit their project's needs.

Last updated