Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

RolandofGilead

Making a Difference in Large Battle Scenarios

This topic is 5220 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Well, the reasons a lot of games don''t offer big battle scenes include the effect of one player isn''t usually that much, the results are unpredictable, and the technical issues. As technology improves the technical issues recede. The effects of one player can be enhanced by game design. That leaves unpredictability. I propose two solutions. One is to make your ai behaviour extremely reproducible; hard but not impossible, but also not worth it. The other is to play the game without the player and record the entire sequence until you find a battle with both sides decimated or with the enemy slightly victorious, depending on difficulty level. You then run the script while the player plays so that only she can affect its outcome. One upside is that the script can probably be executed faster than the game could be played normally since you don''t have to run physics nor ai, allowing for extra cycles to be played with. Since the battlefield is entirely scripted it is essentially frozen into space-time, so we put a ''defroster'' around the player so that the local environment is taken out of its script and resumes its lifetime of being calculated. One problem that I didn''t think about until now is that the analogy holds true to a greater extent, objects once defrosted will have to remain so for the rest of the time, so you can''t expect too many extra cycles to be freed. You could go back and resume the script, but then the player might effect things just by being there rather than by actually doing something. One might be able to combine scripted and simulated action, for instance, if you''re in a fighter, the anti-capital ship weapons could continue their scripts whilst anti-fighter weapons are simulated. I know Freespace 1/2 can do this, but in that game it''s all scripted by a person, meaning that it''s not easily done for dozens of ships at a time(I don''t think any mission has more than half a dozen cap ships, except ones I write).

Share this post


Link to post
Share on other sites
Advertisement
Here''s one way: Dynasty Warriors accomplishes this by making the AIs slow; the NPCs kill at maybe 1:10th the rate of the player (or slower!). Then they balance the battle so that the enemy wins, if the player does nothing. Thus, the player needs to kill about 200 NPCs in a single battle to turn the tide to their side''s favor.

Share this post


Link to post
Share on other sites
I like this idea. I don''t think it''s technology infeaseable to simulate the behavior of massive numbers of individual units while maintaining control over the overall battle, providing appropriate turning points where the player can lead a charge or do something heroic. If the player sucessfully leads the charge, the battle script would fork in a different direction.

The technical side of this is that units far from the player could be totally pre-scripted and hence physics/AI wouldn''t apply. Only the nearby units would be simulated.

As you pointed out it would be hard to switch quickly between scripted and non-scripted. It would also be hard to properly set up the battle sequences to hide the "choose-your-own-adventure" simplicity of the storyline.

Tom

Share this post


Link to post
Share on other sites
quote:
Original post by hplus0603
Here''s one way: Dynasty Warriors accomplishes this by making the AIs slow; the NPCs kill at maybe 1:10th the rate of the player (or slower!). Then they balance the battle so that the enemy wins, if the player does nothing. Thus, the player needs to kill about 200 NPCs in a single battle to turn the tide to their side''s favor.



I really like this approach, and I''d like to see game mechanics like this in more games. I like the idea of dramatic actions with large scale sweeps (doesn''t have to always be war, but that is mostly what we get, and it is moving).

The dynasty warriors approach embeds the success of the player directly into the game''s rules. I think the morale system determines success in battles more than anything else. It seems like the key generals you have to defeat are weak when morale is low, but strong when it is high (I''ve tried running up on them at different times, and they seem weaker near the end).

Without overengineering this, you could come up with similar "triggers" and hide them in the objectives that the player has, or you could make it obvious in the form of the generals and morale meter you have in Dynasty Warriors.

The real question is whether or not you want to trust the player''s experience to a ruleset with emergent and unpredictable properties. Even with reproducible AI, unless it''s fairly simplistic the larger your numbers the more out of control "echoing" effects you can get as your factors spread through the mass of AI characters.

If the player walks through as a "defroster" what happens when the player walks to one area, effects a change, then walks back only to see that change undone by their absence? If areas stay "thawed" then aren''t you back to having to process AI, which defeats the purpose of scripts?

--------------------
Just waiting for the mothership...

Share this post


Link to post
Share on other sites
My aproach to this is, first I would have to determine how hard I want to make the game.

The battle starts and I keep evaluating what the player is achieving. I would make the player allies and enemies equally in theory. When the player is about to reach the objectives that I want him to achieve(like killing 100+ enemies), your allies get a slight advantage or your enemies a disadvantage. That should unbalance things enough to make sre the player wins, even if he does nothing after he did what I wanted him to do.

Never tried this, but will soon, and I like this way of doing things very much

Share this post


Link to post
Share on other sites
Perhaps you could include something like morale.

Eg: A nast tankbug is wreaking havoc on your troops.
You manage to kill it (Rico did it with a grenade :D ).
Seeing the tankbug being blown up, your fellow soldiers''s morale now picks up and there combat effectiveness increases. (which should tip the balance in the favor of your side)

Off course when u screw-up big time, the morale of the soldiers can take a dive. Lowering there effectiveness with it.

Share this post


Link to post
Share on other sites
The reason that people have seldom made games like this is that they simply haven''t been bothered. The technology has been around for ages that would allow you to participate in battles with thousands on both sides, this is not some massive hurdle, its just an economy of use.

Units away from the player don''t need nearly the number of physics and AI updates as those nearby, and a split level approach to AI can make complex decisions happen infrequently and higher up the AI tree.

Additionally a simplified method of combat resolution can be used for fights that are out of sight of the player, which would mean that only the battle in the immediate vicinity needs to be modelled to any degree of complexity.

If I were to make a game like this, or add unit level player participation to my current RTS, then I would let it play out like it normally would. The players faction does not need to win the battle for the player to feel a sence of accomplishment. If the bulk of the forces are out of the players controll or influence then it would be silly to blame or congratulate them on the outcome of the battle.

I personally don''t like how many space sims bestow upon the player the ability to hold down the fire button, whilst limiting the AI to 20% of its firepower. Its like giving a RPG character a mission to kill 2000 rats and calling it a sweeping battle, hardly!

If you want the player to have the ability to have a major effect on the outcome of the battle, but don''t want to give them direct controll of most or all of the units, then you could provide other means of influence over the battle. As opposed to giving the player fire power equivalent to 20% of his forces total fire power.

One way of doing this is to provide a degree of impressionability to the AI units. So that if the player is heroically taking on a whole contingent of support units on one flank all on their lonesome, then other AI could be inspired to join in.

In this manner a player can observe the dynamics of the battle, and attempt to engage the most valuable targets at that time, if the AI considers the players actions viable, then joining the player in that endeavour becomes a possible task for other forces to be assigned to.

Frankly, games that rely on any degree of scripting boor the hell out of me, it is just too obvious/frustrating that it is a ''pick a path'' with graphics slapped on top, and sometimes not even that.

Share this post


Link to post
Share on other sites
There''s the approach frequently taken in spacefighter games, where the PC leads the lynchpin of some attack. For example, the PC pilots a gunship that must take out the major flak weaponry so that figthers and bombers can attack with impunity. This could happen in a superscalar pitched battle, with only a small squad assigned for the crucial task.

The fact is that in a real, huge battle where the PC is an extra - well, to be honest, he really doesn''t matter all that friggin'' much. Give him a smaller task than success or failure of the whole army maybe? Just a "make sure this or that survives" or "make sure you at least take out the enemy commander so that even if we lose we can still claim a partial victory".

Share this post


Link to post
Share on other sites
Well if you had everything in the battlefield scripted, you should also store consequences between actors....

Example:

one soldier kills the guy manning the turret.

So... if you kill the guy manning the turret before he does, you should check all dependencies of the turret, thus finding that a soldier was going to try and kill it (actually... you should look at everyone that was going to try also) and you''d have to detach that soldier from the script.

yes, you''d end up detaching a buncha ppl over the course of the scene... but still you could get away with a huge simulation where you would only manage to modify a bit of it. This would also make it easy to identify deadlocks (something happens that prevents the completion of the scene/level).. but it would also make the gameplay stiffer, since no one would try to fill in for other actor''s objectives.

Still, its probably better to do it all in real time with AI and physics LOD relative to your position. otherwise it gets overly complicated.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!