Senin, 22 April 2013

Still not voxel dwarf game

Progress is still on hold while I complete course work and I missed screenshot Saturday :( However I'll be done by the end of the week and done with exams in two weeks. Anyway, island terrain generation is still damn fun. I've added variables for customization for a little variation on the islands.

This is the player island, blue squares mark available slots for boats and light colored chunks of terrain are available to place buildings like farms and factories.

Extra large beaches, extra large island, less exponential terrain

Small beaches, smaller island, 
So, why not use unity terrain? I chose early on to generate this terrain and build the meshes with code while unity terrain sounds like a simpler choice. A few factors led to this, of course one is that I love procedural terrain. Otherwise though: first, once written the code can generate any amount of islands. Although we're not using more than four or five we have made a lot of changes to what we wanted from these islands. The size was originally going to be much smaller but we increased it as we needed more land to work with. I can easily change the size of my islands without rebuilding anything. Secondly I base where you can build on heightmap data, something that I have simple access to in my own code. And lastly the way I've implemented these meshes has let me create a simplified pixel graphic look for the terrain that is minimalist and almost cartoony. This lets us get away without breathtaking visuals while still looking good.

With all this in place it's fun to think about larger applications of it, maybe getting to sail around an infinite sea of islands, trading with them, maybe fighting off pirates and eventually running your own island. I wish I had time to program everything I think of.

Selasa, 16 April 2013

Not Voxel Dwarf Game

I've been busy with assignments lately so I haven't been able to dedicate so much time to my own project but this blog is called Student Game Dev after all. Lucky for me the assignments I've been working on are actually relevant, me and two friends are making an island management /resource management game for kids where they control the production of an island and trade with their neighbors.

The islands are procedurally generated of course.

The best part is that just a few hours work to make this island and I can apply the code as many times as I want. If I add some random variations to things like beach size, mountain likeliness and island noise I could get some very varied outcomes.

Anyway I'll be back to work on the voxel dwarf game soon and with any luck some of the trade and resource management elements of the island game will be useful to the dwarves.


Jumat, 12 April 2013


This is the game a friend and I made for game jam 2013, it's a little late (3 months or so) but I forgot about it entirely in the 12 straight hours of sleep after the two days of programming. We were given a theme that was the sound of a beating heart so naturally we made a game where you steal people's hearts and transplant them while sneaking around the hospital.

Since I had written some stealth code before I figured I was up for the challenge of writing new pathfinding and detection code in 48 hours. In the end what I managed to do in 48 hours was much better than what I had written previously probably because of the experience I gained from the last time I tried it.

In this picture the player (A black cylinder) hides from a guard (A black cylinder with a field of view cone) behind a column, he has the heart in his briefcase.
The game is pretty buggy and incomplete, there are no character models. There are three levels, essentially you find the patient with the heart, put it in your briefcase  make your way to your patient and win the level. On your way you'll have to hide from guards by staying in the shadows and/or out of their field of vision and with the heart in your briefcase you'll have to stop by other patients to fill up with blood so the heart keeps pumping. There are also blood packs available that fill you half way up with blood as soon as you run out and adrenaline shots that let you move faster for 10 seconds.

Also you can save and load from last save in the pause menu (esc) this is useful for trying things and not starting over from the beginning.

You can play it here.

Primbon Jawa Jam, Stealth
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.
Primbon Jawa Voxel Dwarf Game


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
Primbon Jawa 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.
Primbon Jawa Voxel Dwarf Game
Kamis, 04 April 2013

Out of the cold for a bit

I am sick and tired of the cold and the winter and having the flu, the cold, some virus or another... It's time for some warmth and sunshine... so I am off... last minute trip to where there is sun, beach and palms. 

I won't be checking my emails regularly - as I am not sure about internet access and my motivation to check when there is sunshine and ocean out there to swim, snorkel and dive. Please have a bit of patience when you order some of the tutorial art or BlockBuddies. I will do my best to get the art to you asap... back on April the 16th...

Primbon Jawa
Selasa, 02 April 2013


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

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.
Primbon Jawa Voxel Dwarf Game