Game Package

brine edited this page Jul 30, 2015 · 4 revisions

All games in OCTGN are distributed through Game Definition packages (Also referred to as Game Definitions, Game Plugins, Game Defs). These packages provide all of the mandatory resources and information that OCTGN requires to operate the game, including gameplay and deck building.

Game definition packages use the OCTGN-recognized extension .nupkg or .o8g, but are actually just renamed .zip compressed files and can be "unzipped" by any archival application. OCTGN installs and manages games through what is known as Game Feeds (click the link for more information on feeds).

The o8build application bundled with OCTGN allows game developers to create their own game plugins, verify the compatibility of the definition, and compile a game package to be distributed.

Game Definition Structure

Game definitions must follow a precise file structure in order to be verified by o8build and accepted into OCTGN. Note that o8build is required to compile the zipped package properly -- a manually-built game package WILL NOT WORK IN OCTGN!

When designing your folder structure, keep in mind that only alphanumerical characters (a-z, A-Z, 0-9) and underscores are recommended for file/folder names. Special characters, especially spaces, are not recommended and may cause unpredictable results.

The following is the required folder structure for the game definition:

Root
├─ definition.xml
├─ {game resources}
└─ Sets                            
   └─ {SetName}                   * Each "set" gets its own uniquely-named folder with the below contents
      ├─ set.xml
      ├─ Markers                  * contains images for markers defined in the set.xml
      │  └─ {GUID}.{img}          * Marker images are named by their assigned GUID.
      ├─ Cards                    * contains images for cards defined in the set.xml
         ├─ {GUID}.{alt}.{img}    * Card images are name by their assigned GUID.
         └─ Crops                 * contains images of proxygen art crops for cards defined in the set.xml
            └─ {GUID}.{alt}.{img} * Card crop images are named by their assigned GUID.

NOTES:

  • definition.xml is the ONLY file allowed in the root folder. All other files should be placed within subfolders (marked in the structure as {game resources}. This includes all additional resources defined within definition.xml such as python scripts, images for Counters, Groups, table boards and backgrounds, and ProxyGenerator files.
  • set.xml is the ONLY file allowed in the {setName} subfolders.
  • {GUID} file names for images must match to the GUID of the card/marker in set.xml that the image belongs to; remove the curly brackets.
  • {alt} is used in the case of alternate cards, and should match the identifier name for the alternate card you want to link the image to. If the image is linked to the "default" card, or there are no alternates for the card, ignore this section of the filename (i.e. use {GUID}.{img}).
  • {img} file extensions represent any supported image file type (.jpg, .png, .bmp)

IMPORTANT: While it is possible to include card images in your game definition package, IT IS NOT RECOMMENDED as it makes the game package very large in size and is a concern with downloading. Only card images required by the game to function properly should be included in the game package -- image files belonging to cards in expandable sets/expansions should be bundled into Card Packages.

For further documentation on specific elements of the Game Definition, see:

  • definition.xml - defines the game properties
  • set.xml - defines the cards and/or markers contained within a set
  • Proxy Templates - Used by OCTGN to generate "Proxy" images of a card if is no image installed for that card
  • [Python Scripting Language](Scripting in Python) - The scripting language used by OCTGN to provide advanced scripting for gameplay