Building Scenarios

This page is of interest for those who plan to create scenarios to be used in the Almansur Browser game. It refers to Almansur 2.2.1 formats.

Historical (and other non-dynamic) Scenarios in Almansur are defined by a set of .csv files, describing the entities that make up the scenario, like the Lands, the Terrain, etc. Those files should be put inside a directory and zipped. The structure of each file is always the same. There is a first line with the names of the fields, one in each column (which can be in any order), and then one or more lines with the data. The main files are:

game.csv
Describes global information about the game. It has just a line with the fields names and another single line, with the values. Its fields are:


 * name: Scenario name
 * start_year: Integer
 * start_month: 1 to 12
 * max_turns: If the scenario has a fixed number of turns (months), here are the number of turns
 * resource_multiplier: initial resources for each Land type, 1 for normal, 0.5 for half the amount, etc
 * army_multiplier: initial army for each Land type, 1 for normal, 0.5 for half the amount, etc
 * simple: Should be always 1
 * description: A description of the scenario as it will appear to the players. All commas "," in the text should be substituted by ";" due to parsing of the csv file.
 * historical: 0 or 1
 * handicap: factor of the difference between initial Victory Points of the biggest land that should be given to the weaker lands; should be 1 for a fairer game.
 * manual_turns: 0 or 1
 * auto_turns: 0 or 1
 * symmetric: normally should be 0, unless the scenario is to be a duel where each player is almost exactly in the same situation (that is, the map is symmetric).

lands.csv
Describes each land. It has a first line with the field names and then one line per land present in the scenario. The fields are:


 * name: Land name
 * order: Order it should appear for player choosing. 1 should be the first land available, 2, the second, and so on. It is usually good to balance between two sides of competing alliances, for example, so there is no risk that the game starts with only players from one side.
 * difficulty: 1 to 3. Difficulty in playing the Land. 1 = Land is suitable for beginning players, 2 = Land needs a experienced player, 3 = Land is a Alliance Leader or a very hard land to play.
 * title: Title of the (male) ruler of the land. It must match a title in the database.
 * type: Land Type. It must match a type in the Database.
 * race: Race or Culture of the ruling class. It must match a race in the Database.
 * capital: hhxvv, where hh are the horizontal coordinates and vv the vertical coordinates of the capital of the Land. The indicated territory must exist and belong to the Land.
 * default_army: multiplication factor for the initial default army (defined by the type and race). 0 means it has no initial army.
 * description: A description of the Land as it will appear to the players. All commas "," in the text should be substituted by ";" due to parsing of the csv file.
 * alliance: name of the alliance (if any) the Land belongs to.

territories.csv
This is usually the bigger file. Besides the line with the field names, it has a line for each territory in the game. In historical scenarios, territories are usually 50km from hexcenter to hexcenter. It can have a lot of fields, and we will use < > to indicate the field name could be one of several names, and several fields can exist of that kind. The fields are:


 * x : horizontal Coordinate; it will be translated to a alphabetic coordinate in the game map 0 = "AA", 1 = "AB", etc
 * y : vertical Coordinate; it is necessary to take care because in a hexagonal grid the vertical coordinates are not aligned. The norm in Almansur is that Vertical coordinates are pulled "up" when the Horizontal coordinate is odd, and "down" when the Horizontal coordinate is even.
 * name : Optional field. If the name is empty, the system builds the name from the coordinates.
 * movclass : L for Land, S for Sea
 * pename : Empty for uncontrolled territories, or the name of the Land that controls it.
 * altitude : Median altitude in meters
 * relief : 0-0.99 relief factor. 0 = absolutely plane, 0.99 = Practically Impassable
 * swampness : 0-1 swampness factor. Represents existence of Marshes and other bodies of low water low altitude Territories with large rivers should have a moderate (up to 0.5) factor. It slows down cavalry
 * fertility : 0-1 fertility factor. 0 = Desert, 1 = extremely fertile
 * : Each field of this type should correspond to a natural resource. Possible names are: horses (it means wild horses),trees,gold,iron,stone,fish. Possible names are 0-1.
 * : Each field of this type should correspond to a race/culture that inhabits the territory. The race must exist in the database. Example names are christian_free,christian_noble,christian_slave, muwallad_free,muwallad_noble. The values are the number of population of the respective race/culture
 * city_name: Name of the main city of the territory (even if it is not built at scenario start)
 * fortress_name: Leave empty unless that is a fortress which is more important than any city.
 *  Each field of this type should correspond to a facility type. Possible names are city,ironworks,roads,port,farm,fortress,mine_gold,mine_iron,lumber_mill,church,mosque. the value is the level of that facility in the territory.