Choicerer's Map Randomizer

Discussion of all aspects of multiplayer development: unit balancing, map development, server development, and so forth.

Moderator: Forum Moderators

Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Choicerer's Map Randomizer

Post by Choicerer »

Current version - 2.6

Randomize or customize any map!

Includes 6 balanced terrain sets to choose from many options such as keeping certain terrains from the original map, mirroring the map, re-randomizing it after a specified interval, not re-randomizing tiles under units and many more. It is based off the Randomized Isar's Cross Map Pack, but has been improved in many ways.

Update 2.5 has changed the system that picks terrains.
Here's some info:
Spoiler:
Here is some more info about the options:

Terrain Sets:
You can choose one of the 6 Terrain Sets for a map. They all are designed to be as close to each other balance-wise as possible. But there are some subtle differences - Desert does not contain any swamp, but contains a bit more desert. Winter contains snow (which is special in its own right). Caves contain significantly more impassables and no mountains (to offset the cave terrain that advantages the dwarves - which does not appear in bulk).

Choose what terrain types/tiles to keep from the original map:
You can specify what terrain types should be randomised - if you decide to keep some, they still will change their appearance based on the chosen Terrain Set. Some terrain types, however, will never be modified. Those are caves, bridges, wooden floors and walls and impassables.

The map can be mirrored or it can be different on each side.
Thanks to a contribution from Vasya, the mod's mirror function will now work with almost any map, automatically detect the mirror type for that map and mimick it. There is no longer need to tinker with any sliders. The mod works with all sorts of maps, regardless of how many mirror tiles there are per hex (for example Auction X has 4 identical sides). The only maps which will not be mirrored properly are either these which do not have any mirror at all in the first place or whose symmetry is messed up in a major way, even if some mirrored tiles are present. Tiles which do not have any mirror tiles in the original map will not be mirrored by the mod either.

You can set it so that the tiles currently occupied by units will not be re-randomised.
Terrain chances will be recalculated before every iteration of the algorithm depending on how many tiles of each terrain type remain unchanged. This is to prevent players from occupying terrain types that advantage their factions and causing the map to be smothered with them. If some terrain has been selected to be carried over from the original map and remain unchangeable, it will not impact the chances of a given terrain type generation if a unit is occupying it (because it never changes).

You can specify custom terrain percentages
Each terrain type has a preset balanced percentage that it will constitute of the whole map, but you can specify your own, as long as the sum adds up to 100%.

Lastly, you can set the random interval between the iterations of the randomisation loop, or you can toggle it off altogether.

You could even use the mod to only change the appearance of a map without changing any terrain.
Isar's Cross.png
Morituri.png
Lake.png
Afterlife.png
Auction.png
Most Recent Changelog-
Spoiler:
Last edited by Choicerer on May 28th, 2018, 11:27 am, edited 16 times in total.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

Version 1.1 adds a checkbox to only change the appearance of a map, another one to turn off the question mark helpers and a slider to control the amount of embellishments.
Version 1.2 fixes a bug that multiplied oasis and other embellishments if some terrains had been kept from the original map.
Alirok.png
New Settings.png
Last edited by Choicerer on May 18th, 2018, 5:08 pm, edited 3 times in total.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

Version 1.3 focuses on fixing the question marks and labels. It fixes question marks not showing any info (oops), prevents them from spawning on top of keeps/castles/any other terrain than chasms/offmaps and some impassable mountains (so they don't get in the way of the real units). It also does the same to the labels so they appear on off-map terrain and if the map is small enough /and/or has adjacent leaders (that serve as a starting point for calculating mark/label locations) then only 1 label appears at the top of the map. It also no longer displays a message where a question mark complains of being killed when a team that does NOT have a question mark loses all units. This should fix most question mark bugs, but the question marks can still be turned off.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

Version 1.4 introduces a number of cool features.
Voting feature -
-If you are the first human player (usually the red player), you can start a vote to re-generate the map, but only on turn 1 if your leader hasn't moved at all. Then for the duration of that turn no units can move and players cast their votes. Next turn if the vote succeeds, the map gets regenerated AND you can start a new vote, but again, only if your leader hasn't moved and if you don't, next turn you can no longer do it. This is way the first human player (which usually happens to be the host) is prevented from abusing this feature to regenerate the map to their liking.
-Question marks and labels no longer spawn for AI players.
-Fixed the game generally breaking if the first side (red) wasn't human, but AI. Thanks to this wonderful first human player feature (which i'd had problems with - thanks to Enclave who helped me solve them), AI or empty sides can be put before human sides and the game will still work.
-Converted the question mark info menu to LUA. This makes it much more comfortable to browse it. The menu can now be accessed by observers (if they click on the question mark of the player who is currently playing their turn), but it can't be accessed by that player. Other players can still access it by clicking their own question mark. (sadly, this is due to the limitations of the Wesnoth engine, but the code has been improved by being ported to LUA, allowing the observers to access the info as well)
-Fixed some bugs affecting the terminal loop averting mechanism.
-Fixed only one label spawning for some maps which actually should have been getting the normal amount.
-I think that's all. I should have written down all the changes, oh well.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

1.5 -
Bugs fixed -
-Max players variable had been only taking into account the human players which had resulted in bugs while playing with AI.
-The Death Loop Prevention function had been taking into account both the number of changeable and unchangeable tiles, resulting in slight imbalances on smaller maps, especially (this is part of the balanced algorithm).
-Impassables hadn't been appearing on mirror tiles of the tiles that had a unit on them EVEN if mirror had been switched off (this is an old one).
-Current terrain set had been lacking the "Picked by random" label in the mod info (in the event that it had been picked by random).

The code has also been tidied up, split into different files and commented for posterity.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

1.6 introduces the Axis Mirror option to mirror around a column/row instead of 1 tile.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

1.7 makes the mod compatible with maps that don't have an off-map border, i.e. have some terrain painted on the tiles that form the border (are inaccessible on the map). They won't get randomised now, so the balance won't be messed up.
Also prevents the game from crashing if tile 0,0 (border tile) has some unchangeable terrain tile (one that is defined by default or by the user not to be changed).
Dharokan
Posts: 9
Joined: March 29th, 2009, 10:45 am
Location: Germany

Re: Choicerer's Map Randomizer

Post by Dharokan »

Hi Choicerer

I really like playing your random maps. Thanks for the efforts.
And this mod is working nicely on the Afterlife scenario now as well. Well almost...
The questionmark units you are using for the mod infos belong to the players sides and are therefore copied, too. As result, each player has to fight a bunch of unkillable questionsmarks xD
Of course you can switch them off in the settings.
I just think this pinpoints the fact that units are not the best idea for displaying infos. ^^


And last not least a request:
What about setting a value for special terrain density?
Or you could call it the plain terrain percentage ... I think you understand the idea ;)

Keep up the good work!
Cheers,
Dharo
Error: signature too large
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

I just think this pinpoints the fact that units are not the best idea for displaying infos. ^^
They are THE best idea for displaying unsynched info. The only other way is using a menu that can be accessed in an unconventional way, such as: right click+left click.
But I didn't like the idea, I find it a bit too clumsy, personally.
And last not least a request:
What about setting a value for special terrain density?
And the request is motivated by what? I've asked you several times if the ratio was okay, and you said yes every time. So why would you need such a slider? I could do it I guess, I could make use of one similar feature I've already implemented...
Dharokan
Posts: 9
Joined: March 29th, 2009, 10:45 am
Location: Germany

Re: Choicerer's Map Randomizer

Post by Dharokan »

Choicerer wrote:
Dharokan wrote:I just think this pinpoints the fact that units are not the best idea for displaying infos. ^^
They are THE best idea for displaying unsynched info. The only other way is using a menu that can be accessed in an unconventional way, such as: right click+left click.
But I didn't like the idea, I find it a bit too clumsy, personally.
Allright - after all it's your decision. I just heard quite similar feedback from other players around.
Anyway since we can switch them off, it's all fine.
Choicerer wrote:
Dharokan wrote: What about setting a value for special terrain density?
And the request is motivated by what? I've asked you several times if the ratio was okay, and you said yes every time. So why would you need such a slider?
You did ask me on normal games like isars. Now playing on Afterlife is quite different. And there are many maps out there that rely on large areas of plain terrain. So the request has been for rising gameplay compatibility with as many maps as possible.
Error: signature too large
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

Dharokan wrote:Allright - after all it's your decision. I just heard quite similar feedback from other players around.
Anyway since we can switch them off, it's all fine.
Let me elaborate - the idea behind the unsynched menu is that it can be accessed by anyone and you can control the players who can't access it at any given point. Because of Wesnoth Engine limitations, the only other possibility is adding a right-click context menu, however they can only be accessed by the player who is currently playing their turn only (not observers either). With the unsynched menu, I've been able to block the currently playing person from accessing the menu, and allow the observers to also access it (although by clicking on the currently playing person's question mark only, due to said limitations). If I add a right-click context menu, I'm allowing the playing person to access the menu and read the long info when they should be playing (and preventing that had been the original idea behind the marks). But two alternatives come to mind - either adding the right-left click unsynched menu you can find in mods such as New Settlers, Orocia or Era of High Sorcery (I believe) as an alternative OR I could make it that if no suitable terrain is found that would satisfy the conditions that I give, the mod will just try to put the marks on any void/off map terrain it can find. In the case of Afterlife, that would work, because the offmap terrain is in the middle only, but my function tries to place the marks on one of the map edges.
Dharokan wrote:You did ask me on normal games like isars. Now playing on Afterlife is quite different. And there are many maps out there that rely on large areas of plain terrain. So the request has been for rising gameplay compatibility with as many maps as possible.
I see. In that case, it can be done. It might be a bit tricky, because of how these terrain chances are implemented. I'll consider it and maybe do it soon.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

Well, as per Dharokan's request - here's version 1.8.
What it introduces-
You can now adjust the amount of flatlands to appear on a map (from -15 to +15%). Higher values, especially negative ones seem to sometimes mess something up on Isar's Cross requiring a restart (Wat?! I don't know if any other maps are affected by this).
No matter whether you have the question mark dewds switched on or off, you can now access the info menu by quickly left and right clicking one of your units in succession. (Thanks Ageless Era for being there for me).
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

1.8 broke both ways of accessing the info menu.
1.8b fixes them.
1.8c changes the start message so it's less ambiguous and changes the chiding message that is displayed if a player tries to access the info menu by left-right clicking on one of their units (but not the question mark).
1.8d fixes the current terrain set not displaying properly and a typo in the mod info menu.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

1.8.1 adds the option to only randomize terrain on human players' turns.
Choicerer
Posts: 238
Joined: April 29th, 2017, 11:37 pm

Re: Choicerer's Map Randomizer

Post by Choicerer »

2.0 is now available on both the 1.13 and 1.12 server.
Vasya's Mirror Algorithm
Thanks to a contribution from Vasya, the mod's mirror function will now work with almost any map, automatically detect the mirror type for that map and mimick it. There is no longer need to tinker with any sliders. The mod works with all sorts of maps, regardless of how many mirror tiles there are per hex (for example Auction X has 4 identical sides). The only maps which will not be mirrored properly are either these which do not have any mirror at all in the first place or whose symmetry is messed up in a major way, even if some mirrored tiles are present. Tiles which do not have any mirror tiles in the original map will not be mirrored by the mod either.
More open space
I've adjusted the default ratio of flatlands to rough terrain by 10% in favour of flatlands. You can still use the slider to bring it down, though.
Keep oases from the original map
You can now choose to keep the oases that had existed on the original map. This will impact the amount of embellishments to be generated.
Don't randomize tiles under pre-existing units
This option will make the tiles that have units on them in the source map never be randomized by the mod.
Bugfixes
Plenty of minor bugfixes.
Screenshots
Will be updated soon.

2.0b fixes a bug that had happened with keep tiles under units on (I think one person downloaded the buggy version).
Post Reply