I'll expand on my previous post:
gajop wrote:- Alliance change (supported via Spring.Reload() maybe..?)
Spring has a concept of players/AIs, teams, allyTeam and
alliances between allyTeam. The last one to allow an alliance: allyTeam1->allyTeam2 (asymmetric), without any vision sharing (not possible to change this dynamically).
It's not possible to change a team's allyTeam dynamically (add/remove allyTeams is also lacking).
We could add support for that (disclaimer: I'm not sure if it's
needed or not for singleplayer, maybe Spring.Reload() supports it already), OR we could be brave and ask for a total cleanup: removal of team/allyTeam/alliance and instead have a graph of alliance/vision share instead. The second option would be a lot of work, which might be best to avoid for now (it's certainly not
needed for singleplayer support).
gajop wrote:
- Mission format support for missions/scenarios
This is also not strictly needed for singleplayer, but it would be important to have if we want better support for missions. Maybe we should consider this a second step once we can properly setup skirmish games?
gajop wrote:
- save/load per game, but maybe we can add engine support/create libs for that?
We should consider what needs to be done so games can implement this easily, and we certainly should extend this to a (few) Lua functions instead of just /save /load.
Also it would be important to allow some sort of compatibility of save games between versions, which I'm not sure if it has been considered at all. In any case more work is needed here, but this too, like missions, might not be the first thing we do.