Procedural Hex World

Some early stages of procedural generation in Hex world. I’m using Manhattan distance with voronoi to define biome borders. At the moment I have fields, deserts, and swamps in the world being generated with different terrain. This is still early stages, but an interesting test. The recording software im using is still a piece of crap, so expect stuttering.

Ultimately the procedural gen is looking cool, but is bogged down by that whole entropy thing that follows it like a curse, 100 million ways to make the same bloody thing.

New World Manager

Some progress on the new world manager for Hex World. Allowing me to dynamically load in world chunks to allow for the support of significantly larger levels. Hopefully this can be done in time for the imagine cup world finals. The recording software is twitchy as all hell and slow as shit, so it is all better than it appears, still not where it needs to be though. Refactor, rework, refactor etc etc.

Here is a video of the chunk loader set to load a tile per frame, slowing it down and visualising what it is doing. In the above video the chunk loader was set to create half a chunks tiles per frame. This whole thing may need some threading at some point, but getting threading to work with unity requires a certain level of self hatred to put your self through that hell. In other words expect that soon.

Image below of a 128 x 128 chunk world (16384 total chunks) in reference to the player and his total loaded space,which is a 4 x 5 chunk space. So yeah, way more space.

128 x 128

Hex World World Shifting

I’ve needed to create some better systems to manage world shifting in the game. And have managed to do so with a system that buries all the back ground code made to communicate with the world manager in an abstract world shifter class object.

Here is a video showing 3 kinds of world shifters I have made with this system. The first is a sphere shifter, second a volume shifter,  and the third is a pulse shifter.

Hex World New Tiles

I’ve gotten a little tired of how uniform the whole world looks with these perfect tiles. I want to create a tile system that will better reflect the environment you are in. If you are in a grassy field then you should not be getting tiles that are perfect in shape, but a little jagged.  But if you are inside of a house you may want perfectly shaped tiles.

So I need to create a procedural system that can create tiles as jagged as I want them for a scene, while still keeping all the tiles perfectly interlocked. In order for me to do this I shift each vertex within a certain sized circle based on how jagged I want the hexagon. Then make sure that any other hexagons who share vertex positions apply the exact same offset.

hextile offsetting

The application of this new procedural approach worked really well, letting me have complete control over how the tiles are formed and creating a nicer aesthetic for more natural environments. Below are some tile generations at no offset, some offset, and max offset.

Hex World First Demo

Have been working hard on Hex World these past few weeks and have finally gotten the world manager system created that can handle the dynamic nature of the world, a variety of tiles that have unique behaviour, and some simple tools that has helped me create a simple level to test everything out in.

screenshot_Mon_May_30_00.20.02

The video below shows how the world manager can maintain different tile stack compositions and handle the recreation of tiles, the grouping of tiles to move as one, and a bunch of different world tiles with different behaviour. There are grass tiles that sink in when stood on and be destroyed, pressure switch tiles that can be activated, mine tiles that can blow up when stood on or wired up to a pressure switch tile, and jump pad tiles that can launch the player up as well as some others.

Hex World Experimenting

I’ve came up with an idea for a game after playing Legend of Zelda A Link Between Worlds and messing around with the sand rod. The sand rod is an item that can force sand to rise and form into platforms to walk on. What I want to do is create an entire world based on this concept.

What I have been experimenting with is a form of world consisting of hexagon shaped tiles that can shift up and down to form new terrain or create visual effects, such as craters or waves.

Here are some early concept videos of the kind of effects I could make.

Looping World Terrain

Was messing around with Unity to create a looping world. Bit of a difficult thing without just using dead land and teleporting the player unknowingly to the other side of the world. What I got set up is a series of terrain cells that stitch together and store objects locally, meaning objects move locally to there cell and not the world. They then trade object references with one another whenever they try to cross borders and change the objects local reference. Below is a video where you can see all of this working, including the player jumping around in the object hierarchy on the right and the world shifting to keep the cell with the player in the centre. The effect was pretty cool, and a fun experimentation with Unity’s terrain system.