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.
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.
Me and my team just won the UK Imagine Cup Games competition down at Reading yesterday with Hex World. We were up again 2 other teams who had also made it through to the UK finals. The day was very tiring, and very unnerving as we had to make a 10 minute presentation in front of judges that included the head of id@xbox for Europe. I’ve been working on this game since August last year while getting my masters at university and it has been incredibly satisfying to see all the work done paying off.
Below is a pic of all the teams that made it to the imagine cup UK finals, me and my team are on the far right (i’m the one in the gray shirt in the top right corner).
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.
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.
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.
I needed an enemy for hex world, and being a big fan of terry Pratchett’s disc world I made some sentient books. I have never animated something before, so for a reference I watched some videos of the flying book Cheato from Banjo Kazooie.
Using this as a reference I made some key frames for the floating animation for the book. Though the attacking and charging animations I had to make without a reference.
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.
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.
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.