Quote Originally Posted by phibermon View Post
Incredibly you seem to be working on a very similar setup as I am for your game project.
No kiding! I have also been thinking of adding similar capability into one of my games

First thing I would have done on your place is replace default A* pathfinding alhgorithm with Huristics pathfinding algorithm. With this you can reduce the necessary scope that pathfinding algorithm needs to traverse.
You would define your game world something like this:
1. Lowest heuristic level contains information about each cell (voxel). Each cell also contains information to which room it belongs. Why a bit later.
2. Second heuristic level joins several cells into roms
3. On third level you join several rooms into buildings
4. Forth heuristic level joins several buildings into bases
....
The bigest problem would be writing the algorithm for determining rooms. This is something I haven't figured out yet.
Anywhay when you have information that one cell belongs to a room and another neighbouring cell belongs to space (another room) you can easily stop the simulation from traversing into space blocks by simply removing air when it travels from room cell to space cell.

As you also see from above it would be great if you would have all that information saved in a tree like form. And if you add Changed flag to every tree node you can easily make sure that simulatiuon only runs on areas (rooms) where atmospheric presure needs to be updated.


I suggest that you guys check StarMade (http://star-made.org/) as it uses similar concept. Currently its atmospheric simulation still isn't working as intended so it is disabled.
I gues they are probably facing same problems as we do


Anywhay I have idea for making fluid simulation which could be used for simulating both liquids and gases (atmosphere).
I intent to first make 2D based simulation and later expand it into 3D based so I can track initial bugs and lags more easily.
Unfortunately I don't have much time lately as I have started working on new workplace which has compleetly different job (still at same employer). This means I'm spending lots of time studying new literature that I need for my work.