Водная система Starbound на самом деле является 2D-клеточным автоматом. Каждая плитка на экране, которая не содержит передний слой плитки, способна удерживать воду. Количество воды рассчитывается с помощью клеточных автоматов.
Подробнее об этой технике здесь:
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/
Что касается капель дождя, то это частицы. Они служат главным образом для того, чтобы имитировать, что на самом деле вода падает с неба. Вода накапливается только потому, что игра знает, что сейчас идет дождь. Отдельные капли не имеют ничего общего с фактическим образованием водных бассейнов.
То, как они заставляют его накапливаться, определяется тем, где есть отверстия в верхнем слое земли. Если есть область, которая может накапливать воду, клетки в этой области увеличивают свои уровни воды соответственно.
Starbound также имеет дело с давлением воды, и их техника рендеринга довольно удивительна. У них лучшая двумерная реализация физики моделирования воды с использованием клеточных автоматов, которую я когда-либо видел.
Вот примитивный вид движка физики жидкости, использующего вышеупомянутую технику клеточных автоматов. Часть рендеринга становится немного более сложной, так как ваша вода представлена числовым значением.
http://www.jgallant.com/images/pressuretest.gif
В этом примере очень простым улучшением было бы скрытие водяных ячеек, которые имеют менее 1 полной единицы воды в своей плитке, если под ней нет сплошной плитки. Но тогда вы прячете поток воды. Вместо того, чтобы скрывать это, вы должны будете определить, как течет вода, а затем нарисовать соответствующий водяной спрайт на его месте.