Tampilkan postingan dengan label Voxel Dwarf Game. Tampilkan semua postingan
Tampilkan postingan dengan label Voxel Dwarf Game. Tampilkan semua postingan
Selasa, 09 April 2013

Shaders and cutaway


I've been working on the function to cut off mountain tops to a specified level so the player can see their tunnels and rooms under the surface. For this I've written a shader to clip off level geometry above a certain point. The function works but will need some additions to look right.
Also in this shot: check out the roughness of the water in the sun, this is from the noisy surface and the lighting. It changes as the day goes on.
The black outlines around the cutaway are a happy byproduct of the edge detection
I'm considering generating a mesh to "cap" the tops of the cutaway so you will only see tunnels and rooms that intersect the cut, not everything below the point of the cut. It may make it easier to see the cut but seeing your network of underground tunnels and rooms at different levels would be fun.
templates-office.com Voxel Dwarf Game

Outlines

I've added some outlines to add borders to the edges of mountains which is an interesting effect.

Outlined mountain edges make it easier to make out the shape of the different mountains in the distance

When turned up the effect creates a cell shading effect outlining the corners of blocks which is a surprisingly useful effect to help see the edges of blocks. It does give the game a much more cartoony look though.
Fake cell shading
templates-office.com Voxel Dwarf Game
Minggu, 07 April 2013

Noisy Meshes

After experimenting with mesh manipulation I'm considering adding some noise to the meshes I generate for blocks, give it a bit more of a varied feeling.

Very noisy terrain

Slightly noisy terrain
This is actually a very cheap way to create noise in the mesh because instead of using a shader to deform the meshes or taking the mesh and manipulating it I use the values used to generate the terrain to decide a bit of variation in the height of each corner to offset the mesh gen values while I generate them. This could use some tweaking but a little noise could go a long way in adding variation the the map and to make it look less like Minecraft, which currently is the first thing anyone notices about the game.
templates-office.com Voxel Dwarf Game
Selasa, 02 April 2013

Archipelago

Replacing the bottom layer of dirt with water to test out an archipelago type terrain generation. I wrote off oceans and islands early on because I didn't feel large expanses of water mixed all that well with the dwarves but the way this turned out it making me doubt my choice.

Missing the reflections water is supposed to have but still.


View from the editor

templates-office.com Terrain Generation, Voxel Dwarf Game
Senin, 01 April 2013

Ambient occlusion for better visibility

I added some fake ambient occlusion to try and remedy the visibility problems I've been noticing in areas of busy terrain. It's not real ambient occlusion but a post processing effect on the screen image. This is a premade script that I'm trying out, I don't have any experience with image effects.

Also in this shot I've changed the terrain generation to avoid adding dirt and grass to steep slopes so there are more mountain faces and less of a blanket of grass over everything.

Also the normal shadows are disabled here so everything is fully lit with just the AO adding shading in the corners. If I added shading to block faces based on direction it would be quite similar to minecraft and other voxel games' lighting. That may be an option for a lower graphics mode or for mobile if that becomes an option.

It helps discern where one block ends and a block on a lower level begins quite well. I'm satisfied with how terrain looks for now so I'll probably start moving on to gameplay code and AI soon.
templates-office.com Voxel Dwarf Game
Sabtu, 30 Maret 2013

It's been quiet here... too quiet

I've been quiet for a while as development slowed down while I studied for an exam in c++ but I'm back on track and have rewritten a lot of code which now runs much faster and uses much less ram. The old code was storing some block data more than once as a sort of overlap between chunks where one chunk would also contain the data of the blocks bordering it from other chunks. Now the chunk code can efficiently access other locks and pull block data to know what it's bordering on. The result is that I can generate faster and generate a lot more. Also the way chunks are sorted and stored has been updated which now makes it possible to generate infinite terrain instead of the fixed map size I used to have. I haven't implemented this because I don't have any use for it but with a function to unload chunks too far away this would be possible.


Ingame shot with Morning sunrise - medium fog preset. Ingame the sun will move over time and ambient light and fog will change to match time of day.

Scaling the textures down to 4x4 pixels resulted in this. This is probably not viable for actual gameplay because block types need to be distinguishable and the textures are gorgeous at full 32x32 resolution but it looks very cute.

Noisy terrain in sunset lighting
Daytime lighting with 32x32 resolution textures


One thing I'm working with right now is how to make terrain easier to discern, this proves to be difficult in some cases partially because of the very noisy terrain with few flat faces and partially because of the distance of the camera from the terrain and the angle. Hopefully I'll find a solution to this without toning down the noise and detail of the terrain.

Next on the programming to do list is the camera controls and the cutaway view for the player to view underground structures. Players will be able to scroll through and set a max height above which all terrain will be cut off and not rendered. This will let players see what's under the terrain so long as it's lit well enough.
templates-office.com Terrain Generation, Voxel Dwarf Game
Kamis, 17 Januari 2013

Water

Water has been a lot difficult than I had anticipated, I thought I could set up some simple rules and let it propagate itself but it seems that liquids are a lot more complicated than I thought, three times with three different prototypes I ended up with infinitely expanding water producing a tidal wave that would engulf the map.

Quite beautiful really, I'll need to add something like it as a natural disaster type event at some point.

My goal has been to make finite water that slowly drains when spreading but can stay stable in a small lake or pool. My newest version works with chunks that keep track of stable and flowing water, updating the flowing water every few milliseconds and it looks like this:

The sides of the water blocks being visible through other water blocks is a bug while I work out water height based on amount of water in the block.

I'm not sure I like even this newest version so I may have to re do it at some point but for now it works, it collects in pools and flows when given the chance.
templates-office.com Voxel Dwarf Game
Jumat, 11 Januari 2013

New Textures

A friend is now making textures and they look miles better, from a distance it looks good, blocks are easy to identify and up close as well even with just 32x32 textures it looks great.


I am now working on water an other non solid simulations, so far they render and fall and stack but never spread.
templates-office.com Voxel Dwarf Game
Senin, 07 Januari 2013

Texture atlas and textures

I caved and added textures because the vertex colored blocks had no visible edges when another block of the same color was underneath it, even shadows only helped on two sides. Also, I added shadows while I was at it, these can be toned down in the quality settings but they look damn good.

templates-office.com Voxel Dwarf Game
Kamis, 03 Januari 2013

Block Colours

I've started adding vertex colors to the blocks, this is actually the first time I'm differentiating between block types which is exciting, also it shows the terrain generation a lot better along with it's flaws. I think I'll be sticking to these block colors for the time being as mobile platforms won't be able to show the textures anyway.


And in first person:

templates-office.com Voxel Dwarf Game

Terrain Generation

I've started using Perlin noise instead of a height map to generate the terrain to have infinite generation and be able to generate caves and caverns as well as the surface of the terrain. The results have been encouraging but there's still a lot to be done to ensure that it creates a realistic surface with mountains and plains and other natural elements such as rivers and lakes.

First thing I generated was some rolling hills with a 2d Perlin noise function, looks good but too boring for gameplay.

Then I generated some 3d noise which made this alien landscape.

I modified the 3d noise function to create a slightly more realistic terrain, here by changing the thresholds for what makes a solid block dependent on elevation so that the lower levels are almost solid with more caves on the way up to the surface, then the surface gives way to mountains and floating islands. It's not realistic enough but if I hadn't used a linear change it might have worked better. 


Lastly: Layers upon layers of 2d Perlin noise generated terrain on top of each other, this is how I plan to make realistic terrain. Starting with a mountain layer I got tall mountains and large valleys, then I placed a layer of stone starting from the bottom replacing all air blocks in the way up to around 30 meters, then a layer of dirt replacing air up to 34 meters and lastly adding a layer of dirt on top of everything with a between 0 and 4 blocks deep to put dirt on the mountains and add some more noise to the surface.


templates-office.com Terrain Generation, Voxel Dwarf Game
Rabu, 02 Januari 2013

Kingdom of Dwarves

Working on a voxel based game in Unity where you build a kingdom with your group of dwarves. I have rendering of voxels in chunks of 16x16x16 cubes that can be updated independently and I'm working on a texture atlas based on block values and an alternative where blocks are just colored rather than textured for better performance on low end computers and mobile devices.

First test: a heightmap generated chunk

Second: larger heightmap based level with one layer of chunks

Finally: large terrain map with mountains



templates-office.com Voxel Dwarf Game