Das Wassersystem von Starbound besteht eigentlich aus 2D-Kachel-basierten Zellularautomaten. Jede Kachel auf dem Bildschirm, die keine vordere Kachelschicht enthält, kann Wasser aufnehmen. Die Wassermenge wird über zelluläre Automaten berechnet.
Weitere Informationen zu dieser Technik finden Sie hier:
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/
Die Regentropfen sind Partikel. Sie dienen hauptsächlich dazu, vorzutäuschen, dass tatsächlich Wasser vom Himmel fällt. Das Wasser sammelt sich nur an, weil das Spiel weiß, dass es gerade regnet. Die einzelnen Tropfen haben nichts mit der tatsächlichen Bildung der Wasserbecken zu tun.
Die Art und Weise, wie sie es ansammeln, besteht darin, zu bestimmen, wo sich Löcher in der obersten Schicht des Bodens befinden. Wenn es einen Bereich gibt, in dem sich Wasser ansammeln kann, erhöhen die Zellen in diesem Bereich ihren Wasserstand entsprechend.
Starbound befasst sich auch mit dem Wasserdruck und ihre Rendering-Technik ist ziemlich erstaunlich. Sie haben die beste 2D-Implementierung der Wassersimulationsphysik unter Verwendung von Zellularautomaten, die ich je gesehen habe.
Hier ist eine primitive Ansicht einer Flüssigphysik-Engine unter Verwendung der oben erwähnten zellularen Automatentechnik. Der Rendering-Teil wird etwas komplexer, da Ihr Wasser durch einen numerischen Wert dargestellt wird.
http://www.jgallant.com/images/pressuretest.gif
In diesem Beispiel besteht eine sehr einfache Verbesserung darin, Wasserzellen mit weniger als 1 vollen Wassereinheit in der Kachel auszublenden, wenn sich keine feste Kachel darunter befindet. Aber dann versteckst du den Wasserfluss. Anstatt es zu verstecken, müssten Sie bestimmen, wie das Wasser fließt, und dann das entsprechende Wassersprite an seine Stelle ziehen.