System wodny Starbound jest w rzeczywistości automatami komórkowymi opartymi na kafelkach 2D. Każda płytka na ekranie, która nie zawiera przedniej warstwy płytki, może pomieścić wodę. Ilość wody jest obliczana za pomocą automatów komórkowych.
Więcej informacji na temat tej techniki tutaj:
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/
Jeśli chodzi o krople deszczu, są to cząstki. Służą głównie do udawania, że woda spada z nieba. Woda gromadzi się tylko dlatego, że gra wie, że obecnie pada deszcz. Poszczególne krople nie mają nic wspólnego z faktycznym tworzeniem się basenów wodnych.
Sposób, w jaki gromadzą się, polega na określeniu, gdzie są dziury w górnej warstwie ziemi. Jeśli istnieje obszar, w którym może gromadzić się woda, komórki w tym obszarze odpowiednio zwiększają poziom wody.
Starbound zajmuje się również ciśnieniem wody, a ich technika renderowania jest niesamowita. Mają najlepszą implementację 2D fizyki symulacji wody za pomocą automatów komórkowych, jakie kiedykolwiek widziałem.
Oto prymitywny widok silnika fizyki płynnej, wykorzystujący wyżej wspomnianą technikę automatów komórkowych. Część renderowania staje się nieco bardziej złożona, ponieważ twoja woda jest reprezentowana przez wartość liczbową.
http://www.jgallant.com/images/pressuretest.gif
W tym przykładzie bardzo prostym ulepszeniem byłoby ukrycie komórek wodnych, które mają mniej niż 1 pełną jednostkę wody w swoim kafelku, jeśli pod nim nie ma litej płytki. Ale ukrywasz przepływ wody. Zamiast go ukrywać, musisz określić, jak płynie woda, a następnie narysować odpowiedniego duszka na jego miejsce.