Jump to content
Sign in to follow this  
Spahbod

RANDOM MAPS: Suggestions, Bug reports and Ideas about random maps here.

Recommended Posts

Here I want to ask you to provide us with ideas for new random maps or suggestions to improve the existing ones. Also please fell free to report every bug you found.

Some notes:

The bug reports shouldn't be about resource inequality because these are random maps after all. For e.g. "I played that map and my enemy had two metal mines in his side but I had only one" isn't relevant because the maps are designed to be like this. Players have a set of starting resources that are going to serve them until they find a good deposit or build a market and a couple of mines.

Ideas of maps with a fixed shape (For example, a map that looks exactly like Greece) are not accepted. They would fall into the "Skirmish" category which is going to be implemented somewhere in future.

Please think about player placement in maps you are going to suggest. Someone might play an 8 player game in a tiny map. The map must be open enough for such a case.

A map with too many entities/actors would be problematic so a forest heavy map is out of our reach.

Mods, can you please Pin this topic?

Thank you all. :)

Share this post


Link to post
Share on other sites
[...]

Please think about player placement in maps you are going to suggest. Someone might play an 8 player game in a tiny map. The map must be open enough for such a case.

A map with too many entities/actors would be problematic so a forest heavy map is out of our reach.

[...]

Tiny maps with 8 players are not going to work in many cases:

- Iberian civ bonus walls will overlap/be so close to each other that they shoot at each other from the beginning

- There will not be enough room to build a full base

- There will not be enough room to place much more than the recources close to the start positions

There is a forest heavy map: Deep forest. But if generated as a tiny map with 8 players most of the map space will be covered with free space from bases and roads. There can be seen that tiny maps with 8 players leave no room for much map design.

Perhaps the Iberian walls should be replaced with the smaller circle of towers (used for some maps without enough space already) if the map size is tiny and the number of players is > 4 (and perhaps on small maps with more than 6 players too).

In general give the players enough space to build their bases would be nice.

Perhaps it should be considered to place only chicken/pigs/sheep (or similar) and a few bushes/trees in a 20 rms tile radius around the players start locations (and their starting entities ofc ;)) and nothing else. That way the player would have to scout for stone/metal and the game would have another early challenge and scouting would become more vital. That does not need to be a convention, just an idea for some maps.

There are some design tips here: http://trac.wildfire...m_Map_Generator

Edited by FeXoR

Share this post


Link to post
Share on other sites

Tiny maps with 8 players are not going to work in many cases:

- Iberian civ bonus walls will overlap/be so close to each other that they shoot at each other from the beginning

- There will not be enough room to build a full base

- There will not be enough room to place much more than the recources close to the start positions

There is a forest heavy map: Deep forest. But if generated as a tiny map with 8 players most of the map space will be covered with free space from bases and roads. There can be seen that tiny maps with 8 players leave no room for much map design.

I mean we can't place the players too near to each other or they'd overlap.

Deep Forest is an exception and it crashes if created in a large map.

Share this post


Link to post
Share on other sites
[...]

Deep Forest is an exception and it crashes if created in a large map.

It's an exception, alright, but it shows well that 8 players on a tiny map don't grand enough room for much map design and even the players are to close to each other.

It crashes :o? With what error/massage/reason :dontgetit:? For me it generates fine in any size... :huh:

BTW: I seam to have edited my previous post while you where responding, sry.

Edited by FeXoR

Share this post


Link to post
Share on other sites

It's an exception, alright, but it shows well that 8 players on a tiny map don't grand enough room for much map design and even the players are to close to each other.

It crashes :o? With what error/massage/reason :dontgetit:? For me it generates fine in any size... :huh:

BTW: I seam to have edited my previous post while you where responding, sry.

Pyrogenesis crashes with out of memory error in large and very large sizes.

Share this post


Link to post
Share on other sites

Pyrogenesis crashes with out of memory error in large and very large sizes.

Oh, I noticed. It happens when the number of players are small compared to the map size (whatever that means ^^).

I fixed it and added it to the corresponding topic (http://www.wildfireg...=20#entry243899) and created a ticket for the patch (http://trac.wildfire...com/ticket/1522).

Thanks for the reporting :thank_you2:! I only tested with tiny 1-2 players, small 2-3 players, ... before. :self_hammer:

Edited by FeXoR

Share this post


Link to post
Share on other sites

Many maps get Out Of Memory errors on very large maps... It doesnt always crash, however.

I also think that we should restrict some things based on maps and map settings. 8 players on a tiny map should not be possible/expected to be messy.

Share this post


Link to post
Share on other sites

No. After playing around a bit I think in about 50%-70% of the cases it crashes, while it needs a lot of time (several minutes) to generate the map if it doesn't crash. Is this solely due to the trees?

E: I also get a warning for not having enough memory to play audiofiles, when the card is loaded

Edited by kosmo

Share this post


Link to post
Share on other sites

I will change "placeCivDefaultEntities" to call "createStartingPlayerEntities" to reduce duplicated code. Thx Spahbod for pointing this out. In addition I will add a keyword argument (like the Iberian civ bonus walls are already) for the entities to place so it is possible to do everything with one function. The common case will always be supported without keyword arguments though.

@vts/vtsj: It would be nice to have your changes of documentation in the wall builder. It was good!

Afterwards I will fix the issue I found while trying to explain the wall builder: http://fexor.dyndns....r%20concept.pdf. It's not really an issue ATM but ofc it should be clean.

There's still the problems with entities at the edges of the map (e.g. Anatolian Plateau: Trees). Even if they are reachable only few gatherers can harvest from them. That often results in stacked peasants that block each other. On tiny (and maybe some small) maps the Iberian civ bonus wall reaches out of the map, too. I think it would be good to add a function in rmgen that removes all entities outside (and at the edges of) the map. That could then be called before exporting the map. I'm not sure if some sort of "removeObject" function exists. I'll look into this. That function should always warn (or at least log) if any entity is removed to help rms programmers to notice what they can do better to avoid placement outside/at the edges of maps.

A related thing is that it is possible to place overlapping entities. It would be good to add a function that places an entity and removes all entities overlapping with it. Ofc that would need an "removeObject" function as well and the information of the space each object needs (which AFAIK is not available in rmgen ATM).

The AIs have problems with entities surrounded by other entities as well. This is very common on any map (scenarios too) e.g. a tree surrounded by other trees. I think it's an AI problem, not an rmgen problem, but just wanted to say it here.

It seams like areas surrounded by cliffs are somehow common in random maps though I think they are very unlikely in reality. besides: Unreachable areas should not contain any entity that can be gathered from.

Many rms don't grand enough space to the player's bases. There's a section "Design Tips and Conventions" at http://trac.wildfiregames.com/wiki/Random_Map_Generator. It would be good that experienced rms programmers would add ideas here (or directly at the wiki) that would further enhance general rms design.

I'm thinking of adding a function to load scenario maps into an rms. That way one could use a scenario but still could choose the civilization free. The other option would be nice as well: Exporting a random map script and save it as a scenario. This can be done in atlas already but I think it would be nice to have as an rmgen function as well. The problem is that I don't know a way to define the payers civs in an rms.

I would like to have support for a heightmap/erosion given by an image like myconid suggested here: http://www.wildfireg...howtopic=16233. That would increase the realism of random maps much!

Is there a method to determine if a player chose "random" civ?

Those are mainly some thought. I will be gone for the next 3 weeks so I will get to it afterwards.

If any other changes to rmgen is needed plz let us know. I am desperate to add new stuff after my brain was useless for about 2 weeks since I was ill ^^.

P.S.: I will do some of the above but if anyone is willing to support me with adding triggers that would be even higher priority to me. The result of that would be extraordinary! I tried to make that clear here:

http://trac.wildfire...1449#comment:20 (skip untill "The perfect world")

and here: http://www.wildfireg...showtopic=16096

EDIT: After I was told again that it was thought about triggers and definitely pushed to part II I'll try to shut up ;)

Edited by FeXoR

Share this post


Link to post
Share on other sites
I'm thinking of adding a function to load scenario maps into an rms. That way one could use a scenario but still could choose the civilization free. The other option would be nice as well: Exporting a random map script and save it as a scenario. This can be done in atlas already but I think it would be nice to have as an rmgen function as well. The problem is that I don't know a way to define the payers civs in an rms.

This is actually a planned new match type called "Skirmish". :)

I would like to have support for a heightmap/erosion given by an image like myconid suggested here: http://www.wildfireg...howtopic=16233. That would increase the realism of random maps much!

I don't think we'd be using heightmaps for random maps even if we could. They are random maps. Not scenarios.

Is there a method to determine if a player chose "random" civ?

No. The Civ is assigned before the game starts in GUI code. But why would you want to do that?

It seams like areas surrounded by cliffs are somehow common in random maps though I think they are very unlikely in reality. besides: Unreachable areas should not contain any entity that can be gathered from.

That is a serious problem. Can you name the map specifically?

A related thing is that it is possible to place overlapping entities. It would be good to add a function that places an entity and removes all entities overlapping with it. Ofc that would need an "removeObject" function as well and the information of the space each object needs (which AFAIK is not available in rmgen ATM).

We currently use constraints to avoid such overlap.

There's still the problems with entities at the edges of the map (e.g. Anatolian Plateau: Trees). Even if they are reachable only few gatherers can harvest from them. That often results in stacked peasants that block each other. On tiny (and maybe some small) maps the Iberian civ bonus wall reaches out of the map, too. I think it would be good to add a function in rmgen that removes all entities outside (and at the edges of) the map. That could then be called before exporting the map. I'm not sure if some sort of "removeObject" function exists. I'll look into this. That function should always warn (or at least log) if any entity is removed to help rms programmers to notice what they can do better to avoid placement outside/at the edges of maps.

I'll see to it.

Share this post


Link to post
Share on other sites

We'd need a script to remove gatherable entities on unwalkable terrain. On most maps, to achieve a good result, we have to have some overlapping (I'm thinking, for example, Pyrennean Sierra).

Share this post


Link to post
Share on other sites

We'd need a script to remove gatherable entities on unwalkable terrain. On most maps, to achieve a good result, we have to have some overlapping (I'm thinking, for example, Pyrennean Sierra).

That would be very hard. Better not to place them from the beginning than to remove them later.

Share this post


Link to post
Share on other sites

Thing is: sometimes there is one tile that's impassable. If there is an entity on it, it's finished, the whole map can be scrapped... I believe this is a huge limitation.

Share this post


Link to post
Share on other sites

Thing is: sometimes there is one tile that's impassable. If there is an entity on it, it's finished, the whole map can be scrapped... I believe this is a huge limitation.

Not with the recent changes quantumstate made recently.

Share this post


Link to post
Share on other sites

I don't think we'd be using heightmaps for random maps even if we could. They are random maps. Not scenarios.

Well, but:

- Real terrain data: If we had access to a huge amount of terrain data (like e.g. from google earth) it would be a lot of work to build a scenario for all those areas at a suitable scale. Making random maps that only determine the biome and the use those heightmaps would grant a giant variety of realistic maps.

- Randomly generated heightmaps: Not all heightmaps have to come from the real world. Anyways they could look more realistic.

- Erosion on "normal" random maps: Random maps could in general get more realistic heightmaps by just applying a water erosion function to the generated heightmaps. That way riverbed could be generated just using the "default" noise heightmaps most RMS use. That already would look more realistic without really adding water to those riverbeds.

That is a serious problem. Can you name the map specifically?

Maps with unreachable areas with entities that can be gathered from:

- Alpine Lakes: On low ground but still surrounded by cliffs e.g. seed 1130, 4 players, medium

- Alpine Valley: On low ground but still surrounded by cliffs e.g. seed 1130, 4 players, medium

- Archipelago: On islands e.g. seed 1130, 4 players, medium

...and many more.

BTW: All RMS with isles have that problem.

We currently use constraints to avoid such overlap.

That doesn't work well for objects. If it would help I could add a tileclass for the Iberian civ bonus walls so those tiles could be avoided. It will be a lot work though because we have no access to the objects properties in RMGEN (which is really bad IMO) like footprint/obstruction size.

Edited by FeXoR

Share this post


Link to post
Share on other sites

There already is pseudo heightmap access in random maps just look at latium.js. All you need to do would be convert a grayscale image into an array of numbers and then you could use that to create the height of your terrain.

Share this post


Link to post
Share on other sites

There already is pseudo heightmap access in random maps just look at latium.js. All you need to do would be convert a grayscale image into an array of numbers and then you could use that to create the height of your terrain.

You have access to heightmap in every part of the rmgen and your random map script. The main point is making rmgen read an image which I think is a waste of time.

Share this post


Link to post
Share on other sites

Now that gates work I added a patch that uses gates as default for the wall_builder.js: http://trac.wildfire...com/ticket/1533

This includes the default Iberian civ bonus wall on all random maps.

Perhaps now that long walls can be converted to gates the number of gates initially placed in the Iberian civ bonus walls should be reduced?

Have a nice day!

BTW: On random map Latium build with seed 463, small, 1 Iberian player bottom left is an unreachable area with trees. The players base don't provide not enough space for the wall as well. I don't really mind to only grant towers on most random maps as the Iberian civ bonus but I think in general players need about that space to build their base anyway.

Edited by FeXoR

Share this post


Link to post
Share on other sites

Is there any reason to not make random maps like Latium, Phoenician Levant, and Lake circular instead of square?

Edited by Zeta1127

Share this post


Link to post
Share on other sites

Is there any reason to not make random maps like Latium, Phoenician Levant, and Lake circular instead of square?

Phoenician Levant is square because otherwise it won't have enough room for players. Latium will remain square because making it circle would need some big changes in the code and also its style more fits a square map than a circular one. Lake is square only because I wanted players to have a little more room. If others agree, I'd change it to circle. :)

So everyone: Should we make the Lake random map circular?

  • Like 1

Share this post


Link to post
Share on other sites

Having Lake as a circular map makes more sense to me, especially since it removes any advantages players get from corners, however go with what you feel works best (y)

  • Like 1

Share this post


Link to post
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.

Sign in to follow this  

×
×
  • Create New...