You need lazarus + cge + indy. If you can run cge’s indy client/server socket demo you should be able to run this. Delphi maybe will work but untested.
See the readme at the repo for more details.
On the server the play button starts the water flow. Don’t press this until there
are tiles. It will then show how many tiles/second it is flowing. Flow gets slow if there are a lot of tiles. If you want to play with water, like deforming terrain to have it flow somewhere, it is best to work with a small world, so don’t move around in the client too far.
Launch server and then client will autoconnect with a 3x3 tile world… which is small enough that flow will be very smooth. It will automatically generate the world infinitely as you move. Until you run out of disk space or server mem or crashed because you moved too far too fast while it is generating terrain and it got backed up with lots of different LOD requests on the same tile (an issue I have to resolve).
You can reset the world, deleting the tile data it stored with the trash can button in the tile count indicator.