Island

Discover and explore wild islands!

View project onGitHub

Island Game Description

The player acts as the manager of an exploration raid. The raid is funded by a shipowner named Ephron Vestrit, who is a well renowned trader operating from a place called Bingtown (1). Ephron is negotiating an important contract with a customer for selling some resources at a very good price. In the meanwhile, he gives you the command of his best assets and mens to collect the needed resources, supposedly available on an unexplored island. The deal is simple:

  • You must be back in Bingtown before the end of the negotiation, or Ephron will loose credits and look like a fool;
  • You must take care of the assets provided by Ephron;
  • You must collect the asked resources so that Ephron can sell it to his customer (incomplete quantities will not be tolerated)

Context initialization

At the beginning of the game, you receive an assignment from Ephron, that is, the location of the island, the deadline of the deal, the number of mens available as support for this mission, the resources he intents to sell to his customer and the necessary information to start the aerial phase. This assignment is modeled as a JSON data structure (be careful, ordering is not relevant in JSON structure).

{ 
  "men": 12,
  "budget": 10000,
  "contracts": [
    { "amount": 600, "resource": "WOOD" },
    { "amount": 200, "resource": "GLASS" }
  ],
  "heading": "W"
}

In the previous example, Ephron is giving you 12 mens for this raid. You have 10,000 action points to spend at most in this raid, spending more will fail the deal. The assignment contains two contracts (Ephron will always give you at least one contract). You have to bring back from the island (i) 600 units of wood and (ii) 200 units of glass. For the aerial phase, you are initially facing west.

Obviously, exploring an unknown island is a risky business. Ephron do prefer the team to be safely back in Bingtown instead of missing in action. It might also happen that the island does not contain the resources he was expecting, or in too low quantities. In this case, the raid must give up and come back as soon as possible to inform him of the situation.

Biome geographical model

Islands are modeled according to non-stupid geographical choices. However the generator does not ensure to always produce valid island with respect to classical Earth standards. The map is covered by biomes, representing formation of plants and animals with consistent characteristics. In standard geography, biome repartition is modeled as a Whittaker diagrams. For a given location on Earth, a function of the average temperature and annual precipitation amount identifies the associated biome. The following figure (source) describes such a diagram:

The Island game model does not implement temperature and annual precipitation values. We mapped those values to (i) altitude for temperature (the higher you are, the colder it is) and (ii) humidity for annual precipitations. This is a gross approximation, but it is good enough for the map generator.

The available diagrams used by the engine are defined in its standard library: WhittakerDiagrams.scala

List of the 17 available biomes

For each biome, a short description and the code the game engine returns when you encounter such a biome on a map.

  • Common biomes:
    • Ocean (OCEAN): plain ocean, wide open area full of unknown;
    • Lake (LAKE): internal lake, potentially big, with freshwater;
    • Beach (BEACH): beach (not always sandy);
    • Grassland (GRASSLAND): area of prairie;
  • Tropical biomes:
    • Mangrove (MANGROVE): super wet area, home of the mangle tree;
    • Tropical rain forest (TROPICAL_RAIN_FOREST): hot and wet;
    • Tropical seasonal forest (TROPICAL_SEASONAL_FOREST): less wet, but not less hot;
  • Temperate biomes
    • Temperate deciduous forest (TEMPERATE_DECIDUOUS_FOREST): classical forests with trees that lose their leaves each year;
    • Temperate rain forest (TEMPERATE_RAIN_FOREST): very rare biome, very wet area coupled to low temperatures;
    • Temperate desert (TEMPERATE_DESERT): aride area with sparse vegetation and very few humidity;
  • Nordic / Mountain Biomes
    • Taiga (TAIGA ): boreal forest, cold and majestuous;
    • Snow (SNOW): area covered with snow, wet and cold;
    • Tundra (TUNDRA): arctic prairie, surviving on permanently frozen soil;
    • Alpine (ALPINE): rocky mountains, not always covered by snow;
    • Glacier (GLACIER): inhospitable area, full of ice;
  • Subtropical biomes
    • Shrubland (SHRUBLAND): prairie dominated by shrubs, such as maquis in Corsica or garrigue in Provence;
    • Subtropical desert (SUB_TROPICAL_DESERT) very dry and inhospitable area

The following picture gives an overview of the different biomes (sources)

Resource descriptions

The island contains primary resources, i.e., resources one can exploit from the biomes available on the island. The raiders can also craft manufactured resource using primary ones.

Primary resources

ResourceDescriptionProduced by
FISH fresh fish from water areas oceans and lakes
FLOWER different species of very rare aromatic flowers alpine, glacier and mangrove
FRUITS exotic fruits from tropical regions tropical forests
FUR obtained from games prairies and temperate rainforest
ORE mined resource alpine regions and deserts
QUARTZ silicium cristal beaches and deserts
SUGAR_CANE flavored plant with high economic value tropical forests
WOOD trunks and logs of solid wood mangroves and forests

Manufactured resources

Manufactured resources are produced on the campground, transforming the already collected resources into more valuable goods. It is important to notice that some of the manufactured resources recipes are not influenced by the number of mens in the raid (2). This is related to the limited resources associated to the crafting of such a manufactured resource. Ingots creation is limited by the capacity of the kiln available at the campground. Rum distilling is a time-consuming process, where the time given to the preparation is more important than the amount of workers.

ResourceDescriptionRecipe (subject to variations)
GLASS fine glass jewelry 10 quartz + 5 woods ~> 1 glass
INGOT standardized ingots 5 ores + 5 woods ~> 1 ingot
LEATHER high quality leather pieces 3 furs ~> 1 leather
PLANK materials for carpenters 1 wood ~> 4 planks
RUM world renowned beverage 10 sugar canes + 1 fruit ~> 1 rum

Notes

1: The background folklore is extracted from the awesome Liveship Traders Trilogy, by Robin Hobb. Without the dragons (at least at the beginning).

2: as well as you’ll not obtain a baby in one month by using 9 mens in the process.