Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Archmage

Archmage

Archmage is a configuration solution for game development. It brings together specifications on how to structure config data, define fields, and fill in values; pipelines that export runtime data and generate strongly-typed code; multi-language SDKs for loading and accessing that data at runtime; and a collaborative editing workflow for teams.

Features

Define

You decide the layout of each set of config data and the data type of each field, as preferred.

  • Regular Table — standard table layout: config entries extend horizontally; fields extend vertically.
  • Property Sheet — presents fields as key–value pairs, designed for global configs such as feature toggles.
  • Index Table — selects which worksheets take part in the pipeline; useful for spreadsheet files containing multiple worksheets.
  • Tree-Structured Data — freeform nested data (YAML/JSON/...) for configs that do not fit neatly into rows and columns. When the structure satisfies certain criteria, Archmage treats it as a tree-backed regular table.
  • Virtual Table — allows several regular tables to act as a unified logical table.
  • Data Types — a rich, unified type system for config fields, including 50+ data types in 7 categories.
  • Enum Definition — backs enum field definitions, value filling, and typed code generation for 12 languages.

Fill In

A field's data type is not just a label. It comes with carefully designed fill-in settings that make data input easier.

  • Basic Types — the foundational types: integers, floating-point numbers, string, boolean, enum, datetime, duration, cross-table reference, localization, file path, and color.
  • Passive Types — require no manual input; values are derived automatically from references or context.
  • Compact Types — encode structured data into a single cell using a concise text format.
  • Multi-Column Types — span multiple columns to form a single logical field, with each column holding only one element.
  • Subtable Types — each defines an embedded subtable for each config entry within a regular table.
  • Behavior Types — act as functional directives that guide the processing carried out by the pipelines.
  • Non-Leaf Types — apply exclusively to [] or {} tree-structured data nodes, determining how Archmage processes these nodes and their children.

Export & Generate

Data export and code generation run as independent pipelines over the same config source.

  • Data Export — parses and validates config files and outputs the runtime data. A rich set of validation rules is available out of the box.
  • Code Generation — renders enum definitions and config structures into strongly-typed code emits a ConfigAtlas.
  • Filtering — decides, together with your build flags, which columns, rows, fields, entries, and nodes are included.
  • L10n Pipeline — collects localizable strings during export and aggregates them into files ready for translation.
  • Readability & AI — turns opaque numbers into text that is readable by humans and AI agents, alongside a schema describing every field.

Integrate

Since runtime data and generated config types originate from the same source, their structures naturally align. Once the data and the types are in place, you bring them together with a runtime SDK. The SDK parses each file using the corresponding config type, populates your ConfigAtlas, and resolves cross-table references. You can also set up a few global callbacks to make coding easier.

Leverage

Your game logic works with the ConfigAtlas. Every field is typed, and you enjoy the convenience built into the types, especially those the Archmage SDK provides. Take spell.Rune: it is a ref field, and spell.Rune.Ref gives you the rune's config entry directly, ready to use in your code. No ID lookup, no manual wiring.

Collaborate

  • Edit together live in Google Sheets — no file locks, no binary merge conflicts.
  • Those sheets are then pulled down into your repository as spreadsheet files, fitting into your team's existing version control workflow.

Supported input file types

  • Spreadsheets.xlsx, .xlsm, .csv
  • Tree-structured data.yaml or .yml, .json, .json5, .js, .toml, .xml

SDKs

About this repository

Archmage is closed source. This repository does not contain its source code.

Free and paid use

Archmage is free to download and use, and no license key is required. Free use is restricted. See Pricing for details.

License

Archmage is proprietary software. See LICENSE.