Commanded team games
Posted: 20 Mar 2009, 16:40
I suggest to define a military hierarchy for players of team games, which could begin with just two hierarchy levels: ally commander and team commanders, may be just calling them the "commander" and the "generals". Each particular unit could be called a "soldier". Generals are the current players of Spring, each one controlling a "battalion" of soldiers. The commander, though, does not directly control the soldiers. His purpose is to have a global perspective of the battle, define the plan or strategy and give orders to each general which will be charged to translate them into orders for each soldier. Generals may notify the commander about events or do requests (e.g.: I'm being attacked, help here!! Need metal!!), though the commander should be paying attention and controlling the whole battle and feedback should be minimal. I'm sure there are some veteran players out there that could have more fun managing alliances rather than smashing noobs!! and noobs may learn faster playing commanded games than just leaved alone.
It would be interesting if the commander has a special user interface optimized for commanding. For instance, specific keystrokes for sending messages to each one of the generals instead of to every ally (each general does not need to know the whole strategic plan). I already saw a post suggesting VOIP communication (just talking instead of typing, like with Skype), but seems the experience with this in other RTS games is that everybody talks at the same time saying nonsenses, spoiling the game immersion. In this case, VOIP communication would be an exclusive tool for commanding: if a commander must give orders to 8 or more people at the same time, I guess talking will be faster than typing, but well, that would be an extra.
At the lobby's battleroom, commanders are chosen: some alliances may be commanded, others not. The host could chose the commanders, or for the case of autohost there could be some "!votecomm nick alliancenumber" command for voting for a commander for an alliance, or only the members of an alliance could vote for their commander. Once the commander is set, it could make sense the commander to be able to change the alliance settings (colors and faction of each ally member, maybe kicking players from the alliance but not from the battle or allowing or not others to join the alliance, but that would conflict with autobalance...).
At game start, the "ready" list of player nicks includes an alliance nick. The alliance nick could be set at the battleroom by the commander, or just use numbers by default like "alliance 1", "alliance 2" ..., or if the nick of the commander is "Joe" could be "Joe's alliance" by default). Every nick is red at the beginning. Player nicks (commander's and generals') get yellow when connected and finished loading. Alliance nick gets yellow when every member of the alliance is yellow. The commander sets the start positions and not the generals. The commander gives initial orders to its generals and then the commander clicks on the "ready" button for his whole alliance, then the alliance nick and every alliance member nick gets green.
During the game, the commander controls resource sharing and not the generals. Maybe the commander could give direct orders to soldiers, which would override the general's orders, and transfer units to other general's battalion, but that's not the idea, generals must obey commander's orders and the commander must concentrate on the global perspective and not in the details. The commander gives additional orders to generals as the battle evolves, either by typing or by drawing on the map. Sure some Lua widgets could facilitate this task, for instance:
-I draw an arrow by pressing a keystroke, then clicking on the start point of the arrow, then clicking on the end point of the arrow, then the arrow gets drawn. Well, this widget would be also useful for non-commanded games.
-Trajectories could be drawn as a sequence of arrows, say the keystroke must not be released until the whole sequence of start/end points for each arrow is given, where the end point of an arrow is the start point of the following arrow in the sequence.
-Labeled arrows could also be interesting, that is, with a text label along the arrow, for instance for indicating this is an "earth" trajectory or an "air" trajectory, or the objective of the trajectory (defend there, attack there, gather troops here). A keystroke could be defined for creating "free-label" arrows and other keystrokes for "predefined-label" arrows.
-I draw a closed region by holding a key, then drawing an open region, then when releasing the keystroke the region is closed by a straight line. Regions could have labels in the middle, as for arrows.
-Start and end arrow points may be rather "regions" than points. When defining the start or end of an arrow, if I just click then it's a point, if I keep the mouse button pressed then I draw a start/end region. Arrows are drawn between the start and end regions/points. Consider a start/end point as a one dimension region. We compute the center of the start and end regions, then assume those are the start/end points of the arrow, or for making it more beautiful, take the points of the region peripheries that intersect with the line connecting each region center as start/end points of the arrow. If the region is more complex than a circle, several points of the same region periphery could intersect with that line; in that case get the farthest one from the region center.
An arrow, a region or a sequence of arrows, either between points or regions, is an order for one or more generals of the alliance. The commander specifies the person or persons who must obey the order. This person gets a "new order" notification. Each general may have a box in a screen corner with the list of orders. When a general accomplishes an order, he/she double clicks on the corresponding line of the order box or on the arrow or region and the commander receives an "order accomplished" notification. The commander may have a line of order boxes at the bottom of the screen, one per general, in order to keep track of the orders given and the status of each order. The commander may double click on an arrow, region or on the corresponding order box line in order to cancel an order or, by holding a key, to "renotify" the corresponding general of the order, or to keep the general's computer ringing until the general clicks on a "ok!! I get it!!" button. Rebel generals may get kicked from the battle by their commander, but that should be the extreme case. The commander could just give the control of some of the units to other general, leaving only the units he considers this general should control. Other possibility is...
after the game, the commander gives a mark from 0 to 100 to each one of its generals indicating whether they did a good team work, obeying the orders, or just played like if they were alone. Qualitative values could be displayed instead of numbers (e.g.: from rebel to model general). Expulsion of a general could automatically give a rebel mark. A "team work" ranking would be associated to each account of the server, additionally to the global ranking, which would be the average of every mark given in every commanded game. For new accounts, a first default mark of 50 points is given. The count of commanded games played could be associated in order to have an idea of the reality of this average mark. Commanders could be evaluated by the percentage of battles won, for the battles they commanded. Well, it has already been discussed in other posts that the whole ranking system could be improved if it was not based just on the number of hours played; I have myself a silver star and feel like a noob. I would get as example the ranking system of Mario Karts Wii: everybody starts with the average mark, say 5000 points, then winning/losing battles increases/decreases the mark a quantity proportional to the difference between my mark and others' mark, so my mark will become for instance 6000 if I win the 50% of the battles I play against people with 6000 points. Of course, each time you win or loose against somebody with your same mark, your mark must be slightly modified instead of staying there or, since everybody starts with 5000 points, nobody's mark would be changed. Bounds should be given, for instance from 0 to 10000. Increments and decrements of marks should be also proportional to the distance between the mark and the bounds, so no one can get a mark below 0 or over 10000, but average marks are more variable. A count of battles played could be given in order to know the reality of this value: with 0 battles played, 5000 points is not much real, one can be a total noob or a smurf, but after playing some battles one will soon get his real mark. If you stopped playing for some time and lost some practice, when playing again your mark will decrease and reflect again your current skills. Maybe a noob could earn some points even when losing against a veteran, depending on the number of minutes he managed to survive!! Conversely, a veteran could loose points when smashing a noob but taking too much time. The commander's mark could also be given following this more complex model than just the percentage of battles won under one's command: the difference between the commander's marks could be taken into account, or between the overall alliance marks: say commander's mark makes half of this value and the other half is given by the average of every general's mark.
A hall-of-fame for commander, general and global marks could be added to the server, which could be displayed at the lobby clients. Sure people will get crazy fighting for the first positions.
It would be interesting if the commander has a special user interface optimized for commanding. For instance, specific keystrokes for sending messages to each one of the generals instead of to every ally (each general does not need to know the whole strategic plan). I already saw a post suggesting VOIP communication (just talking instead of typing, like with Skype), but seems the experience with this in other RTS games is that everybody talks at the same time saying nonsenses, spoiling the game immersion. In this case, VOIP communication would be an exclusive tool for commanding: if a commander must give orders to 8 or more people at the same time, I guess talking will be faster than typing, but well, that would be an extra.
At the lobby's battleroom, commanders are chosen: some alliances may be commanded, others not. The host could chose the commanders, or for the case of autohost there could be some "!votecomm nick alliancenumber" command for voting for a commander for an alliance, or only the members of an alliance could vote for their commander. Once the commander is set, it could make sense the commander to be able to change the alliance settings (colors and faction of each ally member, maybe kicking players from the alliance but not from the battle or allowing or not others to join the alliance, but that would conflict with autobalance...).
At game start, the "ready" list of player nicks includes an alliance nick. The alliance nick could be set at the battleroom by the commander, or just use numbers by default like "alliance 1", "alliance 2" ..., or if the nick of the commander is "Joe" could be "Joe's alliance" by default). Every nick is red at the beginning. Player nicks (commander's and generals') get yellow when connected and finished loading. Alliance nick gets yellow when every member of the alliance is yellow. The commander sets the start positions and not the generals. The commander gives initial orders to its generals and then the commander clicks on the "ready" button for his whole alliance, then the alliance nick and every alliance member nick gets green.
During the game, the commander controls resource sharing and not the generals. Maybe the commander could give direct orders to soldiers, which would override the general's orders, and transfer units to other general's battalion, but that's not the idea, generals must obey commander's orders and the commander must concentrate on the global perspective and not in the details. The commander gives additional orders to generals as the battle evolves, either by typing or by drawing on the map. Sure some Lua widgets could facilitate this task, for instance:
-I draw an arrow by pressing a keystroke, then clicking on the start point of the arrow, then clicking on the end point of the arrow, then the arrow gets drawn. Well, this widget would be also useful for non-commanded games.
-Trajectories could be drawn as a sequence of arrows, say the keystroke must not be released until the whole sequence of start/end points for each arrow is given, where the end point of an arrow is the start point of the following arrow in the sequence.
-Labeled arrows could also be interesting, that is, with a text label along the arrow, for instance for indicating this is an "earth" trajectory or an "air" trajectory, or the objective of the trajectory (defend there, attack there, gather troops here). A keystroke could be defined for creating "free-label" arrows and other keystrokes for "predefined-label" arrows.
-I draw a closed region by holding a key, then drawing an open region, then when releasing the keystroke the region is closed by a straight line. Regions could have labels in the middle, as for arrows.
-Start and end arrow points may be rather "regions" than points. When defining the start or end of an arrow, if I just click then it's a point, if I keep the mouse button pressed then I draw a start/end region. Arrows are drawn between the start and end regions/points. Consider a start/end point as a one dimension region. We compute the center of the start and end regions, then assume those are the start/end points of the arrow, or for making it more beautiful, take the points of the region peripheries that intersect with the line connecting each region center as start/end points of the arrow. If the region is more complex than a circle, several points of the same region periphery could intersect with that line; in that case get the farthest one from the region center.
An arrow, a region or a sequence of arrows, either between points or regions, is an order for one or more generals of the alliance. The commander specifies the person or persons who must obey the order. This person gets a "new order" notification. Each general may have a box in a screen corner with the list of orders. When a general accomplishes an order, he/she double clicks on the corresponding line of the order box or on the arrow or region and the commander receives an "order accomplished" notification. The commander may have a line of order boxes at the bottom of the screen, one per general, in order to keep track of the orders given and the status of each order. The commander may double click on an arrow, region or on the corresponding order box line in order to cancel an order or, by holding a key, to "renotify" the corresponding general of the order, or to keep the general's computer ringing until the general clicks on a "ok!! I get it!!" button. Rebel generals may get kicked from the battle by their commander, but that should be the extreme case. The commander could just give the control of some of the units to other general, leaving only the units he considers this general should control. Other possibility is...
after the game, the commander gives a mark from 0 to 100 to each one of its generals indicating whether they did a good team work, obeying the orders, or just played like if they were alone. Qualitative values could be displayed instead of numbers (e.g.: from rebel to model general). Expulsion of a general could automatically give a rebel mark. A "team work" ranking would be associated to each account of the server, additionally to the global ranking, which would be the average of every mark given in every commanded game. For new accounts, a first default mark of 50 points is given. The count of commanded games played could be associated in order to have an idea of the reality of this average mark. Commanders could be evaluated by the percentage of battles won, for the battles they commanded. Well, it has already been discussed in other posts that the whole ranking system could be improved if it was not based just on the number of hours played; I have myself a silver star and feel like a noob. I would get as example the ranking system of Mario Karts Wii: everybody starts with the average mark, say 5000 points, then winning/losing battles increases/decreases the mark a quantity proportional to the difference between my mark and others' mark, so my mark will become for instance 6000 if I win the 50% of the battles I play against people with 6000 points. Of course, each time you win or loose against somebody with your same mark, your mark must be slightly modified instead of staying there or, since everybody starts with 5000 points, nobody's mark would be changed. Bounds should be given, for instance from 0 to 10000. Increments and decrements of marks should be also proportional to the distance between the mark and the bounds, so no one can get a mark below 0 or over 10000, but average marks are more variable. A count of battles played could be given in order to know the reality of this value: with 0 battles played, 5000 points is not much real, one can be a total noob or a smurf, but after playing some battles one will soon get his real mark. If you stopped playing for some time and lost some practice, when playing again your mark will decrease and reflect again your current skills. Maybe a noob could earn some points even when losing against a veteran, depending on the number of minutes he managed to survive!! Conversely, a veteran could loose points when smashing a noob but taking too much time. The commander's mark could also be given following this more complex model than just the percentage of battles won under one's command: the difference between the commander's marks could be taken into account, or between the overall alliance marks: say commander's mark makes half of this value and the other half is given by the average of every general's mark.
A hall-of-fame for commander, general and global marks could be added to the server, which could be displayed at the lobby clients. Sure people will get crazy fighting for the first positions.