Random Mapzoid: NONSENSE SUBTITLE v0.60
I started a project a few months ago, with the intention of creating random 'world-scapes' consisting of BMP files, based on Libtcod's built in noise generator and some additional hand-drawn algorithms and other stuff.
This program is developed solely with the intention of creating BMP / PNG files which can be interpreted by a secondary program (WorldEd) which is used for creating
Project Zomboid maps.
Only a few people have access to these mapping programs at the mo, they are subject to release reasonably shortly once the Zomboid devs have cracked all the recent Steam-based furore, re-done the engine, and a few other things. Basically, I don't know when general mod tools release is, but I expect it's fairly soon (maybe this year, probably early 2014).
But I'm not posting it for that reason, basically I thought a few people here might be interested in this program, as it is nothing more than a means of painting a pair of 'noisy' PNG files, based on arbitrary noise parameters, and it is built up of 10 or 11 'height' layers which can be altered and tweaked and stuff to suit your own needs.
It creates some fun little town shapes as well, can fill in these towns with externally set colours, can dress roads to arbitrary patterns with arbitrary colours, and is coded in Python.
It's also all BSD'd, for much the same reason as my other project. Not so much that I think it should be held up as a paragon of programming, but just because I think it would be better to be open than closed. Fun to share, and all that stuff.
I've set it up with the premise that most of the inputs are generally changeable by external text files, with the possibility that it will do some weird stuff (if tested) that it isn't designed to do, and it generally fits in with some of the stuff that some of you fine folk would be interested in playing about with.
I don't know, have a look, play around, have fun and all that good stuff
The Python Code, or Windows Executable Package, can be found in the links below.
EXECUTABLESOURCE (Python 2.7) SOURCE NOTES:
Current Change List:
v0.20
- Town Algorithm Changed. Works a little better.
- Minor and Major Grids shifted out a little.
- Towns can now be generated in a world with but a single region.
- Some data externalised, in a text file called init.cfg, keyed to the Program variable name. Allows tweaking of certain things when compiled.
- Can now set file names.
- Can now set a seed. Believed to be deterministic (for noise at least).
- Add noise function changed to work more gentler-er on 2nd / 3rd / 4th uses. 1st still makes a large random mess.
- Support for non-square island maps.
v0.30
- Fixed crash with non-square maps, and towns
- Fixed some other bugs that came up
- Zoom and Overview preview maps. WSAD and Arrow keys to scroll.
- Externalised a lot more data - generalised the approach to graphics types. Can now use own rules for contour lines, colours, map references etc. by editing the init.cfg file. Not very well laid out at the minute, but it can be done. (needs a better parsing system, really).
- Fixed up the region preview mode, of a fashion.
v0.50
- Fixed scroll crash error when first starting and map size > 300
- More error handling (none of it detailed)
- Added TRUNK ROAD function
- Separated streets from the map data - can now preview and clear before 'committing'.
- Toggle the display of streets. Now show up in all modes.
- Re-ordered UI arrangement slightly
- JSON output for setup.cfg - a deal more readable by non-mechanical sentients
- Rewrote Readme and setup_about.cfg to give a little more help beyond the tooltips
- Outputs PNG file as well as BMP
v0.51
- bug where you can't ESC from town selection, scrolling keys buffers and all sorts of weirdness. Now right click to cancel, it makes a little bit more sense (I think). Can now scroll map whilst selecting position.
- Tidied up the levels on the JSON outputs so they are in order
- Removed redundant and commented out code from source script to tidy it up a bit
- Now draws in 'urban regions' and pavements. Width of pavements, and colours for all regions (picks random from a list) and pavements defined in setup.cfg.
- Fixed some more 'non-square' bugs associated with mixing up map_height and map_width occasionally in the script.
- Added 'Invert Heightmap' option
- Added 'Dress Roads' function. Adds smattering of textures around roads, texture and pattern defined in setup.cfg
- UI tidied up and re-ordered slightly again.
- Added help.txt tutorial
v0.60
- Help text updated
- Disassociated graphics and colour schemes from init data to help generally with 'modding' values
- Included weird example_gfx colour scheme - to overwrite if necessary
- Externalised autotown size and density modifiers for experimentation if required
- Externalised street_no_veg modifier around streets and allowed general whole numbers to be used
Read the readme.txt for some instructions on how to work the program, or just ask here.
EXAMPLE OUTPUT:
IN WORLDED (perhaps explaining slightly the reason for starting this project):
This program is released open source under a permissive BSD license. Contributions or wholesale rip-offs are more than welcome, if you should so desire to join in.