As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Caster of Magic Release thread : latest version 6.06!

(May 16th, 2016, 11:35)vicwaberub Wrote: @Seravy: Thank you for your good work!

Do you know if the map making algorithm is based on diamond-square or is it random only? The worlds in MoM (1994) are very nice (fractal, with bottlenecks, big mountains and great deserts) and I am confused about the problems in "Worlds of Magic" (2015) and "Fallen Enchantress" (2012).

No idea what diamond-square is.

This is how MoM works (CoM changes some numbers but works the same otherwise):
1. Generate a random tile that's not too close to the edge.
2. Check if the tile belongs to a 8x12 map area that was previously marked.
3. If yes, count the number of marked areas. If there are at least 8, continue, otherwise restart from 1.
4. Mark the 8x12 area this tile belongs to.
5. Increase the number stored in the mapmatrix for the selected tile by one, then move one tile to a random direction. Based on the land size setting, repeat "5." a random amount of times (Small 8-18, Large 30-40). If the number was increased from 0 to 1, increase the counter for total generated tiles, otherwise don't.
6. Repeat 5. 2-5 times at random from the same initial tile, but with a different starting direction.
7. If the required number of tiles are not yet generated, go back to 1 and generate more.
8. Tiles that are still 0 in the matrix are ocean/shore/lake.
9. Any tile marked 1 in the matrix has a 75% chance to be grasslands, 25% to be forests
10. Any tile marked 2-3 is forest.
11. Any tile marked 4-5 is hills.
12. Any tile marked 6 or higher is a mountain.
13. Tiles in the top and bottom row of the map are tundra. Tiles adjacent to it are randomly tundra or water.
14. Tiles closer than 6 to the top or bottom edge of the map has a random chance of being tundra, the closer the higher.
15. Generate 8 random areas of deserts. This is done by first selecting an initial tile, then moving to a random number of directions a random number of tiles (very much like when generating land, but with smaller numbers). Any tile not being water in this area is turned to desert.
16. Generate 8 swamps. Done the same way as deserts but on a smaller area each, and ONLY forest tiles are replaced by the swamp tiles. Any nonforest tile in the area that would be the swamp stays unchanged. Note that this latter part was removed in the mod, it turns all tiles into swamps instead.
17. Generate ores. For each NxN area, one tile from the 2Nx2N area is selected at random. N depends on the plane (Myrror uses 3, Arcanus uses 4). If that tile is grasslands, turn it into a mountain, hills or swamp at random. If it's a forest, do the same at 50% chance only. Then generate an ore appropriate for the selected tile, if any is possible.
18. Generate rives. Haven't investigated this one in detail, but the number of rives is hardcoded to 8.
19. Replace any tile with the version that connects properly to adjacent terrain. If no such graphics exist, change the tile into whichever is possible (usually grasslands or ocean)

That's about it.
The 1.50 patch and CoM adds one extra step between 7 and 8 : Locate all values in the matrix that are 0 but are not connected through other such tiles to any of the 0 tiles in the 3rd row (which is guaranteed to contain at least some ocean). Replace these by 1. In other words, fill all inland lakes with generic "flat" type land tiles for AI reasons.
Reply

(May 16th, 2016, 11:59)Seravy Wrote:
(May 16th, 2016, 11:35)vicwaberub Wrote: @Seravy: Thank you for your good work!

Do you know if the map making algorithm is based on diamond-square or is it random only? The worlds in MoM (1994) are very nice (fractal, with bottlenecks, big mountains and great deserts) and I am confused about the problems in "Worlds of Magic" (2015) and "Fallen Enchantress" (2012).

No idea what diamond-square is.

This is how MoM works (CoM changes some numbers but works the same otherwise):
1. Generate a random tile that's not too close to the edge.
2. Check if the tile belongs to a 8x12 map area that was previously marked.
3. If yes, count the number of marked areas. If there are at least 8, continue, otherwise restart from 1.
4. Mark the 8x12 area this tile belongs to.
5. Increase the number stored in the mapmatrix for the selected tile by one, then move one tile to a random direction. Based on the land size setting, repeat "5." a random amount of times (Small 8-18, Large 30-40). If the number was increased from 0 to 1, increase the counter for total generated tiles, otherwise don't.
6. Repeat 5. 2-5 times at random from the same initial tile, but with a different starting direction.
7. If the required number of tiles are not yet generated, go back to 1 and generate more.
8. Tiles that are still 0 in the matrix are ocean/shore/lake.
9. Any tile marked 1 in the matrix has a 75% chance to be grasslands, 25% to be forests
10. Any tile marked 2-3 is forest.
11. Any tile marked 4-5 is hills.
12. Any tile marked 6 or higher is a mountain.
13. Tiles in the top and bottom row of the map are tundra. Tiles adjacent to it are randomly tundra or water.
14. Tiles closer than 6 to the top or bottom edge of the map has a random chance of being tundra, the closer the higher.
15. Generate 8 random areas of deserts. This is done by first selecting an initial tile, then moving to a random number of directions a random number of tiles (very much like when generating land, but with smaller numbers). Any tile not being water in this area is turned to desert.
16. Generate 8 swamps. Done the same way as deserts but on a smaller area each, and ONLY forest tiles are replaced by the swamp tiles. Any nonforest tile in the area that would be the swamp stays unchanged. Note that this latter part was removed in the mod, it turns all tiles into swamps instead.
17. Generate ores. For each NxN area, one tile from the 2Nx2N area is selected at random. N depends on the plane (Myrror uses 3, Arcanus uses 4). If that tile is grasslands, turn it into a mountain, hills or swamp at random. If it's a forest, do the same at 50% chance only. Then generate an ore appropriate for the selected tile, if any is possible.
18. Generate rives. Haven't investigated this one in detail, but the number of rives is hardcoded to 8.
19. Replace any tile with the version that connects properly to adjacent terrain. If no such graphics exist, change the tile into whichever is possible (usually grasslands or ocean)

That's about it.
The 1.50 patch and CoM adds one extra step between 7 and 8 : Locate all values in the matrix that are 0 but are not connected through other such tiles to any of the 0 tiles in the 3rd row (which is guaranteed to contain at least some ocean). Replace these by 1. In other words, fill all inland lakes with generic "flat" type land tiles for AI reasons.

Thank you for your informations! This explain some interesting landmarks like sea straits of 3 or more sea tiles and the randomness of forests. IMO "Age of Wonders 3" and "Endless Legend" creates the best random maps today.

PS: Diamond-Square is an easy algorithm to create heighmaps (good explanation: http://www.gameprogrammer.com/fractal.html#diamond ) for games and other applications.
Reply

CoM 2.2 is released!
-Fixed some serious bugs introduced in the previous few updates, sorry for those.
-4 new normal units, replacing 4 uninteresting/problem units. New : Troll Magicians, Halfling Magicians, Orc Horde, Gnoll Jackal Riders. Gone : Halfling bowmen, Gnoll bowmen, Nomad bowmen, Draconian Engineers.
-Nomad spearmen and swordsmen have a weak bow attack.
-Possible to raise non-summoned elementals as undead
-Somewhat lower resource advantage for AI on the highest 3 levels.

2.2
-Reduced AI resource advantages (production, population growth, gold, magic power) for Hard, Extreme and Impossible.
-Fixed : AI attacks units on unmelded nodes when not being hostile
-AI players will now cancel their own city curses on a city they own at the start of their turn (happens if they conquer the cursed city)
-The AI is no longer able to use Spell Blast against Spell of Return.
-Historian now considers the population of the empire with a 5x higher weight.
-Fixed : Game crashes if you target a wizard without having enough mana using Spell Blast
-Fixed : Gaea's Blessing turns Chaos Nodes into Hills.
-Fixed : Gaea's Blessing displays food it does not produce.
-Improved AI stackbuilding
-Changed astrologer army strength scaling (max was reached far too easily)
-Fixed bug : not getting a turn to cast spells when all units immobilized as the defender.
-Fixed : Death Immune units are not immune to Create Undead type damage's effect to prevent regeneration.
-Phantom Warriors, Phantom Beasts, Air Elementals, Fire Elementals, and Earth Elementals are no longer guaranteed to vanish after combat, they only do so if combat summoned. Permanent versions, suchs as raiders or node garrisons can be raised as undead (unless immune).
-Units with Death Immunty or Magic Immunity cannot raise as undead.
-Fixed : Lair contents are revealed when it isn't supposed to happen (resulted by new earth lore feature)
-Adjusted (lowered) the maintenance cost of Phantom Warriors, Phantom Beasts, Air Elementals, Fire Elementals, and Earth Elementals since some of them are possible to have as undead overland units now.
-Fixed bug : “ghost” spells show up on the F3 screen.
-Removed unit : Draconian Engineers
-New unit : Horde. Orc, requires Armorer's Guild, Large Shield, Negate First Strike, 8 figures, stats equal to halberdiers except 1 more melee and 1 less resistance. Cost is 75.
(Was added because Orcs had no use for their Armorer's Guild despite their speciality being to have all buildings. Draconian Engineers was a problematic unit anyway, building roads does not make much sense for a flying race and more importantly, if they fly the AI uses them to build roads in water. And if they don't fly that's kinda silly.)
-Removed unit : Halfling Bowmen (redundant with Sligers and almost impossible to balance out because sligers already have a low attack strength. Bowmen with 2 attack are close to worthless, but 3 and they're better than sligers (same attack, but way cheaper unit)!)
-Removed unit : Nomad Bowmen (Horsebowmen and Rangers, although more expensive, are far superior units, and playing nomads should be about taking advantage of their superior racial bowmen anyway)
-Removed unit : Gnoll Bowmen (Gnolls are a melee race with a melee bonus, it was odd for them to have bowmen in the first place. Not entirely useless but the slot can be used for way better stuff)
-New unit : Halfling Magicians (same as any other magician + Lucky, cost 150)
-New unit : Troll Magicians (as you would expect, 4 figures, regeneration, cost 150)
-Gnolls can build an Armorer's Guild.
-New unit : Gnoll Jackal Riders – 8 figures, Cause Fear, 6 melee, 3 armor, 4 resist, 3 movement, 3 health per figure. Unlike Wolf Riders, this does not have pathfinding and also moves slower, but is more expensive, stronger and requires a higher tier building.
-Fixed bug – heroes don't show up and cannot be summoned when there are 1000 units in the game.
-High Elf magicians cost 135. Draconian Magicians cost 150.
-Fixed Flying Fortress.
-Fixed bug : AI Players don't find spells when the human player is banished.
-Fixed Raise Dead graphics bug.
-Nomad Spearmen and Swordsmen have a strength 1 and 2 bow ranged attack to make up for the removal of nomad bowmen from the race which is supposed to be good at using bows.
-AI no longer considers banished wizard's previous fortress location a target to attack.
-AI can now cast True Sight against invisible armies even if the enemy wizard does not play Sorcery (needed vs invisible heroes, nightblades etc)
-The diplomatic bonus for banishing another wizard's enemy or defeating them is reduced from 25/50 to 15/40.
-Slightly lowered number of units where the AI stops producing and starts disbanding to preserve the ability to create new units.
-Fixed : Normal unit production limit is higher than unit creation altogether, failures to create unit proceed as though it was a success.
-AI now has a separate (lower) production limit for normal units than units in general, ensuring there is always space left for summons, heroes and mercenaries. (unless the human player used up these slots already)
-When a unit fails to get produced due to the unit limit, production is not lost, but kept for the new project or a repeated attempt.
-The AI now prefers to keep twice as much mana crystals in reserve than previously, to avoid running out too easily if heavy use in combat becomes necessary in multiple battles a turn. (amount : 16x skill instead of 8x skill)
-AI can now flee on turn 2 again (was broken by fixing the turn counter to not skip the first turn)
-Confusion costs 18, resistence penalty is -2.
-Petrify has a -3 save penalty.
-Fixed bug : Cloud of Shadow applies Counter Magic as though Uranus's Blessing was cast.
-Fixed bug : Spell Ward breaks units that enter the warded city and match the affected realm.
Reply

Hello, Seravy.

I have an idea for the development of COM (and MOM1.5).

Terrain specials iron&coal do not apply to certain units.

These are the Shamans, Priests, Magicians, Warlocks, Triremes, Galleys and Warships.

Can you change it so all units are affected by iron/coal?

This will make the game simpler (less arbitrary rules/exceptions) and make the transmute decision more difficult (I almost always pick money).
Reply

(May 17th, 2016, 21:36)Rakir Wrote: Hello, Seravy.

I have an idea for the development of COM (and MOM1.5).

Terrain specials iron&coal do not apply to certain units.

These are the Shamans, Priests, Magicians, Warlocks, Triremes, Galleys and Warships.

Can you change it so all units are affected by iron/coal?

This will make the game simpler (less arbitrary rules/exceptions) and make the transmute decision more difficult (I almost always pick money).
Good idea, I should have done that already.
Reply

Would it be possible to have the AI strength calculations not include ships? Since there is no longer upkeep on ships, it seems they shouldn't count. I find myself under constant attack at higher difficulties because their naval strength makes them appear much stronger than they actually are.
Reply

(May 18th, 2016, 09:42)HaNd_SoLo Wrote: Would it be possible to have the AI strength calculations not include ships? Since there is no longer upkeep on ships, it seems they shouldn't count. I find myself under constant attack at higher difficulties because their naval strength makes them appear much stronger than they actually are.
How is upkeep related to combat power?

Ships are part of the military and are relevant, they can and will attack any enemy forces on water. It is a major factor in fair or below land size. On larger lands, the AI produces very few ships, so it's not going to contribute much to the total ratings. Having a strong navy not only allows invading enemy lands through transporting units, but also prevents enemy wizards from attacking back and even hinders their ability to colonize not yet colonized continents. A galley is worth roughly as much as a unit of halberdiers, so I believe the calculations are fair.
(also, although the AI does not do it, the human player can put buffs on their ships and use them to attack cities, just like any other unit.)
Reply

I'm planning to record my next game and upload it to youtube, is there anything in particular anyone wants to see? realms, races, map settings, etc? If not, I'll use the random generator.
Reply

(May 18th, 2016, 16:26)Seravy Wrote: I'm planning to record my next game and upload it to youtube, is there anything in particular anyone wants to see? realms, races, map settings, etc? If not, I'll use the random generator.

Impossible, big landmass, sorcery realm, but not the horrible background music as in your first videos please smile
Reply

(May 19th, 2016, 02:22)vicwaberub Wrote:
(May 18th, 2016, 16:26)Seravy Wrote: I'm planning to record my next game and upload it to youtube, is there anything in particular anyone wants to see? realms, races, map settings, etc? If not, I'll use the random generator.

Impossible, big landmass, sorcery realm, but not the horrible background music as in your first videos please smile

Here you go : https://www.youtube.com/playlist?list=PL...iFrCv6GTkB

I'll probably take a break for a day or two but feel free to request another one meanwhile.
Reply



Forum Jump: