One of the reasons there was a bit of a delay in work on the game was because I was mulling over for a while solutions to certain problems with the game as envisioned. Here I explain one particularly annoying problem that I'd really like to see fixed, but currently don't have a very good solution for. Maybe one of you might have an idea. At the very least, maybe some of you might find thinking about this interesting.
In Profundis uses a cellular automation system for flowing water, yet because of the closed nature of the game world, most flow is ultimately user-initiated. Liquid tends to pool and collect and remain as low as it can get, and remain there collected. It doesn't actually end up flowing much except at the start of the simulation. Once it gets to the lowest point it can reach, there it remains until something disturbs it.
This is not particularly interesting from a gameplay perspective. What would be more interesting is if water could enter and leave the map, or at least flow through two locations in the world, repeatedly and endlessly. Then the player might have to find some other way around it, or maybe divert the liquid to give himself a safe path.
The problem is that, because of the size of the game world, we can't compute the whole thing every frame and keep within an acceptable speed. Some distance outside of the visible screen we have to abandon calculations. This causes liquid to "pile up" when it flows outside the border. If we recycle liquid between two "portals," unless both of them are within the calculation region at the same time, the flow will stop. And as the player scrolls around the map the calculation region changes, meaning while approaching the area there will almost always be a time when one portal is in the region and one is outside. If they are far enough apart, there could result in instances where the player is suddenly beset by a rush of liquid that has "backed up" because of the simulation border, then suddenly uncorked by the scroll. (This could actually be interesting from a gameplay standpoint, but it goes against the philosophy of the game.)
I'm not sure there is a viable solution to this problem, but here are some possibilities:
* One thing I could do is consider the region between the two portals an "all-or-nothing" region for calculation; if one cell of the rectangular region between the pair is calculated, then do the whole thing.
* The larger the simulated region, the less evident the problem becomes. If we work on enlarging that area (maybe by slowing down the rate at which fluids flow, which I've been considering for a while), the problem will become less visible.
* It's possible that the problem won't be perceivable to the player most of the time. Because his range of vision is limited, even on-screen backups won't be too apparent so long as they're outside his field of view.
* The real-world solution to this would be a evaporation/condensation cycle, but that would probably require a scale larger than what we're looking for here.