The status on infinite

Remaining (in order I will add them):

* Layered lighting engine
* Entity logic
* Tile entities (Chests, furnaces)
* Tile ticking (growing farms, spreading grass and fire, water flowing)
* Switch water back to infinite temporarily
* Caves
* More advanced level generator with different climate zones and such. This can be done much later, if needed.

Done:

* Basic decorator pattern for chunk sources
* Infinite level generator
* Stable physics at extreme distances
* Stable rendering at extreme distances
* Doubled the rendering distance to 256 meters

The Layered lighting engine was suggested by Asmodean (I hope I spelled that right) on IRC, and will make day/night transitions almost instantaneous at the cost of some extra RAM. It would also enable carried light sources at the cost of even more RAM.

The decorator pattern for chunks means it’s easy to split up the logic for different “level” sources, such as having a pseudorandom level generator wrapped in a disk cache wrapped in a memory cache, or switch that entire structure out for a memory cached network chunk source for multiplayer.
It took me a while to arrive at this design, mostly because of my chaotic development philosophy (get it to work, then refactor if the code is bad), but I’m really happy with it now.

The lighting is the big hold up at the moment, I expect most of the remaining things to go pretty fast, except for caves and the very vague final point, which I suspect will be an ongoing process for the rest of the game development time.

Once infinite is done, I will put it up as a replacement for indev, then work on survival mode multiplayer.

posted 14 years ago