I am currently using my engine in a new game I am developing called Rise of a Kingdom under my alias Pico Games. The details are very limited but there are samples to the engine online if you want to check it out :).
The updated terrain engine is still in heavy development and there are still major performance improvements to be made such as currently I do not remove faces from chunk edges as in my previous terrain. However this version is Multi-threaded and still loads amazingly fast given the current vertex count of the entire terrain.
Feel free to try it out and let me know how good or bad the lag is. The web version does NOT save your terrain changes so when the chunks unload they will reload with fresh generation. In the standalone build the data is persistent.
Even though i don’t really enjoy minecraft that much i did think that this was cool and it would be interesting to see a MC clone fully developed with Unity3D. Do you plan on expanding on the project?
@MrMitch - Personally I say heck yeah. I would absolutely love to expand this into a full MC clone as a personal project! As a separate project with my developer friends we have already discussed what we could use this for and have hatched up a cool concept that would make heavy use of this tech. Since all of us have busy lives however I am not sure how far that idea will go. But again, I plan on spending more personal time working on it as a MC clone.
Inspiration as I said came about through researching procedural terrain. I think it was a post on Voxels by Sauropod Studio that gave me an epiphany moment.
More important than the concept of Voxels are the things that will be used to make the experience smooth. You cannot simply generate cubes with cube colliders at the voxel positions. There would simply be too many objects in the scene!
Main Things Used:
Hash-Tables
3 Dimensional Arrays
Enumerations for Asynchronous chunk loading
Mesh generation
Triangle Indexing
I will post some images later on of how the mesh looks without the textures attached. Maybe it will spark some inspiration
On the desktop version I also have it saving out chunks when the chunk is altered into world files just like in minecraft. Except minecraft seems to save EVERY chunk, mine only saves the ones that are altered. As long as nobody places a block in the chunk then the height algorithm along with the same seen value should never change. Meaning faster load times when chunks are loading
I like the smoothness of the gameplay and chunk loading! Minecraft sometimes freezes some frames when altering blocks. Do you have block lighting also implemented? I think that is one of the main causes for lag on block updates…
OUTDATED CIRCA ‘MINECRAFT CLONE POST’ SEE LATEST POST FOR MORE RECENT UPDATES!
Okay so not sure how well this one will work… This one loads and saves data from a folder on my website. Probably not the best way to do things but I am curious how well it works.
If 2 people are on then the data will overwrite the other players data as the chunks dont reload when the file changes.
OUTDATED CIRCA ‘MINECRAFT CLONE POST’ SEE LATEST POST FOR MORE RECENT UPDATES!
Well not many after only 35 hours of R&D ;). But its coming.
The online thing by the way isn’t really the correct way to do things. I just wanted to get a quick and dirty online type experience up. So its very laggy and buggy lol.
Anyway keep watching the thread. Im sure I will have some new features as days go by. The next few posts will be non-saving versions until I get the proper game server tech implemented.
The next focus will probably be on block updates so that the dirt grows grass and the lights light up the scene. Also I will be focusing on the actual Fractal generator. The first posts terrain is generated with a heightmap as proof of concept but in the end it will be seed based fractal algorithm.
After that I am going to be teaming up with a couple of my dev friends to implement some online FPS action into it. The idea is to have the customization of Minecraft and mix that with multi-player FPS games.
OUTDATED CIRCA ‘MINECRAFT CLONE POST’ SEE LATEST POST FOR MORE RECENT UPDATES!
Just noticed now that you guys are playing with it that there seems to be an issue with the seams of the chunks updating when a chunk is loaded. Thanks for playing with it! Jake
First of all, awesome job. It is impressive that you achieved that in just 30 hours.
I also wrote a Minecraft inspired game in Unity called Block Story. It is currently available for purchase for android, iphone, shortly on pc, and I have a free webplayer demo available. A Trailer is also available.
Anyway, a while back I wrote 5 articles explaining the very basics for how to make a voxel terrain. I think you will find them very helpful.
Another must have resource for anyone doing a voxel terrain in unity is this thread. There are 2 years worth of knowledge there. All sorts of algorithms are discussed: Ambient occlusion, colored lights, cave generation, multithreading, mesh optimization, collision detection, ray tracing, infinite terrain, water physics, data structures. It is very long, but it is well worth the read for anyone even thinking of doing this.
Hey thanks. It actually looks like our methods are very similar anyway. I think if you know what your doing the code will ultimately be similar because there really is only 1 way to do Minecraft correctly ;).
My chunk sizes are 8x8x64 in the demo on my first post and the only thing that is used to represent a block is the blocks type which is also of type byte. Using that information it will generate the proper mesh and so on. The mesh is generated in much the same way as yours is where it checks the blocks neighbors for a transparent block (air, water, glass, etc…) and produces a face depending on that.
Anyway as I mentioned above, I am NOT really after making a Minecraft clone with my dev team. The final product will be something very differnt! However, for my own personal enjoyment and for the sake of just programming crap I am going to continue cloning Minecraft. I realize there are TONS of clones out there. All you have to do is go on XBL and look through the list ;).
Thanks again for pointing out those articles, they will be helpful for the ones who was asking me on resources!
Jake
EDIT: I was thinking about doing a youtube tutorial on it called “Lets make a Unity voxel engine”
I started Unity with Javascript because the documentation during the time (Unity 1.4) was way better on Javascript than C#, but now I only program in C# ;).
Wow… People are making some rather interesting words in the online version ;)… Anyway, once I get something presentable made I will start making the YouTube videos.