I think I prefer this approach-- of needing to construct a stargate, but not needing to worry about focus, than the other approach of not needing to build individual stargates but then still needing to twiddle with focus. The no-focus approach definitely seems like less micromanagement. Although... it also does come to mind that this would make stargates tremendously more powerful. It's not just a matter of reducing micromanagement; in the current setup stargate travel requires a full turn, and you can only have one receiver, but this would let you have unlimited senders and receivers operating in parallel in optimum fashion, and a stargate jump could be just one leg of travel. It kind of makes me think that if we did this it should be some kind of very expensive upgrade tech from basic stargates. A yet more expensive tech upgrade and/or tremendously expensive building project could let you have the best of both worlds and not need to build individual stargates (essentially getting them automatically at colonies above a certain size) and not need to set focus.Vezzra wrote:Stargates should basically create a "network of wormholes", where each of your stargates is connected with each other of your stargates, and the pathfinding algorithm takes those in account automatically. Which will result in your fleets being able to jump from stargate systems to other stargate systems without delay. But that requires changes to the C++ code, we can't do that with FOCS.
The C++ engine side of things does start to seem fairly involved, but certainly do-able. This is closely related to wormhole travel (and we'd probably want to start by adding enough code to support wormhole travel, I think it's not all in place yet), but I don't think we'd really want these to be wormholes-- wormholes are a characteristic of the systems involved, and so inherently usable by anyone unless we added some kind of complicated visibility issue for them. I expect it would work better to add the stargate concept to the engine, but on the engine side it doesn't have to be tied in to any specific content. We could have a new empire attribute being a list of empire-specific stargates, and a new FOCS effect for adding an empire stargate. At the start of a turn, probably around the same time we do the supply update, each empire would have its stargates updated. The universe shortest path code would be updated to take these into account. IIRC, we don't use any algorithms that rely on this being a planar graph, so there really shouldn't be any real problem there. Then the fleet code movement routine would also need to be made stargate-aware so that it could follow the path correctly. And then finally we'd also need to decide how to display the fleet path in the MapWnd-- I suppose an off-round path as if along an imaginary starlane from start to destination would be ok & fairly simple to implement.