Oceans, land, rivers and trees are pre-defined by the engine. However, the rest including units, settlements, research topics, village structures amongst others are fully customizable in so-called bundles. This is the guide how to create custom scenarios.
To get started, download our sample containing all the necessary files to get started:
WARNING: If you dare to edit, please be aware that the config files are very sensitive when it comes to spaces. Do NOT add any extra spaces between variables and such:
In the bundle/* folder you will the bundle.config describing the global bundle properties and listing all the available scenarios (the ZIP-file from above contains 2 bundle.config; one for scenarios and one for the random map generator). The bundle configuration file determines what factions are in the game, as well as the locations of villages, harbors, bridges, farmlands and starting locations of units.
The template images in the same folder describe the overall map:
In addition, each scenario requires the following scenario images:
Each hex in the game is represented by 2×2 pixel blocks in the template and scenario images. Each pixel block is shifted one pixel down for every second column. A HEX-map with dimensions W x H will need images of size (2W) x (2H + 1) pixels. A map with dimensions 100×50 will need images of size 200×101 pixels. The +1 is required due to every second column being shifted 1px down.
In the bundle/module/* folder you will find all the specifications, sound effects, background music and graphics for units, buildings, faction banners and more. The module.config is the main entry point to reference all the files within that directory.
The specifications defined in module.config are shared for all the scenarios. Not all the nations listed there have to be used for the scenarios. However, the configuration file would need to be changed for more extensive mods. For example, with a bit of work, it would not be hard to change the game to represent a modern world. You need only the graphics and edit the module.config.