GSoC-WW Gameplay Considerations Gabba
Return to the main page.
This page is related to Summer of Code 2010 |
See the list of Summer of Code 2010 Ideas |
Contents
Gameplay Considerations
Recent IRC discussions brought up several possible effects on gameplay that need to be discussed, and I thought of several more:
Removing Gotos
It was argued that removing the current goto system and replacing it with planned actions would be annoying, if players have to confirm the remaining part of planned moves manually on every turn start.
- If you have several planned moves available at the beginning of your turn and they're all trivial moves (i.e. equivalent to gotos), you can just have a quick glance to see if those moves still make sense and then hit "Execute All". The extra keystroke is I think acceptable.
- The only problem I can see with this is if you define some planned moves as reminders of what you'd like to do, and others as gotos. Or, if you have a mix of actions of which some are goto equivalents, and the others really need to be executed one by one. Then executing them all would be annoying.
- A good compromise (suggested by Upthorn if I remember well) would be to execute any remaining planned moves when you end your turn. Is gotos executing at the beginning of the turn an essential feature of Wesnoth? Many strategy games actually execute gotos as you end it, to give you a chance to modify the goto before it's executed.
- Once again with this, keeping some planned moves as reminders from turn to turn to eventually modify them later would not be feasible. However you could plan "draft" moves while it's not your turn, so this option sounds rather reasonable.
- If the above doesn't seem convicing, gotos as they are now can coexist with the planning system.
- However I found an interface issue with this: I want to allow the player to plan a multi-turn move, that gets executed piece by piece instead of becoming a multi-turn goto when you execute it. Therefore the only remaining way to set a multi-turn goto would be by giving the unit an immediate order (i.e. not planning first). Acceptable?
Removing Undo
Do we remove the current undo system, or build this new system on top of it?
- Keeping both violates the KISS principle by having two systems side by side that provide rather similar functionality.
- The UI for undo is not user-friendly, since there's no visual cue telling you that you just lost your undo stack, and the reasons why you may lose it only become apparent from experience (for instance recruiting a unit with random traits makes you lose undo, but recruiting undead or recalling units doesn't, as far as I remember).
- The planning system seems better in that aspect, since you get to decide when moves become permanent; the player is more in control and we have a better learning curve.
- The main purpose of undo as I understand it is to allow you to test visually several attack patterns, verifying your ZOC along the way. The planning system provides exactly that, plus:
- The extra benefit of visually planning/canceling recruits: you can visually fill up your castle with future recruits, see how it affects your budget, then change one or two recruits to fine-tune your plan and finally "execute all" to get your recruits.
- Visually planning your attacks and surrounding the enemy, without having to undo a lot of moves to make a small adjustment.
- No danger of losing your planning for reasons such as attacking, ambush, a WML event, or forgetting to set Delay shroud updates.
- The only situation in which the current undo system is more user-friendly than planning is when you do a bunch of undoable moves in a shroud-less game, and you're happy about them and would like to do your attack. The old system just lets you attack, the new one requires you to commit them first. To alleviate this we have the Execute All command.
- All this said, the undo system can also coexist with the planning system, there only minor technical issues with this.
- One issue is that if planning and undo coexist, "my ally sees my plans immediately, but if i execute one planned move which is undoable, then they don't see that until it becomes non-undoable." Since the planned move does disappear when the move is executed, the ally will have the temporary impression that the planned move was canceled, not executed. Therefore we'll need to track which moves are "executed but undoable", have a visual indicator so allies can see those.
- This implies checking whether the undo stack is emptied or not after an action's execution
- When the move in question is undone, we need to detect it and reset the action back to a normal planned action (or delete the "undoable" planned action). This means tracking the link between items in the undo stack and our "executed but yet undoable planned moves" stack.
- If action number 5 was just executed, is it still action number 5 from the allies point of view? Or does it just lose it's number? It's important that actions are numbered the same on everyone's view, so they can easily refer to them in chat.
- One issue is that if planning and undo coexist, "my ally sees my plans immediately, but if i execute one planned move which is undoable, then they don't see that until it becomes non-undoable." Since the planned move does disappear when the move is executed, the ally will have the temporary impression that the planned move was canceled, not executed. Therefore we'll need to track which moves are "executed but undoable", have a visual indicator so allies can see those.
Removing Delay Shroud Updates
If we keep undo, do we need to keep Delay Shroud Updates as well, or is the planning system considered a better or at least equal alternative?
- Delay shroud updates is in great part responsible for breaking WML "sighted" events, and is the feature Crab_ and I are the most keen to replace.
- It is also the system for which the planning system is the most direct plug-and-play replacement, as can be read in Removing Undo and Workflow of long-time players.
Default action vs Shift-click action
What should be the default action: setting a planned move, or directly moving the unit (the other being available on shift-click)? And how should the option to toggle the default to the opposite be introduced: preferences option, or menu+hotkey in-game?
- toggle: the best approach seems to be the menu+hotkey (Tentatively Shift+P)
- if undos get removed, having permanent moves as the default might be offputting for players used to undoable moves.
Workflow of long-time players
According to noy, the workflow (so to speak) of good players involves making some moves, then an attack, then some more moves depending of the result of that attack. How does this workflow translate into the new system? It depends on several factors:
- Do good players use Delay shroud updates? If not, they're not taking advantage of undo capabilities anyways (or very little), and can probably turn off planning mode for the whole game, and happily keep playing as usual.
- When they actually want to visualize several unit placements or recruitments in a zone where they've pushed out the shroud far enough and therefore would currently benefit from undo capabilities, it seems that using shift-click to plan and then instant executing the actions with "Execute all" would not be an additional chore; it would rather be more flexible.
- If they are using delay shroud updates, it seems the planning system would work just as well as the status quo, except with a bit more visual clutter due to arrows:
- Move units around with undo capability = Plan moves
- additional bonus: they get to reorder moves and cancel them without having to backtrack
- Toggle delay shroud updates if you want to take a look at the situation before proceeding = "execute all" or "execute moves one by one"
- additional bonus: if a (rare) special event triggers because of one of the moves, the game won't execute the remaining ones, and you'll be able to ajust your plan in consequence
- Move units around with undo capability = Plan moves
- Do good players use the "Interrupt moves when an ally is sighted" option? This option does absolutely nothing if you leave "delay shroud updates" activated the whole game; however we have to think how to integrate this option in the whole planning framework, since if you're using "execute all" to quickly commit a series of moves without care for enemy sightings, being interrupted constantly by those would be the pinnacle of annoyance.
- current approach: always ignore enemy sightings when using Execute All
"Execute All" vs "enable scroll tracking of unit actions"
There's a potential interface conflict between planning actions while it's not your turn, and the "enable scroll tracking of unit actions" preference.
- The most obvious answer to this is to disable scroll tracking when planning mode is activated, otherwise the screen will scroll under your mouse just as you try to set a move.
- As a side note, scroll tracking also makes the view follow your own units that are executing automated gotos.
- But do we need a visual notification for when you're happily planning moves and something is happening outside of your screen? For combat at least, the combat sounds are probably sufficient notifications.