// readme

schema

Schema. The data language for games.

Schema is a data language where you define your constants, enums, flags, types and tables for your game, then from this one definition, it generates code in multiple languages: C, C++, C#, Dart, Elixir, Go, Java, JavaScript, Lua and Rust.

Schema is currently under active development. See ROADMAP.md for details.

If this work helps you, please support it.

Design

Schema is designed to support the following use-cases in game development:

  • Packets sent between a client and server.
  • Messages sent between your server and backend.
  • Asset file formats and recursive data structures.
  • Save game files that must load in a future game build.
  • Game assets cooked to an efficient runtime binary format.
  • Render data written in one language and read in another - sixty times per-second.

Example

package example

const MaxHealth = 1000

enum ShipType { Fighter, Corvette, Bomber }

flags ShipFlags { Firing, Thrusting, Disabled }

type Vec3
{
    x float64
    y float64
    z float64
}

type Quaternion
{
    xโ€ฆ