Jump to content

Oppidum / Two Streams, procedural map with celtic scripted enemy


Recommended Posts

This thread will be used to document the development of the new mapgeneration script that should become a proper successor of Danubius and Jebel Barkal, i.e. a procedurally generated scenario map for arbitrary amounts of players, mapsizes with a scripted opposing city with fortifications depending on a difficulty setting.

The theme of the map are the forests of Gaul, the opposing enemy village is an Oppidum again.

Map Design

The design is the most decisive step during feature development. I start with the terrain design and show how it shapes gameplay.



Design can also be the most enjoyable task of the development process if one knows what can actually be implemented, with which effort and with which results exactly. If every implementation detail that one might face is known during the design stage, the only thing left to do for the implementation is keypresses. Not so if the feature designer didn't know about what can be implemented realistically and the implementation guy has to do what the design guy was missing; anyway.


Since the primary aim is to create a better map than Jebel Barkal, I first analyzed what made Jebel Barkal a success.

You might want to take a look at the Jebel Barkal - Illustrated Walkthrough in case you are not familiar with this map yet.

The below sketch displays:

  • red: fights (location where fights occur frequently)
  • green: trade (location where fights rarely occur, that are safe for women and trade carts)
  • blue: expansion (locations that are feasible to build new bases at or expand the current base progessively)
  • white: barriers (here irrigation canals that allows quick and effective walls)


We record and evaluate the observations about the map design:

  • Most maps are circularly symmetrical, which makes them one-dimensional and so the gameplay becomes one-dimensional as well.
  • Most maps consist of a random composition of natural resources, trees, lakes and hills. This means there is no information, no meaning, in the terrain, no essence, nothing shaped by man, no points of interest.
  • On Jebel Barkal, there are four distinct areas with a unqiue biome and different meanings / use cases for players to reside there.
    1. Water: Low Risk / High Reward
      1. Fish is faster income than fields
      2. Collect wood remotely in a safe location
      3. Transporting siege engines quickly and directly to the enemy base
      4. Survival on the water after being wiped out on the land
    2. Fertile Land Low-Risk/Low-Reward:
      1. The only location with feasible amounts of wood, even abundance
      2. Farthest distance to the opposing city
      3. Irrigation canals allow easy walling.
      4. Allies very close by to help out quickly and effectively.
      5. No mines and few space to build, one has to build up trade or expand.
    3. Desert: High-Risk/High-Reward
      1. Very attractive as mines occur in abundance and other places don't have mines at all
      2. Very unattractive because the occupying units are dislocated, there are no natural barriers, no wood, no neighbors. So the location is an easy target for the opposing city, hard to defend and maintain.
    4. Hill: High-Risk/High-Reward:
      1. Conditional Use: Since the hill is heavily defended an since the home base is usually already established, the hill can only be captured in games that last long enough for one player to be lose the entire home base, but have enough of an army left over to wipe out the large number of troops on the hill. It can and does occur in Diplomacy games more often than in team games.
      2. Once the mountain is conquered, one can pickup treasures and build a base that is extremely easy to defend.
  • The city in the center of Jebel Barkal  is the most significant difference to every other map due to the following gameplay design traits:
    1. Balancing factor: Military buildings spawn different attackers per building, so there is proportional reward for the player to take out individual buildings.
    2. Surprise factor: The city is composed of different buildings every time.
    3. Eyecandy factor: Since the city is not created by a player after the gamestart but at map generation time, the terrain can be changed in accordance with the city, i.e. there are different ground textures in the city and for paths, there are trees and ditches. This is currently the only way to show how men shaped their environment and makes everything appear much more naturally, resemble actual cities or villages.
  • Problems of the Alpha 23 Jebel Barkal map (see also #5150):
    1. There is no victory condition or other sufficient incentive to invade the city on Jebel Barkal. Players have to play with the general Conquest and other conditions. So it is economically much more feasible to destroy the multiplayer enemy rather than the opposing city. We see the city only being taken out in rare diplomacy games where one player claimed the hill.
    2. Balancing is hard and has to be derived experimentally. Examples:
      • Hardly varying Soldier count is by far not as relevant as Elephant/Siege Engine count varying drastically. It should not depend on map generation (randomly 0 to 10 elephant stables on a normal sized map).
    3. Lag: Since there are much more buildings and gaia units around (up to 8 * 150). Formations make it quicker, but can also have separate problems, especially pathfinding ones.

In the next post I will show an idea I had after the above analysis and set aim.

  • Like 6
  • Haha 1
Link to comment
Share on other sites

Map Idea

The next step was to generalize some of the design properties worked out in the sketch analysis and apply them to a new map in a different context.

  • One of the problems of Jebel Barkal is that the central area is occupied by the city, one can only use the lower 35% of the map effectively. So this time I thought to put the city on the left side.

This however turned out to be a problematic decision for the time when there should be a trailer. There will only be black area instead of an impressive background. But I guess I have to live with it if we don't want to put the city into the middle.

  • To be able to use a greater part of the map for player purposes, the players are located on opposing ends, rather than confined to one half of the map.
  • The Irrigation canals on Jebel Barkal made it not only easy to wall off, but also prolonged the distances to travel between players, and split the map into compartments. That can be maintained and defended independent of each other. On maps without natural barriers, map control is often total. So on this map we could have these compartments again by adding streams and confluences of the streams.
  • To distribute the gaia attackers more evenly on the players, I don't align playerbases in a linear but an alternating pattern. There must also be shallows so that the scripted opponent can reach the enemies at the back.
  • Due to the design trait to be able to wall off compartments of the map near confluences, it would be likely that gaia is walled out from the middle strip of the map. So there must be a safe path for the scripted opponent / gaia in the middle of the map, horizontally.


  • Black: player locations
  • Purple: scripted opponent city
  • Light blue: Streams / water
  • Green: Safe economy, trade
  • Blue: shallows, direction of playerbase expansion
  • Red: Places of frequent fights



  • Like 3
Link to comment
Share on other sites


Having gathered enough design constraints, the implementing of the sketch is started.

It will be easier to implement the sketch and derive new design goals and inspire new ideas from the implementation rather than to try to imagine something great and predict all possible complications that weren't thought.

Step 1: Player positions, main streams


Step 2: Confluences of the stream, city area, main road


Step 3: Civic Center with a little stream or ditch around it. The central attractor and eyecandy of the city is the purple area and will become some kind of marketplace.


Step 4: The oppidum receives a set of walls. There are paths (yellow) around the walls to make it more rich than Jebel Barkal.


Step 5: A ditch around the walls makes this a lot more attractive.  Paths from the CC to the gates of the fortification invoke an initial city structure.


  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Step 6: The ditches require bridges to pass. City fortifications usually had a path around the city walls too (yellow). To fire up more inspiration and give a more realistic impression, adding Forests and more generic Roads.


Step 7: Adding the buildings with the CityPainter created when Jebel Barkal was introduced. Time to get rid of the ugly sketch textures and find something that looks better but isn't fine tuned at all.



Step 8: Instead of asking Stan to create variants of the bridge models for different sizes (like we have for foundations and rubble), I decide to increase the size of the bridges to fit the model, yielding a more impressive fortification. The terrain at the bridge painted with the wood texture.



  • Like 7
Link to comment
Share on other sites

Step 9: Some of the bridges become fortified gates. At the wooden bridges small paths start, at the fortified gates, larger roads lead away from the city. Bushes are added to the walls.


Step 10: Fortresses near roads are added to try to address the balancing problem that all scripted opponents would only attack the 2-4 players closest to the city. We observe a big balancing problem with the random paths.


Step 11:  To connect all of the players with the central strip, player paths are added to random places on the road. It's the places where the shallows going to be. It becomes evident that one of the concerns that is visible in the very first design sketch will turn out to be a severe balancing problem: The shallows can be walled off easily, then all scripted enemies will take the path through the left side instead of attepting to destroy the walls; i.e. the players on the left get's all scripted enemies, the players on the right side none. This means either the map design must fundamentally change (for instance making the entire stream passable), or the scripted enemy must be ordered to destroy the closest buildings instead of trying to reach a point behind that obstacle (sucks to create a different bot strategy for every map)


Step 12: Adding farmland and farmsteads near the ditches to make the city more vivid and realistic.


  • Like 2
Link to comment
Share on other sites

Step 15: Checking for historical accuracy and realism of the map so far,  articles, two documentaries about ancient celts and compared artists depictions were used as reference material.

I could not find any indications for celts using (yet)

  • ditches
  • wooden bridges or fortified bridges
  • planted trees near paths or fences near paths
  • paved roads
  • city architecturing, radially symmetric city shape or central structures in the city

These properties seem to fit more to romans.

What I could find indications for (including artist depictions):

  • oppidums had a small population density, contained maybe 20 houses
  • houses were not aligned and side by side but scattered, had some private space, trees, bushes and grassland between houses, even palisades between houses in some depictions
  • Domesticated animals lived with celts in and around the longhouses inside the oppidum
  • oppidums were mostly on hills and sometimes had multiple layers of palisades. (We can't have water inside the oppidum and the oppidum on a hill simultaneously unfortunately)
  • there were some city-sized oppidums too (supposedly 80k men women and children at the time of the siege of alesia, something like 6km diameter)

The greatest restriction for implementing maps depicting historical sites is the limited mapsize.

Link to comment
Share on other sites

@elexis, may I invite you to check out the following posts with specifics about Gallic architecture including a bunch of relatively accurate artists' representations of oppida (except the parisii one, which is apparently a bit of a fraudulent imagination)


ditches are a definite yes. Even several circles of ditches was a thing. Perhaps with pikes. Wether they had water in them or not, I can't say. Probably mostly not, seen as they were usually built on an elevation. 

Fortified gateways similar to the one you made can be found at Manching and Bibracte, although there's usually only one gate-house, set back, with the walls extending in front of it, but not as far.

Gauls definitely built bridges (Vercingetorix breaking up bridges to slow the advance of Caesar). Not sure what they looked like though... Wood, probably.

Celts apparently used wooden planks for some of their roads. Some of the oppida, like Entrement had paved roads of stone (irregular shaped stones).

There was a lot of variety in oppida and level of sophistication. The more "advanced" ones definitely had an urban/proto-urban character. The oppidum of San Cabran (Celtic Castro Culture, Iberia) had both stone paved roads and a radially symmetric shape and a central walled "acropolis". It also had cute little stone round huts.

Oppida were indeed usually built on top of a hill.. Not exclusively, but the more substantial ones mostly were.  


I love the map so far, and I'm curious to see where you take it... Good Luck and Vim!



Edited by Sundiata
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

It seems realistic that people would have connected nearby streams with their oppidum ditches if there wasn't a hill nearby. So it's not a representative oppidum, but a unique one. That's actually good (but for the next oppidum map, better no more water inside the oppidum).

Step 16: Connect the two streams with the ditch. More space between bridges, more space between buildings, random building angles instead of alignment. Second row of oaks near the bridge path. Different grasslands textures.



  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Step 17: Write a second stream with a different meandering on the same direction, thus yielding something like a braided river. Temporarily remove the 'vertical substreams'.


Step 18: Fully randomize map angle.


Step 19:  Some campfires, houses around them, palisade around the houses.


Step 20: Fortify remote settlements with a small hill, a muddy ditch with a bit of water in it; two layers of spikes. Benches, soldiers and sheep are found inside the mini-oppidum. Place a nearby gaul siege workshop to increase map difficulty and balance.



Step 21: Place bushes parallel to the farmland texture. The farmsteads are placed at the closest path.


Step 22: Houses close to, but outside of the oppidum.


  • Like 2
  • Thanks 2
Link to comment
Share on other sites

Step 23: Add towers near the oppidum walls. Less than seen here though!


Step 24: Adding a lot of flora near the water.


Step 25: Reintroduce substreams that are not horizontal to the water:screenshot0807.png

Step 26: Add a second type of farmland and add a path around it.screenshot0802.png

Step 27: Add a lot of actors on the paths and on the main grasslands.



Step 29: Add the bigger buildings in around the CC. Needs improvements though.


Step 30: Add men and women to the city.


Step 31: Use other texture for the main terrain and the waterground.

On 7/16/2018 at 9:52 AM, wowgetoffyourcellphone said:

May I suggest a less noisy base terrain texture? :)  

That one had been chosen because there were some nice flowers on it, but I agree that it looks odd when zooming out.


In particular I need a good name for the map!

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

48 minutes ago, elexis said:

In particular I need a good name for the map!


Seems like those people were really influential in the region and had built roadworks too. The article also mentions an oppidum being built.

On another article I found regarding the same tribe on another site. https://www.burgundy-canal.com/burgundy-history-1/


The Aedui lived in the highest parts of Burgundy, the area of the Morvan. They had two major cities, Besançon (Vesontio ) as their capital and Bibracte.
The Aedui were the biggest tribe in the region. Its development and influence on its neighbours had made the admiration of Julius Caesar in his Gallic Wars. The Aedui had already developed roads and trade systems with their neighbours, influenced them, forced many tribes to unit with them. Their economic strength in Gaul certainly made them one of the most important Gallic nation since, according to Julius Caesar, around 100B.C.


I'm no historian, so could be completely wrong.;) So more knowledgeble people can help fill in the blanks (or completely scratch it and start over).

Edited by Guest
Link to comment
Share on other sites

Besançon aka Vesontio fits with regards to being an oppidum near a river, but it doesn't fit with regards to the other two rivers / streams. It's good evidence though that this kind of oppidum depicted in the map is realistic.

It's probably better to chose a generic name, but Oppidum and Two Streams seem a bit dull. Maybe something describing a clash and territorial conflict with celts.

There should also be some unique simulation scripts. Winning the game when capturing the CC is just the most obvious step, but can we find something beyond? Some RPG elements were nice, a dialog between some individuals, the celts only attacking under some condition, storytelling and such.

For nomad mode I thought players might start inside the city with the fortifications being inactive but replaced with active ones after 5 minutes or such. All of this is asking to start the campaign, then there is no more question with regards what to map and what story to tell.

Link to comment
Share on other sites

10 minutes ago, wowgetoffyourcellphone said:

Bella Gallica.

That fits much better than a city name. Most would know what that means unlike the name of an ancient city.

Link to comment
Share on other sites

41 minutes ago, wowgetoffyourcellphone said:

Bella Gallica.


29 minutes ago, (-_-) said:

That fits much better than a city name. Most would know what that means unlike the name of an ancient city.

Bello Gallico was the correct term. :) Or Bellum Gallicum. Any Latin experts here? To make matters worse, Google Translate says Bellum Gallico. lol

Yeah, @elexis, I think this term fits perfectly my dude. (y) 

Edited by wowgetoffyourcellphone
  • Like 2
Link to comment
Share on other sites

About the argument that players don't know the city names, when players read something they don't understand, they get incentivized to read the map description which illustrates the meaning, which in turn incentivizes them to lookup some history.

Is the proposed meaning Beautiful Gaul or Gaulic Wars? Both terms would fit, but isn't it nicer to use a gaulish name more authentic than a roman one? It's also why I had chosen Danubius and Ratumacos (rather than Ratumagos). I couldn't find the gaulish translation yet (or even a good place to find gaulish translations at all)

  • Like 1
Link to comment
Share on other sites

3 hours ago, wowgetoffyourcellphone said:

Bello Gallico was the correct term. :) Or Bellum Gallicum. Any Latin experts here? To make matters worse, Google Translate says Bellum Gallico. lol

Yeah, @elexis, I think this term fits perfectly my dude. (y) 

Latin has cases. Names are in the nominative. [De] Bello Gallico (about the Gallic War) is ablative, because of the particle de. You probably want Bellum Gallicum (the Gallic war) or Bella Gallica (Gallic wars). And Beautiful Gaul would be Bella Gallia :)

  • Like 2
Link to comment
Share on other sites

Very nice. The Gaia city looks a bit too round to my taste. This perfect circle makes it look almost futuristic. I guess it could afford some irregularities here and there. The round settlements are not shocking though, I guess it's ok to have something perfectly round as long as it's not too big.

I don't like the trees on the outer edge of the ditch. If I was a city commander I would definitely have those trees cut down so nobody could hide in there. I would like to have a clean line of sight/fire for my men on the walls.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...