Implementation PolyWorld

msteiger

Active Member
Contributor
World
Architecture
Logistics
Name: PolyWorld
Summary: A world-generator that is (currently) focused on island generation
Current Goal: Fix layout to deal with multiple lines of extra data
Curator: msteiger
Location: https://github.com/Terasology/PolyWorld



The idea is based on the map generating algorithm by Amit Patel of Red Blob Games. The port of the original Flash demo is complete, I've been adding extras since then.
 

Florian

Active Member
Contributor
Architecture
It's cool to have this technique available for terasology. The nice thing about this type of terrain generation is that it gives a lot of control on what gets generated. This control makes it relativly easy to add certain terrain features. The linked page from Amit Patel is really worth reading!
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
upload_2015-1-27_21-19-45.png


Moar progress! This is a WorldViewer screenshot (false biome colors) of mixed world regions. Mixed means that different graph types and resolution can now live next to each other.

Some world regions are empty to provide "open sea" areas between the Carribean-style islands.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Woohoo maps of interest! :)

Think we'll be able to embed the "world map" concept directly in the game soon rather than just via external viewer? I like how you've got sections of the world as a layer above terrain/island generation. That would be great for some kinds of generation during the game, for keeping worlds like L&S limited to a few sectors (the static world map with parcheesi squares etc), as well as for displaying an actual world map
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
I need to check on the Minimap module (and maybe the AWT facade) first to find out how the minimap is created at the moment. It could take some time, but it's on my ToDo list :)
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
With lots of PolyWorld-relevant code merged into engine/CommonWorld and TeraMath, PolyWorld is now compiling using the default code base. As a result, you can now find PolyWorld 0.4.0 in Artifactory. Yay!

It's still not stable yet, but you can try it out without the need to compile it yourself.
 

Linus

Member
Contributor
I downloaded the module using gradle and enabled it, but it didn't show up in the world generator dropdown list. :(
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
The world generator should be listed as "Islands". If it doesn't show up for you, do you see any error messages in the console / log file?
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Works fine here - and looks AWESOME! :D Beautiful small islands, one even had a little lake. You could totally develop some sweet castaway type survival in worlds like this. WILSON!!!!

@DizzyDragon the most typical issue is that the module didn't fully build. A module that's simply "present" will make an entry in the game module menu, even if no code has compiled (and produced a world generator the game will see)

I just did gradlew fetchModulePolyWorld, made sure my CommonWorld module was at latest, ran gradlew idea, restarted IntelliJ, launched, enabled module, picked Islands :)

@msteiger I know you're not done yet, but plenty of our "live" modules are aren't fully complete. Want us to throw this into the pile anyway? The islands really are a whole world apart from our usual generators. Showcase video? :D

Could be fun to do a somewhat directed survival style a la Don't Starve - each island has one or more unique resources, have to unlock some tech tree / building stuff to make new types of bridges to get new places, otherwise the world holds you back with its danger.
 

metouto

Active Member
Contributor
Art
Could be fun to do a somewhat directed survival style a la Don't Starve - each island has one or more unique resources, have to unlock some tech tree / building stuff to make new types of bridges to get new places, otherwise the world holds you back with its danger.
:omg:
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
I'm working on ironing out the last few bugs, which shouldn't take too long, I hope. We could give it a shot then.

In order to be playable, it should be able to define proper spawning points. Right now, you spawn just before you drown far off somewhere in the open sea :cry:
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I'm working on ironing out the last few bugs, which shouldn't take too long, I hope. We could give it a shot then.

In order to be playable, it should be able to define proper spawning points. Right now, you spawn just before you drown far off somewhere in the open sea :cry:
... if you enable Breathing :D

But yeah, we should improve spawning already :)
 

Linus

Member
Contributor
@Cervator: Thanks, I indeed forgot run gradlew idea and the modules were not compiled. Everything works fine now.

@msteiger Is this giant nerdpole a bug or is it some development feature?

Terasology-150220130634-1152x720.png

And it has pretty water on top.
Terasology-150220130046-1152x720.png

Seed: Rcn5y6oWaPdzQJTLduUpeJ61TlMblEmq Location: (-146, 242, 258)


I was wondering if it would be doable to add a second generator to the dropdown list, that just generates a single (large?) island in an endless ocean?
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
@DizzyDragon I encountered the same glitch in the matrix - talked to @msteiger a while ago and it turned out to be a floating point errors. So neither a feature nor otherwise intended.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
I was wondering if it would be doable to add a second generator to the dropdown list, that just generates a single (large?) island in an endless ocean?
Plain Perlin has world config options like vegetation coverage etc. I bet this world type would have all kinds of neat things that could be made configurable :)
 
Top