Game Configuration Pack References

Game Configuration package is the main foundation for all games which will work with PGE: it's a set of game resources, item settings, and scripts. A Configuration pack includes item definitions, gameplay settings, game content, and other miscellaneous information.

Types of configuration packages
Configuration packages for PGE Project has two types: standalone and integrational.
 * Standalone configuration packages contain the full set of all necessary resources and doesn't require for any external programs and/or resource packs for the work of any component of PGE Project.
 * Integrational configuration package is a special type of configuration package that does re-using of resources from external program or a game. Those config packs has a smaller size, however, they are depend on the external software. Integrational config packs may have the special configure tool called as "configure.js" which is a helper to select the path to the target software and make something also, for example, copy additional files. A config pack for the SMBX2 project is an example of an integrational configuration package.

Structure
All configuration packs must use this tree structure:

Note: italic folders can be customized by main.ini config

/ - the config pack root directory
 * /data - config pack resources storage.
 * /graphics - generic graphics resources.
 * /characters - playable characters sprite resources.
 * /common - common engine graphics resoures (for example, logos, titles, design elements, etc.)
 * /level - graphics resources for levels.
 * /worldmap - graphics resources for world maps.
 * /music - music resource storage.
 * /sound - sound effects resource storage.
 * /tilesets - config pack wide tilesets storage.
 * /group_tilesets - config pack wide tilesets storage.
 * /characters - playable character calibrations.
 * /fonts - collection of in-game fonts (PGE Raster fonts, or TTF).
 * *.font.ini - raster font declaration files
 * *.png - raster font textures
 * *.ini - font maps for each texture, depends on a general settings *.font.ini file
 * *.ttf/*.odf/*.etc - TrueType vector fonts
 * /items - collection of individual item configs (not used when elements definitions are using nested style).
 * /backgrounds - collection of level backgrounds individual configs. (See the specification for entries).
 * /bgo - collection of level background objects individual configs. (See the specification for entries).
 * /blocks - collection of level blocks individual configs. (See the specification for entries).
 * /levels - collection of world map level entrance objects individual configs. (See the specification for entries).
 * /npc - collection of level NPCs individual configs. (See the specification for entries).
 * /paths - collection of world map path cells individual configs. (See the specification for entries).
 * /scenery - collection of world map scenery objects individual configs. (See the specification for entries).
 * /terrain - collection of world map terrain tiles individual configs. (See the specification for entries).
 * /script - Config pack lua scripts are programming the game.
 * /npcs - NPC-AI lua scripts.
 * /player - Playable characters lua scripts.
 * main.ini - main configuration pack description and settings.
 * engine.ini - main settings of game engine application.
 * configure.js - config pack configure tool (integrational configuration packages only).
 * music.ini - configuration and list of musics.
 * sounds.ini - configuration and list of sounds.
 * sound_roles.ini - association of buit-in sound roles with sound-ID's from sounds.ini.


 * rotation_table.ini - transformation rules which applies to items when rotating or flipping action was applied to them.
 * lvl_characters.ini - Playable characters list definition.


 * lvl_bgo.ini - definition of background objects for levels.
 * Single entry config - definition (or customization) of a single entry of background object for levels.


 * lvl_bkgrd.ini - definition of backgrounds for levels.
 * Single entry config - definition (or customization) of a single entry of background image for levels.


 * lvl_blocks.ini - definition of blocks for levels.
 * Single entry config - definition (or customization) of a single entry of block for levels.


 * lvl_effects.ini - Graphical effects list definition.
 * Single entry config - definition (or customization) of a single entry of effect for levels.


 * lvl_npc.ini - definition of non-playable characters for levels.
 * Single entry config - definition (or customization) of a single entry of a non-playable character for levels.


 * lvl_section.json - Extra settings for level sections (see Extra Settings JSON Layout for specification).
 * lvl_settings.json - Level-wide extra settings (see Extra Settings JSON Layout for specification).
 * global_block.json - Global extra settings for all types of level blocks (see Extra Settings JSON Layout for specification).
 * global_bgo.json - Global extra settings for all types of level background objects (see Extra Settings JSON Layout for specification).
 * global_npc.json - Global extra settings for all types of level NPC (see Extra Settings JSON Layout for specification).


 * wld_tiles.ini - World map terrain tiles list definition.
 * Single entry config - definition (or customization) of a single entry of a terrain tile for world maps.
 * wld_scenery.ini - World map scenery objects list definition.
 * Single entry config - definition (or customization) of a single entry of a scenery for world maps.
 * wld_paths.ini - World map path cells list definition.
 * Single entry config - definition (or customization) of a single entry of a path cell for world maps.
 * wld_levels.ini - World map level entrance objects list definition.
 * Single entry config - definition (or customization) of a single entry of a level entrance point for world maps.

Additional specs

 * Extra settings JSON Layout - additional JSON file format which decalres a GUI layout for extra settings of the element.