Yesterday I finally fixed water behaviour. In the process I slightly refactored how block behaviours are notified about neighbour changes. Anyway, the water now behaves similarly to Minecraft, but without “pathfinding to nearest drop” step. This should not be an issue until I add bucket equivalent. And there is no water flow animation yet. And swimming is broken.

Of course, it would be cool to have proper pressure-based water behaviour. Some weeks ago I spent a lot of time trying to do that. I have a little program that works in 2D where I can try out various cell automaton rules. There are two problems with pressure driven water:

  • If done in a naive way it requires constant looping over all flowing water cells (and their neighborhood) to distribute pressure. This is not a good idea because in a block world-kind of game there can be a lot of water flowing. Basically, we want flowing water to not require any updating, unless the flow itself changes.
  • The effects of pressure based water are not local. It can spread indefinitely far (e.g. if you place water source at the top of a hill). This is bad on two counts: first, it will be slow when water covers large areas, and second it will break down on edges of visible world where the process must stop. So basically the behaviour of water will depend on where the player is. Not good.

I will keep trying though, once I get more time. Proper water is too good to just abandon like that.

I still need to do crafting and optimize framerate and chunk generation.


  1. Posted July 2, 2013 at 13:35 | Permalink | Reply

    Gay water finally!

  2. swordsmaster
    Posted August 6, 2013 at 16:05 | Permalink | Reply

    We should have something that we can put worlds on for people to see

  3. Posted December 28, 2013 at 20:31 | Permalink | Reply

    Don’t tell the future you posted that in 2013

Leave a Reply. No swearing please.

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s