CYBERNATION

Combat system

Alex Trofimov
06/29/2018 at 03:55


If you read the «Core gameplay» post you know the basics – we took traditional turn-based tactics (like X-com or Fallout battles) as a starting point and changed a bunch of things to fit it better for the MMO specifics, trying to keep the feel and the flow of the battle intact.

Isometric view, flat battlefield and only 4 units per player, that you must build yourself from different modules, giving you specific abilities (cloaking, teleporting, stunning the enemy etc.), and carefully select from your roster of bots for each fight, minding its context: strengths and weaknesses of the opponent, specifics of the battlefield (planets have different gravity, atmosphere and resources, that all influence the fight) and your chosen tactics for this match.

First of all, we needed to find a way to expand the fights from duels to massive epic battles of 5, 10 or 100 players (for clan wars or grand game events. An MMO where you fight only 1v1 is not so fun) and traditional turn-based combat didn’t cut it. You can’t just sit and wait for 99 players to move each of their 4 bots, it will take an hour at best – then you will have a minute or so of action and another hour of waiting.

There had to be a way for players to act simultaneously, but it contradicts the very nature of TBS, where you helplessly look at your army, frozen in place, as your opponents tears it to pieces. I will describe some of the old variants of our turn-based/real-time hybrids (3 of 8 I came up with originally) in the next post, but what we ended up with as our current variant is the least convoluted of them all – it’s just real-time.

No turns, no phases, no action points per se – you just pick any bot and move, shoot, dig, jump, activate radars and so on. But we were adamant about keeping the feel of the battle in the TBT corner, not going RTS. The combat had to stay slow and thoughtful, not rushed and fidgety, so that players rely not on their APM and micromanagement skills but on careful planning and cunning complex attacks, involving complementary abilities of different bots.

To minimize the anxiety of RTS or MOBA, where you are always need to do a lot at the same time, we came up with several possible solutions, which are, of course, double-bladed and not ideal.

First – we must slow the combat down. Your actions will be limited in some way by time: action points (limiting the player), that regenerate every 5-10 seconds, or energy (limiting each bot individually) or cooldowns (limiting every ability separately, like in most MMOs and MOBAs) – or some combination of the above. This way you won’t be torn apart by the need of shooting and moving 4 bots at once, trying to react to the storm of enemy actions at the same time. You just wouldn’t be able to. You moved your bot 10 squares – his energy is gone, he is recharging and can’t do anything, you are free to tend to other bots. If enemy moves his bot too far forward, you get a chance to think about your actions, click «precise shot» and choose a specific part of the robot you want to disable. You have time for this, because the bot is not going anywhere – it has no energy. So it is frozen in place – just like in a TBS.

Second – minimizing the effect of hasty actions. Now you don’t need to act in a hurry, trying to shoot the enemy sooner, then he fires his own weapons. Maybe weapons are really weak at the start, growing more powerful with time, so trying to hip fire an enemy you ran into all of a sudden is useless (you just spent the last energy on it and now can’t move to cover), if you plan your attack, make a precise shot, you will get more out of it.

Third – lessening the cover impact. The bots we designed so far can’t shoot from behind a cover like humans in X-com, they are too rigid and clumsy with weapons all over the frame, they need to roll out, shoot and roll back. It can be an automated animation, but that’s not ideal. If you have constantly move your bots to take cover – it requires more of constant hasty actions. So it would be more fun if the bots were ok in the open field, behind their own armor. This way you won’t need to run around all the time, chasing the enemy, trying to get an angle on him.

Fourth – automate some parts of the process, let the bots do something primitive on their own – autofire an enemy first it appears in range, repair a damaged teammate and so on. Again, player is left with less to worry about and he is less dependent on his reaction and speed (or even his ping). We can let the players fine-tune their bots’ priorities. “Fire at sight, but only if the chance to hit is more than 70%, only if bot model is not a tank, only if the shot will kill the enemy” – and so on. As with any info and designs in Cybernation these priority sets later can be shared and sold to anyone, who will find them well thought-out.

Fifth is questionable at this point (although, everything here can be changed anytime, but this part is especially shaky) – the combat pause. Player can press the pause button and assign any actions, release it and watch them play out. It forces TB-mode on other players – time stops for them as well. They too can assign actions, but have to wait until the pause will be switched off.

Of course, it won’t be free, it will require resources. The more you hold the pause, the more it spends per second. Times you can press it are also limited per match. The more players are in a match (and more people you inconvenient with it), the more expensive it gets. Others can switch it off, paying their own price in resources. This way pause cannot be abused and is left only for extreme situations. For example, when enemy bot runs out from the fog of war and you don’t want to give it a chance to hide again – you press pause, assign precise shots from all 4 of your bots (hitting the tracks, engine or tires to immobilize it, for example) and press pause again.

All of this needs to be thoroughly playtested, we know getting the combat right will be one of the hardest tasks, maybe we will invent some new ways or will go to some older variants (next post is about them), but so far this is our main bet.
Steve
08/10/2018 at 14:51
I finally got to reading this, and the pause system sounds like a great idea. But reacting quickly to certain situations, like one bot running off to hide, is not necessarily bad either. Have you considered building in a macro system or something similar? e.g. you could have a hotkey for taking those 4 quick, precise shots.
You'd have to limit how many macros can be available to a player, but having to play around that could open up a lot of cool tactics.
Hope it keeps going, good luck with everything dude.
Alex Trofimov
08/10/2018 at 14:57
Steve
I finally got to reading this, and the pause system sounds like a great idea. But reacting quickly to certain situations, like one bot running off to hide, is not necessarily bad either. Have you considered building in a macro system or something similar? e.g. you could have a hotkey for taking those 4 quick, precise shots.
You'd have to limit how many macros can be available to a player, but having to play around that could open up a lot of cool tactics.
Hope it keeps going, good luck with everything dude.
I'm glad you resurfaced)
Yes, we thought about this. Either macros or just pre-programming the bots, giving them priorities. The main pushback to this idea – we do not want to overcomplicate things, to create a system so complex, you'll need hours to configurate all the bots or other players, that did that, will just outpace you, because their army will be much more independent and capable of more actions per minute. But either way – yes, we will think long and hard about giving players instruments to ease the load and let bots do some of the work independently.
franklin
11/01/2019 at 11:55
am also about to create my own game
Alex Trofimov
11/01/2019 at 15:36
franklin
am also about to create my own game
A great endeavour. Good luck
If you want to leave a comment, ask a question, or just want to be notified about new posts or announcements about alpha or beta releases of the game, please register.