To begin with, recently I decided to work on Isometric engine. However, it was simply too boring.
So, I came up with an idea to make Voxel based isometric terrain for the game.
Before the main post, the programming language I use is BlitzMax which is rather slow.
However the code I have written can be simply rewritten in C++, since the syntax is only thing that differs.
I have attached the files to the thread, Terrain demo's works on OpenGL, in case you have some problems, tell me. Tile system demo works on DirectX.
I may compile it for DirectX or vise versa in a minute.
1. Voxel Based Terrain
Note: Demo Applications Are Attached To The Post
At first, I made isometric tile based terrain which supported some height values (1st part).
Secondly, I used Cubic Spline Interpolation for both, X and Z axis to create smooth edges for the terrain.
That way I created prime voxels. (2st part)
Later, I found a solution to draw voxels properly (3rd part), though the method is rather too slow for real time rendering.
4th part shows how I implemented texture displaying on the terrain.
Terrain collisions already have been implemented.
In the end of terrain development I also implemented lighting + map bumping.
The practical use of engine's terrain would have been: export the voxel terrain as image tiles and use it in the game.
That was the progress with voxel terrain:
Real-Time Lighting Implementation:
2. Voxel Based 3D Tile System + Destructible Terrain
Note: Demo Applications Are Attached To The Post.
Well, to play with voxel engine was quite fun!
I have accomplished terrain system in just couple of hours and wanted to try something more complex.
The next step was to create 3D tile system. I did it and implemented Destructible Environment as well.
I found a lot of optimization methods, but I had one simple problem to which I still do not have a solution.
Unfortunately, I didn't found any proper way to create fast real time 3D voxel bumping/day lighting.
My results so far
3. Voxel Engine Basic Platform & Physics (OpenGL)
I've also attached demo file so you can check it out :}
Controls: Space and Arrow keys.
- Fast voxels drawing with depth
- Simple and basic lighting
- 256 colors for voxels
- Create or move loaded voxel objects
Enjoy, I hope you find this interesting!
Waiting for feedback :}