β¨Protocol v1
Experimental protocol idea. Read everything and the warning before inscribing.
Syntax details
All inscriptions must be valid JSON5
Game and avatar references are Inscription IDs. Not inscription numbers!
Supplies of players and loot are limited. Valid inscriptions are counted by inscription number to determine which one was inscribed first.
JSON keys must match exactly: Case sensitive. No spaces. Exact match!
JSON values (class and loot names) must match: Case insensitive. No spaces.
Boot new game
OG games define players and loot within a "game universe". OG assets are meant to be consumed by other onchain or offchain game designs. Take care on this step. Once the game is created it canβt be altered. Make sure to check all the numbers to ensure your players have enough loot. Also validate your JSON5.
Example for the first OG game, Wizords:
Breakdown of the commands:
p
string
Identifies Ord Game protocol
Y
v
string
Identifies the OG version number
Y
op
string
Boot operation. Creates new game.
Y
name
string
Name of your game. No restrictions.
Y
avatar
string
Logo/avatar. Reference by ordinal ID.
N
players
array
Player classes and supply (see table below)
N
loot
array
All loot details (see table below)
N
Both players and loot are optional. Create a game with both, or just loot, or just players.
Breakdown of the players array:
0
string
Defines player class name. Make up whatever groupings of players you wish.
Y
1
integer
Defines supply of this player class. You may make some more rare than others.
Y
Breakdown of the loot array:
0
string
Defines loot class (group of similar loot types) like βweaponβ or βarmorβ
Y
1
string
Defines specific loot objects like βswordβ or βknifeβ
Y
2
integer
Defines "power" of loot. Use any integer range to establish max and min within a class. You should think of loot objects in the same class as comparable but with different power levels.
Y
3
integer
Supply of each loot object that can be minted.
Y
About protocol versioning
OG versioning applies to game boot inscriptions. Each game and all it's operations will "run" on this version. The intention here is to maintain compatibility as our team, or other teams, try to extend the protocol. And avoid messiness and confusion (BRC, GRC, ORC...). Try to follow semantic versioning: If you break backwards compatibility then please increment the first digit. This approach is experimental and may simply not work. π€·ββοΈ
Version defines the version of the OG protocol you're inscribing with, not a version of your game, meaning boot commands are not upgradeable without declaring a new game (and that means all new assets). Boot games carefully.
Mint new player
This operation allows anyone to inscribe an ordinal that creates a new player for a specific game within the limits on the classes/supply set in the boot operation. An example:
Here is a breakdown of the commands:
p
string
Identifies Ord Games protocol
Y
game
string
Specifies game by inscription ID
Y
op
string
New player operation
Y
class
string
Class of player (must a match class defined in the game boot operation)
Y
name
string
Declares name of this specific player. No constraints, pick anything you like.
Y
avatar
string
Player avatar as inscription ID
N
You must reference the player class from the boot file exactly. For this reason you should choose simple, clear player class names.
Player name is a non-unique display name. These nams can be duplicates, contain spaces, etc. It is not suitable as a primary key.
Mint loot
This operation allows anyone to inscribe an ordinal that creates a new loot object for a specific game within the class/supply limits set in the boot operation.
Here is a breakdown of the commands:
p
string
Identifies Ord Game protocol to indexer or game builder
Y
game
string
Specific game by boot operation inscription number
Y
op
string
Mint loot operation
Y
class
string
Class of loot to mint (much match exact)
Y
loot
string
Name of loot to mint (much match exact)
Y
You must reference class and loot names exactly. For this reason game designers should choose simple, clear names.
Last updated