O sistema de água da Starbound é na verdade autômatos celulares baseados em blocos 2D. Cada ladrilho na tela que não contém uma camada de ladrilho frontal é capaz de reter água. A quantidade de água é calculada através de autômatos celulares.
Mais informações sobre esta técnica aqui:
http://www.gamasutra.com/view/feature/134736/an_intro_to_cellular_automation.php
http://www.jgallant.com/2d-liquid-simulator-with-cellular-automaton-in-unity/
Quanto às gotas de chuva, são partículas. Eles servem principalmente para fingir que realmente há água caindo do céu. A água se acumula apenas porque o jogo sabe que está chovendo. As gotas individuais não têm nada a ver com a formação real das piscinas de água.
A maneira como eles acumulam é determinando onde existem buracos na camada superior do solo. Se houver uma área que possa acumular água, as células nessa área aumentam seus níveis de água de acordo.
O Starbound também lida com a pressão da água, e sua técnica de renderização é bastante surpreendente. Eles têm a melhor implementação 2D da física de simulações de água usando autômatos celulares que eu já vi.
Aqui está uma visão primitiva de um mecanismo de física líquida, utilizando a técnica de autômatos celulares acima mencionada. A parte de renderização se torna um pouco mais complexa, pois sua água é representada por um valor numérico.
http://www.jgallant.com/images/pressuretest.gif
Neste exemplo, uma melhoria muito simples seria ocultar células de água que tenham menos de 1 unidade de água completa em seu ladrilho, se não houver ladrilho sólido abaixo dele. Mas então, você está escondendo o fluxo de água. Em vez de escondê-lo, você teria que determinar como a água está fluindo e depois desenhar o sprite de água apropriado em seu lugar.