Under Construction
Get Started

SDKs

Archmage generates the config models; the SDK loads the data into them. It readsatlas.json, loads every file listed there, resolves cross-table references, and hands you the generated ConfigAtlas.

LanguageInstallRepositoryDocumentation
C#dotnet add package Shadop.Archmagesdk-cs ↗C# SDK ↗
Gogo get shadop.dev/pkg/sdk-gosdk-go ↗Go SDK ↗

Unity

Install the package from OpenUPM:

openupm add dev.shadop.archmage

Or in the Package Manager window, +Add package from git URL:

https://github.com/shadowopera/sdk-cs.git?path=unity/dev.shadop.archmage

Adapters for Addressables, Resources and StreamingAssets are included, along with Inspector dropdowns for config ID fields.

Go

The package import path is shadop.dev/pkg/sdk-go/archmage.

Loading an atlas

Program.cscsharp
using Shadop.Archmage.Sdk;

// ConfigAtlas is generated by Archmage
var atlas = new ConfigAtlas();
Archmage.LoadAtlas("configs/atlas.json", "configs/", atlas);
main.gogo
atlas := conf.NewConfigAtlas()
err := archmage.LoadAtlas("atlas.json", "config", atlas,
    archmage.WithOverrideRoot("overrides"),
    archmage.WithWhitelist([]string{"item", "hero"}),
)
if err != nil {
    log.Fatal(err)
}

What the SDK gives you

  • I18n — multi-language text with automatic fallback
  • XRef — cross-table references, resolved at load time
  • Duration — nanosecond precision, compact JSON encoding
  • Whitelist / blacklist — load only the keys you need
  • Layered overrides — extra directories or filesystems merged in field by field

Need another language?

archmage enum already generates enum code for twelve languages, and the exported data is plain JSON — any language can read it. If you want a runtime library for yours, say so:

Start a discussion ↗