Suggestions from a game-AI scientist

Discussion in 'Modding' started by TomV, Dec 21, 2015.

  1. TomV

    TomV New Member

    Dear developers and the Cossacks community

    I am finishing a PhD from AI (search and planning) methods for games, and I have been a fan of the Cossacks series since the very beginning. I think of Cossacks BTW as one of the best strategy games ever, this is why, in the last few years, I have been enjoying my free time on tuning it: I got to know many details of the engine and have produced a balance mod for playing with my colleagues. I have tried a lot of strategy games, and know quite some things about game AI, game design, and game theory in general. Therefore, I would like to give my contribution to the remake of the series and help the developers pinpoint some of the key aspects that I deem important for a modern RTS.

    Below is a list of practical/realistic concepts and ideas, loosely ranked by importance and generality. I don’t go much into details, nor comment on the obvious improvements that are self-expected (for example, reworking the multiplayer protocols for modern standards), but rather focus on a higher level of gameplay. This is by no means a “must do” list, but just suggestions from which to draw inspiration.

    Essential improvements

    - Multiplayer support:
    o Auto-find opponent/room – get as closer as possible to “one-click” start like most modern online games (reduce the overhead of starting a game to a minimum)
    o Allow spectators
    o Allow set-up of multiple-users to control same in-game player
    o Allow transferring units between players (would be faster than switching colours), maybe except peasants
    o Allow mid-game joining
    § resolves the problem of a user crashing / losing connection
    § users can take control of an existing AI player, or take joint control of an existing human player (if that player allows it, for example)
    § no need to wait for all players to start the game, gets more dynamic​
    - Possibility to set the game to VERY slow (this was broken in multiplayer since the last few operating systems): the game-speed should not depend on CPU cycles, communication protocol or OS version; I believe you'll be able to meet the modern standards
    - Autotransport units across water – this is REALLY TEDIOUS to do manually; allow periodic transport (for example, when setting production rally point on another island the transport ships should be able to handle this automatically)

    Major bugs/flaws of the old Cossacks BTW engine
    (should be improved/fixed)

    - Formations of ranged units shooting simultaneously at a single target, making them useless in practice
    - Melee attack disabled while reloading firearm (causes, for example, useless dip. grenadier)
    - Formations of ranged units with melee attack (18th musketeers/grenadiers) NOT autoengaging in ranged attack when on the “move and attack” order
    - Units/towers not autoshooting over stone walls, even when possible due to terrain or arc of fire
    - Impossible to prevent own military ships destroying own fishing boats
    - Possible to check/target enemy units/buildings through the fog of war (by clicking in the dark)
    - Units amassing extremely close to each other when in combat

    User interface improvements
    (for ease of play)

    - Infinite production of different units in a user-defined ratio (for example, 2 pikemen per 1 musketeer, or 40 soldiers per 1 officer and 1 drummer, etc.)
    - One unified menu/screen for all upgrades (accessible via a hotkey), the trading menu also accessible via a hotkey
    - Queuing upgrades; user predefined script/order of upgrades
    - User predefined market trade sequence
    - User predefined game-start build sequence
    - Prevent moving all peasants from their assignments by mistake (for example, ctrl+a and move): possibility to undo last order

    Gameplay improvements and interface automatization (improvements to gameplay AI)
    (to get rid of boring and tedious repetitive tasks, to rather focus the user on strategy and tactics)

    - Possibility to define trade rules (both ingame and predefine) that get executed automatically
    o Automatically trade for FOOD, GOLD, IRON/COAL when the resources get too low (the warnings when they are zero come too late, and it is pretty lame if that happens)​
    - Automatically assign units to GUARD buildings
    - Peasants and construction
    o Automatically build dwellings when out of housing
    o Autorelocate peasants when too many of them on single spot: autobuild mills and storehouses when necessary
    o Let idle peasants find work by themselves, or at least introduce an order for peasants to automatically scatter and find work (resume construction, work on resources, …)
    o Automatically send closest peasants in mines when upgraded
    o When peasants finish a building, let them automatically go work on a nearby non-completed building (same as it works for walls)
    o Let the peasants flee from enemy when they can be captured​
    - Cannons and archers should auto-target most dense groups of enemy units
    - Cannons should autoshoot at full distance (at SHOOT GROUND distance)
    - Order for a unit to autoscout
    - Order to automatically build drummers that go take positions as fixed scouts
    - Automatically dispatch priests
    - Radical: when clicking on an empty spot on the terrain (for example, when no unit is selected), a pop-up menu should appear that allows:
    o Place a building at that spot (automatically picks closest/free peasants)
    o Send a certain amount of peasants if clicked on wood/stone/wheat
    o Send a scout (automatically produce or find one free)
    o Send a certain amount/combination of units (option to send nearby units, or to send those from base)
    o Produce a certain amount/combination of units and send them to rally there (automatically pick closest production buildings)
    o Hotkeys for all the above (once the pop-up menu opens)​

    Optional enhancements
    (would be valuable if the new engine at least supported mechanics like this)

    - Individual units automatically retreat when low hit points; possibility to set retreat-rally-points (where also priests would gather to heal such units)
    - Ranged units:
    o Multiple ranged units auto-focusing fire on a single enemy unit (as ranged formations did in Cossacks:BTW); however, the number of units shooting a single enemy MUST be limited (calculated) in base on enemy life and own firepower damage (otherwise too many units would shoot same enemy, which would be inefficient)
    o Ranged units auto-targeting strongest enemies (for example officers in formations or guarding soldiers amongst peasants), an option/order to set the priority (3 levels) of targeting "retreating" units
    o Prevent reload of firearm while on the move (or make it slower, for cavalry units, for example)
    o Allow firing while moving (at least for ships)​
    - Fog of war:
    o Once uncovering the terrain, let it stay visible (for example, faded out in grey)
    o Let the spotted units and buildings stay visible at the last known location (maybe add a timestamp of the time of spotting)​
    - Formations
    o Possibility to set any formation to loose/narrow
    o Automatically create formations when drummer/officer close by
    o Visual distinction of units with an active stand-ground bonus (units that are “dug in”)​
    - Keep producing peasants even if the housing is full, at least for a limited amount of time
    - When holding a certain key (spacebar for example), display the waypoints of the selected units (lines of movement, estimated time of arrival, and final orientation/position)
    - Display the building sequence of a peasant with several buildings enqueued for construction

    Other engine capabilities for modding purposes

    - Cavalry/infantry charge dynamics (damage increase due to velocity and mass) and ship ramming attack/bonus
    - Flanking/rear attack dynamics (damage regarding to opponent direction)
    - Morale dynamics: effects of flanking, amassing units, taking damage; ability to set rally points (not scattering around the whole map)
    - Zone or situation effects like: autohealing units when close to own buildings or territory, or higher upkeep cost when on enemy territory or when moving/fighting, morale effects, ...
    - The balloon (and similar mechanics) do not reveal the whole map in realtime, but rather produce "snapshots" with a certain time interval and delay, and per specific parts of the map
    - Allow lower limits on view range and on unit rotation speed
    - Creating custom rectangle formations depth/length ingame
    - Buildings able to heal, improve auto-fire AI at long distances (for towers), allow them to have multiple weapons, etc.
    - Not to consume all resources of a mass-production order (for example 100 dragoons), but consuming it just prior the production of every single unit
    - Consuming resources not at beginning of production/construction but steadily through the production/building time
    - Multiple academies speeding up research time
    - Upgrades giving partial bonus even before completion

    Thanks for reading and good luck with the development.

    Enjoy the upcoming holidays,
    Last edited: Aug 4, 2016
    [KGR]-^K[o]K^- and Loner like this.
  2. [KGR]-^K[o]K^-

    [KGR]-^K[o]K^- Moderator Staff Member

    What I like and support

    But I would also preserve the old system create rooms (lobby)

    if everyone agrees or specifies host room

    This was possible in the C1 but I'd change. You can give all or only a specific person control, if that player allows it.

    Hmm, a bit useless when you can give control to another player (What for transferring units?)

    Yes great idea!

    Agree, Sometimes, the game was so fast, that neither has done play, even though it was slow mode. :(

    Yes really strange when bullet flies through :)

    Yes! giving upgrades to the queue, i like that in StarCraft

    Peasants return and they will do what before. Good

    This should make player on his own... Please no more automatization, automation or automatically... So the next thing they can add can be automatic fights, I must not play at all, but just watch, because everything will be automatic. No thanks!

    As I said before this should make player on his own...

    I am for it!

    I prefer fog of war from StarCraft 2 or that what I suggested
    But this is not so irrelevant it's just window dressing.

    Ye, different formations that I've always wanted, but these three basic formations me enough.

    As I said before this should make player on his own...

    I also want this !
    Last edited: Dec 28, 2015
    TomV likes this.
  3. TomV

    TomV New Member

    Thanks for the comments ^K[o]K^. I respect and appreciate your concerns about "automation". I know that there are two groups/views on "good strategy players" – those who are able to perform a very high number of clicks per minute/second, and those who are not as fast, but rather "out-think" the opponent (this has been a hot topic in the Starcraft community since forever). I am a supporter of the second view, because I prefer grand scale strategy and tactics, rather than spending most of my time being hyper-active doing the same repetitive tasks that do not require that much brain effort (and repeating this in every match or every minute); but of course, that is only my opinion, and it is OK to have different opinions.

    I guess the difference is only in what one understands as "automation" of tasks: one extreme are the modern tablet-strategy games where players have to manually collect (tap) each resource that is produced (which I do not deem very "strategic"); and the other extreme is, like you said, that you just sit back and watch the battle (or resolve it automatically like in the Total War series, for example). I'm for something in-between, because I believe it is most fair to let each player decide by himself how much effort he wants to put in micromanagement – let the game be as automatic as possible so that players can sit back and watch, but also allow them to gain additional advantage by steering the battle to the finest detail (to the individual unit, as in Cossacks); but either way don't burden them with "non-intelligent" tasks, unless really necessary. This way, players have more choice in where to focus their “micromanagement time", whether is this into battle, tactics, economy, construction, scouting, etc... This way the playing styles get more diverse (and thus entertaining), because not everyone is required to do the same tasks in order to be competitive.

    Lastly, I am sure that a certain extent of automation is welcome by everyone – imagine you had to set an attack order for every single unit every time – imagine that units would not auto-attack when an enemy approaches or that there is no "move and attack" order in Cossacks. Those who have played early strategy games probably know how it is when the interface lacks such automation. A good example from the first versions of Cossacks ... in Cossacks ATW it was impossible to set infinite production of units – I think most would agree that this was a real setback, as we know how the gameplay and tactics (and overall fun) improved later with Cossacks BTW, mainly because players had more time to focus on "important" tasks, due to such "interface" changes. On the other hand, there are surely also some hardcore players that think this infinite-production option spoiled the original Cossacks, and surely there are also players that would defend the interface of Dune 2, which allowed selecting only a single unit at a time (back then when Warcraft 1 was deemed as revolutionary by allowing to select 4 units at a time).

    Again, this is only my opinion, just something to think about. I claim by no means that this is the best or correct approach. Discussion and different points of view make life more interesting :)

    Thanks for reading and have a nice day,
    Last edited: Dec 28, 2015
    Loner likes this.
  4. [KGR]-^K[o]K^-

    [KGR]-^K[o]K^- Moderator Staff Member

    I like when the game is a combination where you need to think as well APM. Cossacks and Starcraft satisfies these two conditions. It can be said of all the actions that repeat even those in the fight.

    A good player should do everything and not rely on the fact that it will be automatic.
    automatic = convenient
    I've never supported the idea to make it automatic when you can do it yourself. Of course, there are exceptions which would have made the game too extreme (to unplayable), i have nothing against it.

    What bothered me more that the original Cossacks EW, there were no keyboard shortcuts (hotkeys) than infinite production of units...

    Keyboard shortcuts (hotkeys) the most important thing in the game for me. With "shift + left mouse click" you can add to queue +5 units and if you click more and fast in short time you can have in queue production 300 units. Using keyboard shortcuts make it easier to play. Of course to set infinite production of units is good, you can concentrate on other things. I therefore see no reason for other things it to be automatically.

    Yes i know, what player has a different perspective (opinion) :)
    TomV likes this.
  5. [KGR]-^K[o]K^-

    [KGR]-^K[o]K^- Moderator Staff Member

    I would add one more thing, that bothering me and i hate the most and which should not be automatic as in the Cossacks 2.

    I have not attacked yet
    but only enough to walk through someplace where the enemy has revealed a map and have him report:
    "The enemy troops spotted" and show on the minimap where is my army located, such a red warning.
    [​IMG] [​IMG] [​IMG] [​IMG]

    "The enemy troops spotted" and the other similar warnings... This completely lacks the element of surprise!
  6. Foeurdr

    Foeurdr Moderator Staff Member

    About the automatic action, while I do found there is a bit too much in the proposition of TomV, some proposition would be really nice like the auto-transport for troops over water, if the barge would automatically make the same trajectory enough to transport all the men that would be nice. I'm also for assigning a minimal guard automatically too because I found it tedious.

    The point on the ranged unit auto-engaging in melee made me remember that officer would always go suicide themselves in musketeers shoot-out being the only unit to go for melee while all the other are firing, if he could just stay in place and not charge that would be better.
    TomV likes this.
  7. TomV

    TomV New Member

    Yes, hotkeys are indeed required and very welcome in such complex games. However, they only make it faster to do things, regardless if those things are tedious or not (regardless if those things require mental effort or only repetitive clicking). So they are only a partial solution. As an example, as we both wrote about it: queuing 300 units is not quite the same as the "infinite production" order, because queuing consumes the resources for all 300 units immediately at the moment when you place the order. The main point of infinite production is that it consumes resources gradually, before the production of each unit. To mimic the same behaviour, a player would have to produce 1 unit at a time, and click to produce the next one immediately after the previous was completed. This is practically impossible to achieve manually, with or without hotkeys, given that a player usually has more than one production building (barracks) and much more important/fun stuff to think about. With infinite production the overall efficiency of consuming resources and producing units improved a lot – it became more "smooth". This is reflected in the gameplay of Cossacks BTW where you can develop a larger army in a shorter amount of time, compared to the earlier Cossacks versions. That is why I think this is a great example of "tedious-task" automation.

    I also fully agree that the "element of surprise" is a great way to improve the depth of a strategy game; however, I believe it should be implemented in a more clever way. For a game like Cossacks, I would NOT define the element of surprise as "repeatedly manually-scanning the minimap to spot units that are actually already spotted by the fog of war", but would rather define it as "marching out of the fog of war with an army where/that the enemy was not expecting" where it should make no tactical difference if it is then auto-reported to the player. Therefore, I disagree with your example from Cossacks 2. I think the frequency of looking at the minimap cannot be a good metric for defining gameplay "fun", "depth", "strategical thinking", or "player strength". As an example: a player who is very smart and is winning a match, but did not see 5 fast cavalry units capturing half of his base, because he did not check the minimap in the last 30 seconds – and because the opponent's colour happens to be white – implies that such game mechanics are not good, to my opinion. And in fact, now that we brought up this example, for Cossacks 3 the developers should really think how to remove the advantage of white-coloured and black-coloured players due to difficulty of spotting their units on the minimap (even if the automatic warning is added).

    This said, there might be better ways to encourage the "element of surprise", while still preserving the automatic warnings when spotting enemy units. Let me sketch an example that derives from real life, where you can easily spot large masses of units (say, formations), but have more difficulty in spotting smaller groups of units: the game engine could consider this when "revealing" the units to the opponent – even if you are inside the opponent's fog of war, your units could still be "invisible" until you get even closer. This implies that the terrain is no longer either "covered" or "uncovered" by the fog of war, but the engine could have a range from 0-100% of visibility over a certain part of the terrain; and each unit would have a certain "camouflage" parameter, which would be used by the game engine to calculate whether the unit becomes visible or not (I think something similar is in the Total war series); and when more units are together then the "camouflage" parameter gets worse. The terrain (forests, hills) may also affect this parameter (allowing ambushes, for example). This way you have strong mechanics that require clever thinking, and no "lame" surprises, but rather well-conceived ones. Now, this is a long-term suggestion, and I am not saying this should be implemented in Cossacks 3, because it would seriously alter the gameplay, but still it would be interesting if the engine supported it for modding purposes or for future versions of the game. That is an idea I have not thought about earlier, and it is a quite interesting one ... so thanks for this discussion :)

    Thanks for the comments Foeurdr. Yes, I listed a lot of "automation", all that came to my mind, and I really don't claim it should all be implemented, but I hope at least some of the ideas might get in and overall improve the game. Also, as a note of caution that I didn't mention earlier: if such "automation" is not implemented well, it may become a burden to the player, instead of a benefit. And implementing such complex AI behaviour requires skilled-programmers time, so the developers will have to balance what is worth to put in the game engine now and what later.
    Last edited: Jan 5, 2016
    Loner likes this.
  8. [KGR]-^K[o]K^-

    [KGR]-^K[o]K^- Moderator Staff Member

    Yes I know. And with this you are absolutely right.

    You have right again this would be really tiring, because the unit production is too fast, but also, it would be possible, if the unit production was more slowly like in StarCraft.

    Yes, these keyboard shortcuts (hotkeys) and infinite production are in place.

    Keyboard shortcuts (hotkeys) and infinite production was already included in The Art of War :)
    Yes this great example of "tedious-task" automation, but the other automation as you suggested they are not.

    I just do not know this type of warning I do not like. In StarCraft are not such a warnings so why should be here? That's why I like it in StarCraft.

    What would be acceptable if are enemy units in my area where i have vision and it is revealed. So you get warning after 5 second, but didn't show on the minimap where is enemy army located, it should be up to the player to find them.
    Also if your town or army is under the attack you shouldn't get warnings immediately, but after 2 second, but in this case - show on the minimap where.

    Or leave the original warnigs from Cossacks Back to War.
    But the game is not just about who is smarter, but also about who has good reaction, control of units, apm ...
    Colors on the minimap should be more highlight. Also green and all colors, not only black and white.

    Good point. You should get a warning after the unit is completely visible or
    100% visible army - warnig after 5 second
    50% visible army - after 10 second

    You have a lot of good ideas on how to improve the game in the first commentary to which I commented, but automation no :)
    I hope that some will be implemented.

    Ye ye also so thanks for this discussion :)
    Last edited: Jan 5, 2016
    TomV likes this.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice