WorldEngine: a world generator exporting to Tiled


(Ftomassetti) #1

Hi, I am the co-maintainer of WorldEngine and I am currently working on exporting worlds generated by my tool to TMX, so that they can be edited with Tiled.

WorldEngine is an open-source world generator which simulates plate-tectonics movements and collisions, rainfall, erosion and many other physical phenomenons to automatically generate worlds which realistic and which looks great.

WorldEngine has been used in a couple of games and we are about to release a new version with plenty of features. Among them I am working on exporting to tmx.

This is something you can generated with WorldEngine:

Now, importing maps in Tiled we are working on representing the land and the ocean and starting to draw mountains and forests. As you can see we have still to find good tiles :smile:

However with one click we can easily generate large, good looking worlds of 1500x1500 tiles (until 6000x4500 should take just a few minutes).
We are of course looking for feedback and perhaps help with the tiles :smile:

Is that something you could find interesting?
Comments?

Thanks for your attention!


(Thorbjørn Lindeijer) #2

It’s awesome that you’re working on this export and I think it has real potential to help some projects with generating more realistic and good looking maps. I’m thinking specifically about projects like The Mana World, which I’ve worked on for several years and it’s always been hard to avoid the hand-made look for the natural parts of the world, especially for the overall picture. This problem is also clearly visible in the world map of Invertika.

A similar project I’ve worked on is Source of Tales, you can see its current small world in your browser.

So in terms of feedback, I guess it would be interesting to look at how those maps have been created so that the output from WorldEngine can be as useful as possible to start with. This could mean automatically using the right terrain transitions, though users can also rely on Tiled’s automapping feature to turn the exported map into something that’s prettier on the details.


(Ftomassetti) #3

While I read about the automapping feature I am not sure I understand exactly its potential. I think of it as something which could fix the shorelines for example. However we can just tweak the exporter to take care of these details: for example we already use the proper shorelines tiles for the intersection between lands and ocean or lands and rivers or where these three kind of types meet.

We could later smooth some curves here and there (automatically of course). This is just a first prototype and we are currently mapping a single cell from WorldEngine to a 3x3 grid in Tiled so we the blocks a bit evident for now.

One point that would help me is to figure out what data make sense to export: WorldEngine considers many physical phenomenons. This is necessary to have realistic worlds. However we have somehow to condense all that information in a single tile.

We have for each point its elevation, temperature, rainfall, presence of rivers or lake and other pieces of data. We have also the type of biome (from boreal tundra to subtropical west forest: we have ~30 kinds of biome coming from the Holdridge life zones model).

The point is that I can either show that a tile is a mountain or it contains a forest: it becomes hard to show both. So we started drawing the coasts and rivers (this is done) and we are thinking about what to draw later. Probably the mountains would be very important to handle correctly.

I think it would help us to pair with someone in needs of maps for his game/simulation. It could help us discussing what information he needs in the map to export.

I really believe in the importance of building a chain of tools: for WorldEngine would be great to be interoperable with an editor and we hope that making a world generator compatible with Tiled could benefit also Tiled.


(Ftomassetti) #4

This is an update:


Still a lot of work to do but we are working with a designer on a great tileset and we are getting more and more details.

And we can generate endless maps with this tool. This one is 1536x1536 tiles


(Sdrib) #5

Looks amazing! Would be a great addition tot he Tiled toolset


(Ftomassetti) #6

thank you @sdrib! I think we will soon release WorldEngine 0.19.0 and then the TMX exporter will be released as a separate plugin


(Thorbjørn Lindeijer) #7

Indeed that looks awesome!

I think you’re right that probably it doesn’t make too much sense to rely on the automapping feature to do part of the job. I was thinking also about using it to create trees out of “here’s a tree” marker tiles (it’s how the forests were done in Source of Tales), but as long as the exporter is customizable enough there is no need for that.


(Rishavs) #8

hi ftomassetti

will it be possible for you to put up a sample isometric tmx file that you have generated so far?
the image has left me salivating. :smiley:


(Ftomassetti) #9

Sure, and feedback would be welcome.

You can download the tileset from here: https://github.com/tipsy/isometric-tiles

While one map is available here:
tiled_seed_18000_comp.tmx (602.7 KB)

My plan is divided in two phases:

  1. Generate a realistic world using WorldEngine. We are still working on details to represent the vegetation. Consider that WorldEngine produces 41 different biomes according to this model (https://en.wikipedia.org/wiki/Holdridge_life_zones) so it is not trivial to represent them

  2. We will using these worlds in Civs, which will simulate civilization evolution. It means that from there we could derive inhabited worlds and generated maps with realistic positions for cities, streets, ports and so on

  3. Is already reality and you can see here a prototype while 2) is something that will require much more work but we think we can arrive there.

All our maps will be exported to TMX so that users can customize them using Tiled or use them with all libraries which support the TMX format.

Of course feedback and contributions are very, very welcome.


(Rishavs) #10

Thanks. It looks amazing in Tiled. I will try to load it up in Love2D and see how it looks.

From the point of view of using it in games, i have a suggestion:
Have water in separate layers. For example: water, deep water, etc.
The seas are currently merged with ground level.

So it will make it easy for me to say that all tiles in that layer are non traversable. or traversable only by boat.

I am glad I found out about your project. It looks very interesting.


(Ftomassetti) #11

Thanks! I pkan to make this exporter configurable in the future, for now we have 3 kinds of water: river, sea, ocean (you can distinguish them from the color). However they are in the ground layer


(Rishavs) #12

Another suggestion:

Will it be possible to add these tile types (river, ocean etc) also as a custom attribute for that tile?
From what I know most people use custom attributes rather than layer names to distinguish tiles for any logic implementation.

Also, would you mind if i post your map in some forums? I will attribute worldengine and link back, of course.
A huge tiled map like that will be amazing for a lot of people currently prototyping map loading.


(Ftomassetti) #13

That is a nice idea. I have still to understand all the potentiality of the format and how people use it. Custom attributes could be a great way to embed a lot of information (humidity, aridity, precipitation, etc.)


(Rishavs) #14

Thanks. I will share the map in the few forums i visit and see what people say.

Another idea, maybe for later;
Instead of a single huge map, an option to instead create multiple smaller maps of a given size would be nice.

For games, this will mean people can load small zones as per rendering needs.


(Laiff) #15

@ftomassetti Very impressive work! I work on my game and planing to use worldgenerator and exporting then to tmx format. As I can see now exporter already in work, can I join to developmant of this exporter?


(Ftomassetti) #16

Sure! Let’s talk about that here or on https://github.com/Mindwerks/worldengine (you can open an issue for that)