After much discussion, I abandoned the idea of a multiplayer roguelike with simultaneous turns. Too much complexity, and too many issues. I think simultaneously moving all the monsters is a good idea (controlled by a central intelligence, methinks?) but this can complicate things in multiplayer. Could be a good idea for a seven day roguelike, if anyone is paying attention to this.
Anyways, I am going to implement a multiplayer roguelike that is both turn based and real-time. If you are adventuring alone, or away from other adventurers, the game runs in either turn based or real-time (you choose). If other players in combat are in fov, and at least one of these players is in combat with a monster or has not escaped, the game will shift to real-time, to allow both players to play with an equal footing. The real-time shift will not end until all but one of these players has sufficiently escaped from this combat. To address the problem of a player luring monsters to another idle player, I will provide an option to allow a player outside of combat to escape to safety.
One interesting idea I had for breaking the real-time mold is to implement a time manipulation style interface, similar to Achron’s. Inside of combat, there will be a “final version” of the timeline, that is visible and completely modifiable at all times, which is essentially the “final game”. However, players can go into the future to change things, and do cool things like send themselves back in time. There will be “timewaves” that will propagate changes, and people will be able to see how their changes directly affect people in their Field of View. To encourage players to manipulate the timeline in the future and not the past, there needs to be a reward, such as being able to bend the RNG in your favor. The difference is that Achron used chronoenergy to limit editing of the “final version”, but this will not work in a multiplayer roguelike where being able to dictate your final actions is a crucial part. However, before I get this running, I will need to create a working multiplayer game.