This weekend I’ve optimized the chunk management code and added the ability to save your world. I’m still using the Painterly textures because I haven’t had the time to design my own textures.
A fun way to test the saving feature is creating something nice. When you exit Oemfoeland and fire it up again, your world is waiting for you in the state you left it. As you can see in the screenshot, it works!
Things that are on my list for the coming weeks:
- A real random world with interesting features
- Make this run in your browser
- Player physics (collision detection, walking, jumping…)
- Some gameplay elements from my original MyWorld idea
- Movable/fallable blocks from the old Oemfoeland 5
I’m struggling with the implementation of my dynamic world loading mechanism. I need to leave the loading of new chunks to another thread. But that other thread is not playing nice… I am going to sleep and think about it
[Edit: it was a small stupid thing I looked over… it works great now!]
One of the advantages of Minecraft executing my idea is that I have some texture packs to experiment with. I will draw my own textures soon, but these are from the Painterly Pack.
Last week, I completely rewrote my rendering engine. I divided my world into chunks and when the player is not nearby a certain chunk, it will be compressed and stored into a vertex array or a VBO, if the GPU supports it. I got a very good performance on my MacBook Pro, with no hiccups at all. But before I make bold promises, I will generate some more interesting worlds to see if that performance still holds.
When this becomes playable, I will put a java applet on this site so you can try it yourself. Stay tuned!
I just tried to implement a technique called Ambient Occlusion out of curiosity. I think the result looks pretty good for just 20 lines of extra code. The technique is simple: I just modify some vertex colors of a floor tile when there is a wall next to it.
The original MyWorld idea from 2006 assumed a big world where a whole bunch of players can build amazing structures together. It was meant as an experiment to see what would come out of it. This experiment has been successfully executed by Minecraft Classic, and the results are amazing. However, MyWorld was not only about building, but also a virtual economy and society. For example, automatically growing cities like in Transport Tycoon and the ability to start your own business, in combination with player-created quests.
I am very happy that Minecraft hasn’t executed all of my ideas, although the block world was very painful to see at first. Random cube-world clones keep popping up since its success. I can imagine that many people want to copy the concept. I am not simply creating a Minecraft clone, but executing my own idea in it’s own right. After all, my idea was first, long before Infiniminer. And I have proof of it.
Oemfoeland will be a completely different game, and I hope it will be at least as fun as Minecraft. Some more concepts will be explained later, like my killing system. I wonder if that turns out to be fun or not…
By the way, I am implementing this all in Java/lwjgl, just like Notch. Letting it work on almost all browsers and platforms is just brilliant.
We’re getting somewhere. Currently you can build and destroy blocks. I really need to optimize the rendering code and divide the world into chunks. Do you recognise the handcrafted Oemfoe?
Static VBO’s are amazingly fast. These are 65536 cubes all rendered at the same time without any culling.