What I want to do is, instead of using water with water simulation, I want to make lots of cubes flow like water (like the water simulation does with the mesh). Remesh won't work, because I want to be able to edit the cubes afterwards to make some of them different.
You can approach it like this:
Make simple fluid sim, low resolution will be enough:
Create a plane and subdivide to get your blocks "resolution", position it very high above the water. Add Shrinkwrap modifier to project it onto the simulation:
Parent a little cube under the plane and set dupli verts:
Render it with plane transparent:
Add an ground plane and make column of little cubes from just 1 little cube (to fill holes in water):
As this is based on a voxel simulation you don't get data how the cubes move inside the volume (or on the surface), they are just stationary. To do that you would have to base it from particles. Thats for another approach, this is super fast to setup and simulate.
Finally a solution to this has been found. Mike Pan's solution was great, but another method is here. I found this on Blender Nation:
The process is to do a standard fluid sim, add a remesh modifier set to 'blocks' and then turn on dupliverts for the fluid object (and parenting a 'brick' object to the fluid). That's basically it! Dupliverts gives great performance and remesh allows lower or higher resolution fluid depending on it's resolution. The material is just a gradient mapped on the 'brick' which changes colour depending on height.
The actual building effect at the beginning is a particle system and an 'Explode' modifier on a different object. An animated object defines the 'time' of when particles emit and the explode modifier makes sure the particles are invisible until emission (by unchecking 'Unborn' and checking 'Alive' and 'Dead' on the modifier). The reverse happens on the pile of bricks to the side so they disappear as the other ones appear.
If all that sounds confusing, a full tutorial will be up in a few weeks hopefully.