Worlds Unlimited (formerly 'Large World Fits All')

What was 'Large World Fits All'v2 is now Worlds Unlimited.

Basically in BETA until the Random Map Size bug is fixed by Firaxis. In the meantime, I have some other features I'd like to add, and some aesthetics to tweak. If anyone has anything they'd like to add, change or improve, now's the time to let me know!

Cheers & enjoy!
 
Cool skweetis! I'll take a look at it later.

Here's a few ideas for you:

Try to place civilizations according to their culture group, for instances Middle-eastern civs are placed near each other, etc. This includes city states if possible.

Luxury resources could also be given a preference, for instances Wine near mediterranean civs, Ivory near middle-eastern, Silk near Asian, etc.

Add an option to make a few mountain chains to make for more interesting maps.
 
Culture grouping I would definitely like to refine, I will see what I can do.

As for the mountain ranges, I'm not impressed either... Beta 2 should be available soon ;). I figured out last night that I omitted a section of code by accident, as tectonic islands aren't showing up either! So I'm resolving that at the moment.

Im also going to get the terrrain and features to have a little more distinct regionally, seems kind of scattered to my eye.

Tweaks and balances are what I'm focusing on now that the code is *mostly*functional.

Cheers for the feedback!
 
Now Available:

BETA.2.:.Updates & Corrections -23NOV2010
* Included ReadMe-WorldsUnltd.txt
* Implemented Tectonic Islands
* Reorganised code to correct Mountain ranges issues
* Tweaked Fractal, TerrainGenerator and Feature Generator values.
* NEW Custom Option [Mountain Peaks] that adjusts the 'extra_mountains' var. Choices are:
"Normal", "Extra Peaks"(Default), "Abundant Peaks", "I'm a Shirpa, take me home!"
 
I like the clarity of the Land Adjust options, how you provide an estimation of starting cities per civ. I might adopt that. I'm unclear, though, on why you are reducing the number of map sizes to three instead of six. Why not keep the original six sizes as they were? If a person wants to play Small, they can select Small. I don't see why they should be barred from playing Standard or Tiny.

You might want to consider increasing the mountain grain as you increase mountain volume. Or include an option for it. There comes a point where the thickness of mountain ranges ceases to have an impact on diversity and just consumes map tiles.

As for WorldBuilder, I don't use it so I have no experience of what does and does not work within the software. You might want to add a logic statement that will check for 0 civs & city states and then default the values according to the map size selection. i.e. if the script does not find any civs tallied, it will check to see what the map size is and fill the iNumCiv value according to map size. Duel = 2, Tiny = 4, Huge = 12, etc.

... And you spelled my name wrong. <w>
 
Doh! I will fix your name in the next build! I'm terrible for spelling... then once I spelled it wrong once, I just refered to that one, or cut and paste....so its likely wrong everywhere! :D

It's actually at three sizes now for an idea I had added to the pile, but I'm still tinkering with. Funny you mention it, because that's my next task: handling grid sizes and randomizing numPlayers (or at least at this point, numCityStates, just for variety)

I was noticing that mountains still aren't looking right when I was doing screenshots in game, and I'm not so fond of the 5-6 tile thick mountain ranges either. I'll take your advice look first at the grains though, thanks.

As for the worldBuilder, I use it to quickly see results, and the log (if using the Unofficial Patched version) makes an awesome debugger. just save your lua and hit generate map in WorldBuilder, instant feedback (unless of course you change anything in GetMapScriptInfo() or GetMapInitData() then you need to relaunch WorldBuilder). I just haven't bothered with accounting for it, just as easy for me to manually change the values. I'm leaving that to the end too.

I like the idea of Culture grouping and stuff, I might see about a lake or two more and adjust the available land accordingly, and there are a dozen or so more aesthetic things I would like to tweak, but all that will be last, since aesthetic is pretty subjective and will likely take some time.

Any feature I add from here on in, I would like to make into an option, if it can't be tied in with an existing one.

And help yourself to any code or ideas you like, just make sure you spell MY name right! ;)

Cheers!
 
Also, you should remove the sea level option. Land Adjust effectively makes this redundant and having two options that do the same thing will just obfuscate the clarity of your n cities per Civ estimate.

As for civ-specific starting locations and such, I've been toying with this idea in my head. It would seem to me that the best course of action would be to organise civs according to art set since this is the only distinguishing data that Civ5 applies to civs. Alternatively you could make a string comparison against civ names and then apply whatever additional information (time span, geographic location, major religion, etc) yourself; however, in order to keep the map script current you would have to continually update whenever a DLC or expansion pack is released. It would also be next to impossible to keep up with mods. Comparing based on art set seems the most adaptable option.

I saw a map script somewhere that would give civs additional starting units. That's great except for the fact that if someone applies a mod that overhauls units, that script will be broken. So be careful when tying your script to the game, you're making your script more dependent on forces of which you have no control.
 
for the linked civ starting position, I was using this mod in all my game on Civ4 : http://forums.civfanatics.com/showthread.php?t=290694

what was also interesting in it is that you could add custom civs just by setting their earth location found on google map...

if you use something like this in civ5, you may even then set the continent type relative to grouped culture start at the end of map creation :)
 
I swear Ty, we must share a brain or something! Same time I corrected your name, i deprecated the sea_level option!

I'll look into those items for the Culture control, thanks guys!

I'm also studying your Rhineland script Ty, it plays nicely with my script. I'm going to build on your idea, but with changes to take into account that my script makes oceanic worlds. I really do love the terrain that your rainMap makes!

Here are a list of changes I'm working on to incorporate better with my script (and aesthetic:
  • Divide each hemisphere into 4 distinct temperature bands: Tropical, Temperate, Tundra and Frozen.
  • Prevailing wind source MUST be located at center of major body of water (thinking 3-5 tiles or more), with wind magnitude dependent on number of tiles in the area (3-5 tile bodies don't move as much air as an ocean does).
  • Prevailing winds that carry into another temperature band, will cary the source temperature into the other band based on magnitude(Wind sourced in a 5 tile lake in Frozen band will carry Frozen values into Tundra as far as the magnitude will allow, does that even make sense to anyone but me?)
  • Easterly - Westerly winds by Hemisphere: If Northern-Hemi is easterly, then Southern-hemi is westerly and vice versa (which is basically how it works on earth)

This will then tie in perfectly with the Anthropic Climate Change mod I'd like to do one day! (do a search for Anthropocene Epoch to get an idea where I'm headed)

Also, with regards to random players, I think I will have to do it as a separate mod, and I have an idea on how to do it. I'll provide the details once I have a successful test run!

Anyways, thanks all and cheers! Hope to have Beta3 done for monday or tuesday at the latest. Lots of new goodies!

-J

edit: And thanks for the encouragement Madeira! I am aiming to please!
 
UPDATED AGAIN!

BETA.3 - 25NOV2010: Updates, Corrections & Tweaks

* Corrected spelling of ColBashar's name! (oops!)
* Custom map sizes: DUEL:48x30 TINY:64x40 SMALL:80x50 Sd-96x60 LARGE:112x70 HUGE:128x80
* Added functionality for compatability with Firaxis' WorldBuilder.
* Tweaked Mountains and Hills generation.
* Tied Sea Level option into Unusable Landmass Compensation.
* Tweaked some generator values for improved map results.

The next update won't be for a while (unless there is some gross bug I missed in testing) while I focus on the culture grouping and writing my own terrain and feature generator, inspired by methods employed in ColBashar's Rhineland.

Cheers!
J
 
Sounds cool, good luck with that! :)
I'll start a new game with the updated version later today or tomorrow ;)
 
skweetis, I think there's some problem with this latest version, even if I choose Unrestricted players start, every civ is starting on the same "continent" most if not all of the time, sometimes I get civs half a dozen squares away from each other :(
 
I see the problem. While sea_level no longer affects landmass, it is still listed as a selectable option. Meanwhile the custom option indices were reduced by 1, assuming that it had been. So at present you should expect strange results and it is impossible to define the starting position method and it defaults to BiggestLandmass. The problem is isolated to the Beta 3 version.

A suggestion, Skweetis, you might consider setting the SortPriority attribute of custom options to their index, for easy reference in development. A more professional alternative would be to create an object which will store the option indices as constants. This way you would assign the constants in one central location where they can be easily changed while their actual usage throughout the script would look like:

Code:
Map.GetCustomOption(MapOptions.START_METHOD)

One other suggestion. Over in GeneratePlotTypes you may want to streamline the WorldBuilder exception handler as follows:

Code:
if worldSize == nil then
	iNumCivs = math.floor(iW * iH / 845);
	iNumCityStates = iNumCivs * 2;
end

It's basically what you're doing but cleaner.
 
Yeah, there's actually a number of issues with 3 I'm ashamed to say! Sorry about that!

Rest assured, Im hard at work on 4 and should have it ready in a few more days. Code has been totally reorganised ( I was getting lost in my own file!), and the terrain generator parts I'm working on may have to wait for 5, as I have some other life stuff to work on at the moment, and can't spend as much time as it needs.

Anyway, I think people will be most pleased with this version, when its released. Much more in line with what I envisioned initially, but with all the extra know-how I have accumulated since Large World Fits All was started.

Stay tuned! I won't let you down! :D
 
Thats great! Take your time, we all have real lives, well at least some of us ;)
So my wife keeps reminding me! :D Things are coming along well though! Soon!

ColBashar: Thanks for those suggestions! The method for the second is obsolete now anyway, because of how I am handling map sizes now, but it still was helpful as the same concept I was able to use in another area! You are my guru!

Is it pretty sad that I JUST clued in that lua is very similar to C? Mind you I haven't farted around in C since Borland C++ 4.0 was new, which may be why... it's amazing what you can and can't remember over a period of time! lol

Cheers, back to work with me!
 
Heya ColBashar, or anyone else that's listening...

is there an easy way to convert a float value into an interger in lua? (IE: round and trim decimals to nearest whole number?

I'll be damned if I can find it in the LUA reference, but my eyes have had it today...

Cheers for the tip!
 
Figured it out.... :D

attached a sneak peek of Beta 4, attached to this post. Zip just contains the WorldsUnlimited.lua...

Some tweaking left here and there, but I hope to have it ready by weekend....

Cheers!

**SNIP**

(removed file, Beta 4 is ready.)
 
Heya ColBashar, or anyone else that's listening...

is there an easy way to convert a float value into an interger in lua? (IE: round and trim decimals to nearest whole number?

I'll be damned if I can find it in the LUA reference, but my eyes have had it today...

Cheers for the tip!

use math.floor(x) to truncate floats to ints. Of course, there are no actual ints in lua.
 
Top Bottom