Perliner was started in Global Game Jam 2014 by one person. It won an award in one of the categories and is being continued ever since.

It's still in prototyping stage. It's an Role Playing Game in a Voxel world allowing realtime world manipulation. So fortifications, pits, destruction and digging.

But what will the game be about? I'm thinking of a story. Dungeon crawling. Castle construction. Minions. Battles. It's still not decided yet.

Image RSS Feed Latest Screens
New dungeon, bleeding and terrain modification New dungeon, bleeding and terrain modification New dungeon, bleeding and terrain modification
Blog RSS Feed Report abuse Latest News: Perliner: Voxel work

2 comments by Chemec on Feb 23rd, 2014

Do you remember the boring dungeon? I've worked on that. But before that, there was some major voxel engine development.

Voxel thoughts

Working on a voxel engine gives you a lot of hindrances in terms of memory and performance. Having a lot of voxels requires megabytes of memory and a lot of clever processing to handle millions of cubes efficiently and display them in real time.

But there are also perks. With voxel engines it is easier to create objects procedurally. You can build procedural environments that look nice. Well, voxel are like particles. They just don't move much. It's easier to interact with environment. AI elements. Easier to create art. Less textures, so smaller downloads. And probably more.

Handling huge voxel spaces requires a lot of preprocessing. Many things are precalculated, the most important being the 3D triangle meshes. Most of you probably know that, Minecraft (or Infiniminer before it) didn't draw voxel with many cubes. Meshes were constructed only with cube faces that were visible (i.e. next to air), sometimes batching neighboring faces together - instead of 2 squares, 1 rectangle. This way you could reach reasonable frame rates.

New dungeon, bleeding and terrain modification

This optimization has it's downsides. As building meshes takes time, it is done only for groups of voxel (called chunks) and only when they are visible. Chunks outside of view frustrum and far away are de-meshed to save memory, and meshed again when they get back sufficiently close. While inside the view frustrum, they are not changed and so only rendered, which is faster. Unless you dig a hole in the chunk.

My recent work considered this aspect - dynamic changes in the voxel space. But before that, let's talk about lighting.

Voxel lighting

Lighting is important. If it is all black and white, or candy-colored, or something else, it creates mood. Sometimes the more constraint the colors are, the more interesting the mood. But that's for another time. For me, lighting is not only a way of adding mood or realism. It's about creating feelings.

When I think about voxel rendering, there are to types - one, that tries to hide voxels in a realistic rendering and smoothing, and another, which is proud of voxel heritage and creates a blocky feeling. For me it's like LEGO. I loved it as a child and creating this style visualisation creates a feeling of a child playing with his toys on a table. Things are small and under control. For that, you need decent lighting. When I mean decent, I mean Global Illumination.

In Minecraft you don't have much of a lighting. Sure, you have sun or torches, and although it serves it's purpose, it's nothing like illumination technics. In Perliner until know, I've used obscurance. For each vertex in a cube (there are 8;-) I have calculated among 3 adjecent cubes number of ones that are solid. For a cube it meant 3*8 checks.

It turned out it didn't do correct lighting for vertical faces, as you can see on the picture below.

New illumination lighting replaces obscurance

Then I realised I needed to do it properly - each side needed to have individual lighting. I've corrected it with 3*4*6 checks (6 faces with 4 vertex with 3 checks). It looked correct, but it was always grayscale (I didn't consider color of blocks). What's more it didn't consider lights that I planned for the game. I prepared separate methods for applying lights from nearby sources. I called this method obscurance based.

New illumination lighting replaces obscurance

And than it struck me - I needed correct shading and correct lighting. Maybe I can combine the two. For each air voxel I hold information about illumination (RGB), and for each of 6*4 vertices of a cube I sum illumination of 4 adjecent cubes. If a cube is occupied by a solid material, I take black for now - later color of material will be considered.

New illumination lighting replaces obscurance

It's not Global Illumination, but with color lights and proper illumination propagation who knows...;-).

New illumination lighting replaces obscurance

Dynamic changes in voxel space

I've mentioned earlier - changing voxel space is expensive.

New dungeon, bleeding and terrain modification

Changing even one voxel requires recalculation of lighting and mesh for a whole chunk, and potentially for neighbor chunks too. It's a spike in amount of calculations. It's a jitter in fps.

New dungeon, bleeding and terrain modification

First I've implemented update of color information. Currently I use it also for bleeding, leaving blood marks on the floor or anywhere. Brrr... ;-). The code is able to update only the color information in modified segments of a mesh, without touching the geometry. It is pretty fast for small area changes in color - character bleeding all over has no visible influence on fps.

New dungeon, bleeding and terrain modification

Then I've worked on changes in geometry. The game will heavily depend on those - digging pits and building fortifications, and dynamic destruction. It's unfortunately slower, requiring rebuilding of a whole chunk, when even a single voxel is changed, but it's there and it doesn't spoil the game by it's performance. Placing a voxel or digging causes a short hickup. It is noticable, but barely.

New dungeon, bleeding and terrain modification

New dungeon, bleeding and terrain modification

New dungeon

Last but not least - new dungeon is there, as you could see on other images. More diverse. Different material. Greenish stains.

New dungeon, bleeding and terrain modification

Summary

It was a lot of internal changes in the engine. And there are still more changes to come - color info for solid cubes and better chunk management. Plus multithreading. But still, game runs on my Samsung Galaxy S2 with 55fps (with no Unity's dynamic shadows).

New dungeon, bleeding and terrain modification

And sorry for that long piece of news. Kind-of felt like sharing:).

Downloads RSS Feed Latest Downloads
Perliner 0.0.7.2 with new camera controls

Perliner 0.0.7.2 with new camera controls

Feb 10, 2014 Full Version 2 comments

New features: - new camera controls, - small level changes.

Perliner, version for CHIP

Perliner, version for CHIP

Feb 6, 2014 Full Version 2 comments

Perliner, Windows version, prepared for CHIP magazine.

Post comment Comments
Bwiotook
Bwiotook Feb 24 2014, 10:48am says:

Your work is very good :D

+1 vote     reply to comment
Chemec
Chemec Feb 24 2014, 4:45pm replied:

Thanks :)

+1 vote     reply to comment
TheNaturePanda
TheNaturePanda Feb 19 2014, 7:40am says:

Hey guys which software did you use for the art
i am voxel artist but i dont know good art software for it

+1 vote     reply to comment
Chemec
Chemec Feb 19 2014, 8:46am replied:

Hi! Everything is currently procedurally generated, trees, houses, stones or bushes. Even characters.
I'm also searching for some good art software - I have seen Probuilder, it seems quite OK but it's not free. I have seen others but they are not that good. I am considering writing my own in Unity or going for Probuilder. I'll go for the former only if I need the editor in the game (and I don't know yet).
Thanks for the question :). You are doing some fun project and want to share?

+1 vote     reply to comment
Blaise200333
Blaise200333 Feb 8 2014, 11:50am says:

This game looks neat!

+2 votes     reply to comment
JFreakXD
JFreakXD Feb 7 2014, 10:08pm says:

cool! cant wait for next update!

+2 votes     reply to comment
Chemec
Chemec Feb 9 2014, 11:56am replied:

Working on it :)

+2 votes     reply to comment
Chemec
Chemec Feb 7 2014, 9:02am says:

Actually, I have Intel 965 Express on my old Thinkpad X61T and I have on average 20-30 fps, and 60+ without shadows. HD3000 is a lot faster (20x according to some benchmarks). On my Geforce 8800GT desktop I got something like 400+ :).

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Icon
Perliner
Platforms
Windows, Mac, Web, Mobile, iPhone, iPad, Android
Developed By
Chemec
Engine
Unity
Contact
Send Message
Official Page
Iteaconsulting.com
Release Date
TBD
Game Watch
Track this game
Share
Style
Genre
Role Playing
Theme
Fantasy
Players
Single, Multiplayer & Co-Op
Project
Indie
Boxshot
Boxshot
Twitter

Latest tweets from @chemec

Working on Voxel Editor. It doesn't leak anymore. Yea! :-) T.co

Mar 13 2014, 4:06am

Been doodling some doodles for Perliner characters. T.co

Mar 6 2014, 3:08pm

New article on my approach to voxel engine lighting and dynamic modifications: T.co T.co

Feb 23 2014, 8:31am

I've worked on dynamic changes in Perliner! Blood plus constructing blocks implemented and work pretty quick. T.co

Feb 22 2014, 7:57am

New dungeon generation and new illumination-based lighting replaces old obscurance. More details soon. T.co

Feb 21 2014, 9:35am

Perliner update: FX, characters, refactoring. T.co

Feb 20 2014, 3:22am

Perliner code is a mess. Refactoring... And some fun :). Some update sooon! T.co

Feb 17 2014, 1:46pm

New release of Perliner, can be downloaded on IndieDB. Plus a question. T.co T.co

Feb 11 2014, 6:18am

Introducing game named Perliner - my entry in GGJ 2014. Now available on T.co

Feb 10 2014, 3:59pm

Właśnie dopieszczam serwis społecznościowy - ciężka praca, wierzcie mi

Sep 21 2009, 3:27pm

Embed Buttons

Promote Perliner on your homepage or blog by selecting a button and using the HTML code provided (more).

Perliner
Perliner
Statistics
Rank
2,605 of 23,726
Last Update
6 months ago
Watchers
31 members
Files
2
News
5