Jump to content

fair multiplayer random map


norjay
 Share

Recommended Posts

This gonna be a long topic, because i have implemented a lot of ideas.
And it was not so straight forward, as i assumed a few month ago.

So what's the hassle...
I always have been jealous of the Starcraft-maps, with their levels and ramps, which are always good chokepoints.
Therefore, my maps should not just have elevation, they should have elevations that funnel movements and can become part of an environmental strategy.
But unlike the Starcraft-maps, i wanted it to be as random as it could get, with the option for more than just two players, and for different map-sizes.

Just for the anticipation, my idea is not one map-design for all, i still have to adapt to the different sizes.
If someone chooses to have three or more players on a tiny map, i have to scrap all elevations to make this work.

Next indispensable requirement, all players must have in their immediate surrounding the same conditions.
That implies, random is only for the areas, that have a certain distance from the bases of the player.
The bases themselves have only things randomized, that would not put someone in a big advantage.

So that are the basic ideas...
Every player gets a slice of the map, like in a pie-chart.
On this slice there is a coordination system, that starts from the edge of the slice in the center.
So (0,0) is some point outside the playable area, and with ascending ''y'' you get closer to the center.
With (0,2) you are sligthly on the edge of the playable area.
The ''x'' value can be negative or positive.
At certain coordinates, there are random hills. Random means, they are shifted to a certain distance around the exact coordinates.
The coordinates for the hills are all the same for all players, but the random shifting varies.

This pictures shows a medium map for three players,
the pyramids indicate the places for centerpoints for elevations/plateaus.
The green encircled pyramids are the (0,2) coordinate for every player.

By the way, the coordinate-system is some mixture of cartesian and polar, but unlike polar, the angle of the coordinates are not constant, but getting smaller with the distance.
I have implemented four other coordinate systems, including two hexagon-systems.


screenshot0008.thumb.jpg.004d70ceb4eb8313d28001e66b2dfba2.jpg

The next step is to place the basics, like the city-center.
I have made a somewhat simple map-description language - simple strings in an array, that influence the basic map.

The following command replaces one hill with a city-center, including some citizens, some food-sources, and 4 mines.
This was meant to be used in cramped maps. There are also letters for just the city center.

setMap(["", "", "", "", "", "", "A"]);

The result should look like that. And that does should look similar to every map size and any number of players (given, that there is enough area)

screenshot0009.thumb.jpg.b899fb6a3f49aabfbcf32a57492dccd4.jpg

The next step is make the topographics.
The image below are simplefied topographics, with no random displacement.
But you can see already the effect of the barriers and the ramps.
Also you can see, that for all players the topography is identical.

screenshot0010.thumb.jpg.5a53445e3e093af84ad53c712d2e5404.jpg

 

 

 

 

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

The next step is to redesign the areas around the base.
The topographic cells are to compressed, i want more space.
So i put up in the map-description language an character (exclamation point), that connect cells to the cell of the base.
I put this char exactly at the location of the default-hill. I could also overwrite the hill with some char and put the cell somewhere close.
But there should always be some distance between the topographic features.

The description of the map now looks like this:

setMap(["", "", "", "", "", "", "!....A....!"]);

And the result now looks like this:

screenshot0011.thumb.jpg.92f85fb0f0cbcbf5188d473c43e63dfd.jpg

Again, up to now, for all players the topography is the same.

Next, i want to reduce the amounts of cell before me, at the moment there are three cells, i just want two, and i want them not to be aligned to my base.
For the description i added the dot to erase any topographic feature, that was set by default, and a "X" to set a new cell.
The description now looks like that:

setMap(["", "", "", "", "", "", "!....A....!", "", "", "", "", ".....X.....X......."]

and the map looks like that:

screenshot0012.thumb.jpg.fc0a2b017ac9f775d4fe11dee960442c.jpg

Now i make a little alteration, i will only put one hill in front of my base.
The small "x" is like the big "X", but it will not get randomly displaced.

setMap(["", "x", "", "", "", "", "!....A....!", "", "", "", "", "...........x......."] );

The result looks like that:

screenshot0013.thumb.jpg.17a5e0ca099b5d244cfe5cb4be2668ed.jpg

Now i apply the random displacement to the cells:

screenshot0014.thumb.jpg.ab4fce40c9edb96f8b0d013f9f2b6c76.jpg

The cells now are lowered or raised plateaus, except the cells, that belong to the base - they are always lowered.
For the accessibility there is no difference, if the plateau is raised or lowered, the ramps to the plateaus are either go up or down.
Also, while the default cells are randomly displaced, the cells set by the discription-array are not.
Of course you can create cells, that are displaced. But for this example i wanted to be the cells in the immediate surrounding of the base all to be fixed.

The last step for now is texture and trees.
And this is, what the "normal"-sized map for three players look like:

screenshot0015.thumb.jpg.341c57fc03066960e427750938f372d4.jpg

Just for the observation, i have limited the trees to the proximity of the base - i have an old computer, and i utilize everything to reduce lag.
But there is also a character for Cells with a forest.

And this is what a map of the "medium" size looks like.

screenshot0016.thumb.jpg.4b9c0077fd53d0643f463a40665f5ab9.jpg

Parts of the element described in the array are missing. So this map is already to small.
Still you get a nice map, and still it is fair to all players.

  • Like 7
Link to comment
Share on other sites

4 hours ago, Sevda said:

These terrains often give one player an advantage over another, especially to archers and slingers. 

Why is that?

+ yes this map design looks awesome and I think it was cool that you shared how you did it.

One topic of discussion among TGs in multiplayer is berries/hunt resource randomization. This is not topical to the first post but makes sense from the title. In 1v1s there is feldmap which balances total hunt/ berry resource amounts between players, this works great for 1v1s. 

In Tg's usually people accept a bit more randomization, but I think it would be better to reduce the standard deviation of food resource spawns available in p1 and p2, so that we see less of the extremes of resource randomization like 5 berry versus 0.

Link to comment
Share on other sites

8 hours ago, BreakfastBurrito_007 said:

Why is that?

The player on the hill get a range bonus - makes ranged units more deadly. Also melee units need to walk around the hill, and that will make the attackiing side and defending side experience different terrains - someone gets an advantage. 

Link to comment
Share on other sites

3 hours ago, Sevda said:

The player on the hill get a range bonus - makes ranged units more deadly. Also melee units need to walk around the hill, and that will make the attackiing side and defending side experience different terrains - someone gets an advantage. 

I thought this only applied to towers and defensive structures, but I had never investigated it.

Link to comment
Share on other sites

23 hours ago, Sevda said:

This looks great! Is it possible for you to remove the hill features so that we have just a plateau? These terrains often give one player an advantage over another, especially to archers and slingers. 

 

You mean "remove some ramps", so that archers and towers can punish melee troups without retaliation ?
This is possible, you can create cells without ramps and connect them to cells with ramps, this makes long cliffs, with few accesses.
But in the random-mode make these cliffs rather short, the map mostly are not big enough for long cliffs, especially with more than two players.

Does it make a difference, if you shoot an arrow down or up ?
For defense tower there does not seem to be an altitude-bonus.

This picture below visualizes a little bit, how these maps are set up. The green areas are the cliffs, that should restrict the movements. The red stripes are passages over these cliffs. The passages look plentiful, but i assume, you have only 15-20% of passable way compared to a open terrain, and that makes already an huge difference.

screenshot0022.thumb.jpg.9f5dc1779c953e24df09486ee52129c1.jpg

 

At the moment i really try to make the topography as ragged as possible. I hope i get a good first try published this week.
For the maps you can chose different biomes, but you can also set up different outlays for the bases.
Does this count as a different map ?

Here some actual Screenshots. Already with the more ragged terrain.
These narrow passages have some resemblance of "the brave 300".


screenshot0019.thumb.jpg.a12a21b164a7aae2a0e2d747b8d869fa.jpg

 

screenshot0021.thumb.jpg.23c4d14cbcf12d9612af68a5b6caf9c6.jpg

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...

Let's get it done, my first attempt.

But at first i have to apologize, i still have Version 23 (due to a very old computer), so someone have to bring the textures and objects up to the actual version. They all start at line 200 (the texture section) of the code.
And i really don't mind what textures you use, as long as it looks cool to you.

For the textures, many of them have are set textures for low and high altitudes, it should be easily recognizable by the name. Also the trees are chosen by the altitude of the terrain. My originally idea was to use snow covered high peaks with pines on the low ground, and snow covered pines on the high ground.

So what is this map about.
I can define a topography that will be the same for every player in every game. But i can also use elements in this topography that can have a certain amount of randomness. I can define the location of the civil-center and the mines. All this is applied to every player, and should produce a similar environment. If the map is bigger than the defined topography, additional topography is added to fill the map up.
Summarized, this map is a mix of scenario and random. It can be adapted to different sizes and amount of players. Of course, if you choose a very small map for many players, it still may look very bland.


The map gets interesting at medium size. I have several time tried and failed to win against the computer as opponent in the medium size. So i really want to know, is the map at medium size really challenging to play ?

ovara.zip

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

Good evening!

It's a great looking map, I especially like the double plateau feature. This in combination with the wildly spread straits of the map makes it like a labyrinth. For me it enhances the already in game existing map "Ambush" as there aren't different hights on the mountains / double plateau. Congratulations! ;)

Link to comment
Share on other sites

  • 2 months later...

I made a map back in 2021 that does this: https://code.wildfiregames.com/D4053

My version, also accounts for team slices, so terrain and resources can be varied for individual players, but identical between the teams.

I'm not quite sure why it didn't get included in the most recent release, but it was ready to go a year ago as far as I knew.

preview-echo-shores6.png

preview-echo-shores3.png

preview-echo-shores1.png

preview-echo-valley4.png

preview-echo-valley9.png

preview-echo-valley10.png

  • Like 1
Link to comment
Share on other sites

18 minutes ago, kalimaps said:

I made a map back in 2021 that does this: https://code.wildfiregames.com/D4053

My version, also accounts for team slices, so terrain and resources can be varied for individual players, but identical between the teams.

I'm not quite sure why it didn't get included in the most recent release, but it was ready to go a year ago as far as I knew.

preview-echo-shores6.png

preview-echo-shores3.png

preview-echo-shores1.png

preview-echo-valley4.png

preview-echo-valley9.png

preview-echo-valley10.png

sometimes they forget or are busy.

It would be nice to open a ticket.

Link to comment
Share on other sites

  • 1 month later...

Finished another map.
These maps are just a little bit random. Much of the structure around the base will always look the same. Just the trees and textures will always be random.
For the structures more remote from the base the degree of randomness increases.
Maps will look different with different maps-sizes and numbers of players.

The idea is to have a map like those in starcraft, with a conversant terrain. But for all kind of sizes and numbers of players.

Like always, the map has a lot of ramps. So can make very good use of chokepoints.
The small map for two players is really fun.

moravia_01.thumb.jpg.6486475c2b7be0d49193961fe25a4d71.jpg

 

 

moravia_02.thumb.jpg.cc370aedbb6ac14fb004d095de1a1a91.jpg

 

moravia.zipmoravia.zip

 

moravia.zip

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

  • 2 weeks later...

amantia.zipNew Map

And this more hardcore than the previous maps. I sat down this weekend and fiddled with the algorithms for ramps and rims, and made the terrain even more ragged than before. Ramps are now smaller and more reliable, though, not all ramps will be fully passable, a tradeoff to have a parametric map with a certain amount of randomness. The rims are also narrower and make the passage of large troops more challenging.

You should be able to play every size of map with any amount of players. The terrain around the all bases should always have the same conditions for every player. Of course eight players on a tiny map will not be that interesting.

I only played against the machine, i was able to win on a small map, but so far lost all games on a medium map. Up to now i didn't try any larger maps.

amantia_01.thumb.jpg.cc7d5f921c2a91242ddf0b06fe7301fc.jpgamantia_02.thumb.jpg.2471a8a8cde3ef013dba0efc8d5d76fd.jpgamantia_03.thumb.jpg.31db91a6ec4da8e02e7bda8614b54ea9.jpg

amantia.zip

  • Like 2
Link to comment
Share on other sites

Too chokepointy imo. From my experience, chokepoints make it too easy to defend and leads to stalemates. If not for that problem I'd be advertising my Alpine Mountains map for multiplayer.

Some civs only have rams as siege capabilities, pushing with rams can be incredibly difficult against a well defended position. If there were some other siege options, or if walls and towers could be disabled in some maps, this could maybe change this situation.

  • Like 1
Link to comment
Share on other sites

Two observation i made by playing against the computer or watching replays:

  • no one uses defensive structures. I would really like to see some replays, where someone builds walls and put it to a good use.
  • a lot of games are decided very early. Often one single successful rush attack can define the whole game.
    Once the infrastructure have taken some damage, the defender remains on the back foot.
    Especially when i play against the computer, once i gained upper hand, the rest of the game is just mopping up.

I really wanted something to make a game more challenging, even if i am in a superior position.
And i want walls and palisades. For most random maps there simply seems no use for defensive structures.

Maybe this map only works against the computer-opponent, because the computer never walls himself in.

Link to comment
Share on other sites

6 hours ago, norjay said:

Two observation i made by playing against the computer or watching replays:

  • no one uses defensive structures. I would really like to see some replays, where someone builds walls and put it to a good use.
  • a lot of games are decided very early. Often one single successful rush attack can define the whole game.
    Once the infrastructure have taken some damage, the defender remains on the back foot.
    Especially when i play against the computer, once i gained upper hand, the rest of the game is just mopping up.

I really wanted something to make a game more challenging, even if i am in a superior position.
And i want walls and palisades. For most random maps there simply seems no use for defensive structures.

Maybe this map only works against the computer-opponent, because the computer never walls himself in.

Towers and fortresses are used in 1v1s and TGs on mainland.

Walls are not but that's because Mainland is as open as it gets, on top of players sometimes not realizing they are in "must defend" situation. Also, that champions are weak gives less incentive to stall out.

Mainland is not the only map. There are maps that are less open but not as closed as the ones you created, and they give some easy to defend positions, one example are water maps (eg Rivers, Corinthian Isthmus). I know by experience they play like this

At the end of the day, players mostly play TGs on Mainland. It may be due to lack of taste, but the fact that many options are hardly viable for civs doesn't help.

7 minutes ago, hyperion said:

Obviously all civs need catas if fortifications should have any decent role in this game, which IMHO they should.

I kind of agree. In AoE2 all civs have trebuchets. In Delenda Est I think infantry can build catapults on the field which is an interesting idea.

Edited by Feldfeld
  • Like 1
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.

Guest
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.

 Share

×
×
  • Create New...