Le système d'eau de Starbound est en fait des automates cellulaires à base de carreaux 2D. Chaque tuile sur l'écran qui ne contient pas de couche de tuile avant, est capable de retenir l'eau. La quantité d'eau est calculée via des automates cellulaires.
Plus d'informations sur cette technique ici:
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/
Quant aux gouttes de pluie, ce sont des particules. Ils servent principalement à simuler qu'il y a effectivement de l'eau qui tombe du ciel. L'eau s'accumule uniquement parce que le jeu sait qu'il pleut actuellement. Les gouttes individuelles n'ont rien à voir avec la formation réelle des piscines d'eau.
La façon dont ils l'accumulent consiste à déterminer où se trouvent les trous dans la couche supérieure du sol. S'il y a une zone qui peut accumuler de l'eau, les cellules de cette zone augmentent leur niveau d'eau en conséquence.
Starbound traite également de la pression de l'eau, et leur technique de rendu est assez étonnante. Ils ont la meilleure implémentation 2D de physique des simulations d'eau utilisant des automates cellulaires que j'ai jamais vue.
Voici une vue primitive d'un moteur de physique des liquides, utilisant la technique des automates cellulaires mentionnée ci-dessus. La partie de rendu devient un peu plus complexe, car votre eau est représentée par une valeur numérique.
http://www.jgallant.com/images/pressuretest.gif
Dans cet exemple, une amélioration très simple consisterait à masquer les cellules d'eau qui contiennent moins d'une unité complète d'eau dans sa tuile s'il n'y a pas de tuile solide en dessous. Mais alors, vous cachez le débit d'eau. Au lieu de le cacher, vous devrez déterminer comment l'eau coule, puis dessiner le sprite d'eau approprié à sa place.