My project I have worked on a few months ago and now picking up again: The goal was and is to build an efficient and pretty Minecraft world rendering engine.
Features:
-Converting Minecraft worlds to a more efficient file format
-Loading entire map into memory space with a higher compression
-Drawing a larger portion of the map at runtime
-Custom shaders for water reflection, heat haze, animated grass/leaves etc.
V1 was written in C# using XNA
(Don't take this first one too serious xD)
(Nothing special either)
(Showing how big things can easily get @0:40)
(4 chunks loaded to get a rough overview)
None of those featured custom shaders.
XNA was limiting me because it does not officially support DX10/Shader Model 4 and I needed some features to write a more efficient engine. Right now the task is to port the code to C++/DX10 (can be run at DX11 as well).
My card does not support DX11 (QQ) but the application goes DX11 if the card supports it, otherwise falls back to DX10.1 or 10. It just needs Shader Model 4.0 that's all.
I considered SlimDX but I needed a reason to finally get around to properly learn C++ ^^
not sure yet which way I want to go but I will probably scrap my idea of using extensive geometry shaders and just use a constant vertex buffer.
April 2nd, 2013, 06:22 PM
ThePlague
Re: Beautymine V2
Give us the download!
April 11th, 2013, 10:45 PM
EX12693
Re: Beautymine V2
Give us the tags
April 12th, 2013, 07:18 AM
Patrickssj6
Re: Beautymine V2
Nothing special, just the map converter written in C#. This map converter will read a world file and only extract and decompress the data I need into a single file.
So...there has been a lot of progress and am working right now on a map format.
I have a question...maybe some programmers could give me an idea:
I am converting the Minecraft world files in C# to a custom format, where there will be Header sections which "points" to the raw data. The pointing is done by providing the offset from the beginning of the file.
In my next step I want to load the new map file into memory with C++ and directly map structs onto it. I would like to dereference but of course the "offset points" cannot be dereferenced because the offsets are obviously not the real addresses. So in a step afterwards I would have to update all the original offsets to pointers.
I was thinking of pointer tables but how do other games or Halo do it (if it all)? Is there a better way?