Dungeons will serve as a point in the gameplay cycle where you can stop exploring and surviving in the world just to challenge yourself in a procedurally generated fully-closed area full of enemy NPCs. You will be rewarded by rare loot at the end of a dungeon by encountering a final boss or doing a certain task. There will be a lot of dungeon types, for now we are sticking with cave-like dungeons.
Cave-type dungon concept art
To break the monotony of icon creation, Mito and Andrej were given a task to research and create cave tiles for the dungeon generator. Mito did some quick concept sketches of various elements, from cave entrances to cave assets and different tile shapes. We even ordered clay and played around with actual sculpting of cave assets to have a better visualization. Mito’s next task is to thoroughly research the assets we’d want to put in the caves, such as different rock shapes and sizes, mushrooms, crystal veins etc.
Quick sketches for dungeon tiles, dungeon entrance and drip stones.
Domen started working on a procedural algorithm that spawns a random set of rooms (using tiles) which are connected with corridors. He will go more in depth about this algorithm in the next technical blog post. To give you a preview this is how it works – algorithm generates a right tile in a right direction and it makes sure that every room is connected with a previous one so there are zero dead ends or unreachable rooms.
Dungeon generator using prototype tiles.
This is how it looks inside with prototyping tiles and with work-in-progress real cave tiles. We still need to polish tile connection points, ambient lightning, fog and overall looks for caves (more tile variety, different kind of rooms and so forth).
Andrej is working hard to create unique tiles so we can create the best atmosphere in the caves. You will access a dungeon by using its entrance in the upper world, here is an in-game example of one of the entrances that spawns randomly in the world (bigger islands will have more dungeons).
Dungeon entrance which spawns randomly on an island.
This week I made the animations for the shotgun and also added some more animations for all the other weapons for different situations like walking, running and when the player is close to the wall and pulls his weapon closer so it doesn’t go through the wall. Before we just rendered it on a separate layer so the weapons wouldn’t clip into the environment, but this just makes it more belivable.
I’ve rewamped the resource gathering system and implemented a better one which uses Vili’s proximity sensors and new particle system. You can now mine different type of veins and chop down trees. Everything is then connected with an inventory system which also works flawlessly. The next thing about resource gathering is an implementation of crafting system, soon to come!
PLACEMENT TEST FUNCTION
I created something interesting that I can show you: a function that checks if 3D mesh object is colliding with world – other 3D meshes and primitives. The hard part is to check if your 3D mesh is inside another 3D mesh and their walls/triangles are not colliding, because Unitys Physics.OverlapBox doesn’t return other 3D mesh. In the end I was able to do it, the reason being we always do topologically closed 3D mesh colliders and I made my own special functions. Well, the finished product acts like this: