Which do you guys think has more complexity to it when coding it into a game? Real time battling, like action games, shooters and what have you, or turn based RPG battling?
Easily realtime AI.
Turn-based RPGs don’t require timing, movement, ranges, etc. Its a simple check of “what’s the state of the situation, what are my options, pick one”.
That’s what I was thinking but I was in a debate with someone telling me that turn based is easily more complex. To quote a piece of the conversation he said, regarding turn based: “enemy formations, calculations for enemy encounters, enemy attacks, enemy reactions to your attacks, enemy strategies, aggro range or frequency to run, reactions depending on health or status, etc.”
So your friend is saying these things dont/shouldnt occur in realtime ai? cause that would make pretty dumb realtime AI.
The biggest difference IMO is the need to chose how much ‘thinking’ is being done every iteration, and how much you can afford. You want your realtime AI to responsive, but intelligent. The constraint being since youre running all this clevererness as fast as you can, your performance takes a hit. You have to decide which things need to be calculated quickly, and which can be left for a longer period.
With Turn based, it only has to do all this thinking once you say go rather than 10x/ second. It opens the door to a much more thorough analysis of the scene and what should be done. Chances are, there is going to be a handful of realtime AI required for a turn based system anyway.
That’s what I told him. “Most of that is in realtime anyway.”
And yeah that’s another good point. Realtime you have to be careful how much you tell it to do at once or you can kill performance. But in turn based it’s only checking for certain things at once. All it really is, in essence, is “Enemy: Is it my turn to attack? Yes, now I will attack.” Or “Is my health at a low state? Yes, now do I want to heal or not?” Really oversimplified but you’d think that’s the basic idea. Of course you’d have other conditions to check for but overall it just seems so much more simple to program and design. You don’t have too many crazy things to consider. Pathfinding, taking cover, dodging grenades, so forth.
Actually, a major issue I’ve always run into in realtime AI is trying to make the AI dumb enough to be believable. The most complexity comes in when you’re trying to slow down the enemy and cause it to make mistakes. In reality, a human wouldn’t stand a chance against a machine’s thinking, reasoning and reaction time.
Although a human might be able to find a bug and exploit it , or find a way to screw up the computers logic .
With strategy games I think it really just depends on your game . How many attacks does the enemy have , can he heal . Does he have any abilities , can he call in for backup , etc .
I guess real time might be a little harder since you have to worry more about path finding and all that , although i’m no AI co-coder and I can’t talk much about this .
The only real difference is that one is constantly moving while the other is pausing between moves. Both will require pathfinding, and both can have very complex or very dumb AI.
Unless your imagining a final fantasy style of combat for the turn based. Than its pretty simple, much simpler than real time since there is no real motion involved.
Echoing what has already been said above, real-time AI is much more complex than turn-based. You have to write everything with performance in mind. For a fantasy RTS such as Folk Tale combat AI includes - but not limited to - target management ( when an enemy enters/exits range or dies, aggro management ), range and line-of-sight ( out of range, ranged, melee ), pathfinding so enemies are surrounded ( can be tricky on the edge of say a cliff ), resistances, spell effects ( AOE, single foe, DOT, dispelling, visual fx ), squad coordination, and animation blending and sequencing.
It is by far the most complex part of the project to debug when you are dealing with multiple units consisting of multiple behavioural classes. But when it works, it’s great.
Everything that happens in real-time will happen in turn based anyway (if it was the same game).
The additional complexity that comes with realtime is the ‘behaviours’ and ‘states’ that can be very hard to get right, as if it’s something you’re watching in realtime you’ll want it to look like its happening in front of your eyes and play out in a realistic manner. With turn based its more static and each move just plays out in turn.
Something to consider though, based on the premise of it being the same game with two play modes - say a tactical squad shooter - real time and turn based; is the focus that this thread appears to have on the just the AI aspect…ignoring the player.
Take an average player in a real time situation. Take that same player in a turn based situation where they can think more about their actions - where they can Google strats - etc, etc, etc.
Giving the player more time to think about what they are doing…means you are going to need a more complex AI. Since the opponent the AI’s facing now, is in of themselves more complex.
RTS is more complex however TBS can give a unique challenge that you don’t get with an RTS such as: HANGING, when something bugs and the game ceases to progress because a unit (probably enemy) is stuck on its turn. If you go into TBS willy-nilly you will encounter game breaking issues much faster than with an RTS. Once you know how to build your TBS to prevent such things from happening, then it has nothing over an RTS in complexity from then on. Both are very complex however. I think there are fewer TBS’s because developers feel that if they are going to put all that work into it, they may as well have a game in a more popular genre (RTS).
What would be more complex than an RTS would be an RTS/TBS hybrid, all of the complexity of an RTS plus the added complexity of Turn based issues.
Thanks guys. I really appreciate the input.
I actually just coded a simple little test to see what I’ll be looking at. And I can already tell that this is going to be relatively less complex than what the other guy wants. haha