Fantastical

Fantastical 32-VI-27

resorcerer

Chieftain
Joined
Apr 3, 2013
Messages
85
resorcerer submitted a new resource:

Fantastical - Highly configurable and randomizable map script generates surprising lands and squiggly rivers.

Maps with not much bearing on reality. Vast jungles next to icy wastes, etc. Mountains tend to divide regions of differing terrain. Number of deep oceans is controllable.

The map is a rendering of a polygonal world--a smaller map is just a lower resolution, therefore has smaller continents, regions, mountain ranges, rivers, etc. The number of polygons that make up the world of is controllable with the Granularity option.

It is possible to enable Climate Realism, but it's no Planet...

Read more about this resource...
 
It SOUNDS interesting . . . I don't suppose you can post a few sample images?
 
Ooo, that looks like a lot of fun. The customization seems very flexible. I'll have to give it a whirl after this next patch finally comes out.
 
The customization seems very flexible.
I went a little nuts with the options when I ported it from Civ 5, because Civ 6 doesn't have a hard limit on the number of map options like Civ 5 does
 
I really enjoyed this in Civ 5. Thanks a lot for porting it, and I hope you continue to develop it :)
 
The extra options were nice, like existing roads. But got a lot of amber on sea resources.
 
First of all thank you for the nice script and forgive my english.
I tried a couple of match and for what i've seen till now there are at least three bugs.
First of all a bunch of barbarions spamming always in the same places.
Second, I'm playng with Poundmaker, and seems that instead of just a couple of tiles, it acquires all the trade route tiles.
Third, instead of boosting state workforce after building the first distrect, in my case a campus, it boosted writing.
I'm using various mod but nothing was wrong until I tried this one.
That's all for now.
 
Last edited:
The maps are awesome however it crashes half of the times. i tried to make a map with this configuration:
large
12 CS
one less civ than default
no wrap
two ocean rifts
two medium seas
no continents
few islands
few lakes
two medium seas
damp, new, cold
land on poles - yes
realistic - yes
For some reason, it creates a map in world builder and it is awesome, but fails to create the map when I want to start a game with these settings.
Anyway, still awesome script, best so far! If I will find out how to save maps from WB, I would be able to start my epic game (however I will lose some adventure spirit in the process)
 
i tried to make a map with this configuration:
Thanks for the detailed report! Why did you set Islands to Few? With no continents, that means there will be almost no landmass (two large islands and three small islands). I can imagine why it crashes. There isn't enough land on this map to find start positions for all the civilizations.

That might explain why I can't reproduce any of the crashes people have been reporting: I've been testing in world builder, with the assumption that as far as the map script part is concerned there's no difference (world builder even does start positions, after all). But I've also created several games with this map script, with no crashes. So I just wish I could repdroduce. I'm guessing it has to do with start positions, because when it did crash on me, it was before I edited the arguments passed to the start positioner.

I guess I have my work cut out for me, trying to crash the game with maps without enough land. The annoying part about this is, when it crashed before from start positioner problems, there was absolutely no error reporting. The Lua log just ends after saying that it's creating the start plot database.

Since there's no fixing the game's ungraceful behaviour when the start positioner doesn't get what it wants, probably the only solution is to add some padded cell logic to my script, so that if users choose a combination of options that will probably crash the start positioner, the script will either reduce the number of civs (if that's possible), or override the user-selected options to create a map that will give the civs enough room.

First of all a bunch of barbarions spamming always in the same places.
Second, I'm playng with Poundmaker, and seems that instead of just a couple of tiles, it acquires all the trade route tiles.
Third, instead of boosting state workforce after building the first distrect, in my case a campus, it boosted writing.
I'm using various mod but nothing was wrong until I tried this one.
I struggle to imagine how bugs two and three might be caused by a map script. The barbarians could be caused by a map that has more land, or more deserts, tundra, and snow, depending on what options you selected. I played on an All Land map with Arrakis rainfall, for example, and the barbarians are a constant problem because almost the entire map is desert, and there's too much land for the number of civilizations to cover.
 
I found out that generating a map in World Builder doesn't give positions to city states. Probably this is why it's less prone to crashing. By lowering the minimum fertility depending on how much land per civ there is, the start positioner won't crash even when using your above settings. However if I create a game, when the game starts, it sometimes immediately ends, presumably because the city states make everyone start nearly on top of each other. If I set the city states to 0, the game doesn't immediately end, and I just end up with two other civ's settlers within sight. Which is okay. I'll release an update that will make it much harder to crash the game with maps with very little land.
 
Why did you set Islands to Few?
I guess I wanted to make the ocean less empty and just add two-three tiny islands to make it more interesting (Islands of size 3 tiles, not landmasses). I guess I misunderstood that part. I am not sure if it conflicts with the amount of lakes that I set (few).

Also, thank you for reply and update I will test the map.

P.S. seems it works now.
 

Attachments

  • Screenshot (201).png
    Screenshot (201).png
    1.8 MB · Views: 497
resorcerer updated Fantastical with a new update entry:

6

major changes to river generation:
- every landmass has a river if possible, even small islands
- there are two map options controlling rivers: River Length / Number of Rivers, and River Forks
- the amount of river tiles for each landmass is determined by how much rainfall falls on that landmass in total (rainfall being a quantification of the terrain types and features)
- rivers are in general shorter, more numerous, and with fewer tributaries
- rivers connecting lakes may have been broken...

Read the rest of this update entry...
 
I'm trying to fix the multiplayer desyncs players have been reporting, and I began by seeing if the map script will produce the same map given the same map seed number on my own machine. It won't! Which I can't wrap my head around: That means there's some unpredictable element other than the random number generator (which should be predictable given the same seed) in my script, somewhere.

The differing maps generated by the same map seed are very similar. They have the same continent shapes and regions, but different placements of mountains, lakes, terrain tiles, and rivers. This means, because of the order in which these things are generated in my script, that the random numbers are all fine and predictable up until mountain range generation. I confirmed this by printing out every random number to the Lua log, diffing the results, and doing a stack traceback on the first random number that differs--the 2,859th, in this case.

But what is even capable of introducing unpredictability? os.clock(), obviously, but I don't use that. Given the same random number seed, why would a script not be entirely deterministic?

edit: The answer is apparently pairs(). Beware pairs() in writing map scripts, if you weren't already aware of this.
 
Last edited:
Top Bottom