Jump to content
Sign in to follow this  
tj72

Dynamic Mission Notes

Recommended Posts

How do you tell the AI when to do what ? Wouldn't it be necessary to first know what situation the AI faces atm ?

I'd start with something simple like:

Offensive

Everything is available in great numbers. To keep the initiative send out lots of recon troops to make contact asap. If something is found setup a major attack force there.

Careful

Losses occured. Priority is to hold the ground we already have by setting up strong defenses. Regain everything what was lost by setting up supply lines until we've got enough resources available to get back into the Offensive state again.

Defensive

The losses are very high and we have to retreat for the time being. Fall back and use terrain to slow the advancing enemy down by passive traps (mines, barricated cities/canyons, hidden spotter teams for artillery attacks).

Regain strength by shortening supply lines and combining troops in important areas until we have resources enough to stop the retreat and hold ground again (Careful state).

But i don't see what this has to do with Dynamic Missions. This would belong into a CTI AI thread, wouldn't it ? tounge2.gif

Share this post


Link to post
Share on other sites

I's nice to see this kind of discussions taking place and since I've been thinking along those lines as well for quite a while now I thought I throw in my share.

First I think the narrative approach is perfect for SP missions that you play once and be done with it. There a complex story-line and narrative cut-scenes really help to create an immersing atmosphere.

The main problem I see with this is that when you play such a mission for the second time, you already know the story and watching the same cut-scenes all over again gets boring pretty fast. The second time you play such a mission it's not to know the story (because you already do) but for other things like trying a different tactics for example. The story steps into the background pretty fast there.

To overcome this, a simple story-line isn't sufficient to keep the player interested but as suggested you need a whole story-tree.

Now with a story-tree the replayability of such a mission is directly connected to the number of branches on every knot on the tree and especially on the knots earlier in the story.

If you just have a few branches at the beginning, you'll replay the same beginning, over and over again, just to take a different branch further down and it'll still get boring. So to keep it interesting enough a quite complex tree with many branches is needed and if you really want to do those with cut-scenes and all, complexity gets out of hand pretty quickly even with just a few branches.

In the end, I just don't think it merits the effort to create such a branching story if the player is unlikely so see most of the possible branches, just because it's too tiresome to do it all over again.

For missions that should have a high replayability, this approach isn't really feasible I think.

The other approach that was mentioned is to create a believable environment to play in and have the AI act reasonable within it.

As some already mentioned, the first problem is that such an environment to be believable is quite complex to create.

One possibility that was already brought up to keep the complexity down is to only concentrate on things that can be observed by the player and fake the rest. The major problem with this approach is that you need to be able to switch from a simulated environment to a real one, once the player is around to keep up the immersion. The actual action where the player takes part needs to result from the simulated action. For example, you could simulate the whole supply system with a script, but when the player decides that it would be a good idea to attack an enemy supply convoy, then you need to have real trucks driving somewhere. The same goes for pretty much everything. You don't have to have tons of AI units fighting a whole war, but you need to be able to switch between simulated war and real action.

This can be a bit tricky for rather simple things like creating some trucks on a road that you only simulated before, but I think it can be done within reasonable effort.

The other option is to not go for simulating a full scale war with hundreds of units, but to scale down the whole scenario to something manageable, like for example a limited spec ops campaign. For starting out, I think this approach is much more feasible as it doesn't require a huge amount of upfront scripting where you can loose yourself in details, as there are much more critical problems than switching from a simulated war to some real action.

The main problem I have found is not the complexity as this can be scaled down quite nicely until it's not much of a problem anymore.

But even with such a small scale scenario, the main problem is to get the AI react decently in a given environment. As noted, everything that's not right around the player is more or less background story and can be faked pretty well, but what the player notices instantly is when the AI he's directly interacting with is behaving in a non-realistic way. This can already be seen in current missions for OFP and ArmA and it gets even worse if you have to create it dynamically. In a regular mission you can just look at the map and place some waypoints for the AI, but as simple as this tasks looks like, it's quite hard to do this with a script in a reasonable way.

First you have to give the script an idea about how the terrain looks like and how to interpret it. This isn't that trivial since there are no easy ways to get that done with simple scripting. You can do it by hand but then you either limit the whole dynamics right from the start by your selection of choke points, good places for a base, etc., or it gets a major effort to identify those terrain features and make them available to your script.

Once you have that data it's rather easy to give the player the impression of the AI knowing what they do. Be it with with fancy things like NN or a simple planer that does all the things that you are describing.

But the main problem is getting this data and interpreting it. If you can do that in an efficient and reliable way, then the rest is straight forward.

So in my opinion the current discussion is trying to solve problems that already fail because of some more fundamental things.

Even basic things like offensive or defensive moves are moot as long as the AI doesn't understand how to read the terrain in a tactical/strategic way.

Share this post


Link to post
Share on other sites

Yes, terrain is something what wasn't mentioned yet i think.

I'm pretty sure it's impossible to make scripts that read the whole island and mark up strategical places for the AI. I myself thought of that about 1 year ago. Turned out that OpF(ArmA) islands are so open that you can go around any choke point.

An ArmA AI shouldn't be based on terrain calculations, but instead assume any attack can happen anywhere from any direction no matter where you go.

The only thing i found easy to get infos from are VILLAGES/CITIES. Imo urban areas are the only real interesting combat areas we have in OpF/ArmA. Structure provide cover from outside tanks or air vehicles passing over. Some fireteams armed with RPGs or AAmissiles pose a great threat in an urban area. (Again BlackHawkDown comes to mind)

Add some civilians and you'll have a very tricky environment for any mission. Players can't just call in airstrikes or ari because of civilian losses so the infantry has to move in and do the job as best as they can, backed by small ground vehicles and helis / satellite recon from above.

So, i'd say it would be important starting to calc positions of villages/cities and the connecting roads (street pos can be 'collected' by civilian vehicles driving around at the beginning of a mission).

Share this post


Link to post
Share on other sites

I think that the term "dynamic mission" can cover a fair range of different things. For example, both CTI and GDCE could both be classed as dynamic, but they are very different to each other.

As for what makes a dynamic mission good, it varies depending on several things. A dynamic mission/campaign that is attempting to model an insurgency will be very different to one modeling a conventional war. Thinking of these two themes, consider the following:

- Scale of warfare (eg. number or units, area covered, etc)

- Desired ambience

- Role of player (eg. squad leader, rebel leader, overall commander)

- Victory conditions

- Resource management

The requirements will be very different. So instead of just saying "dynamic missions", I think we need to clarify things further. Generated missions versus emergent missions, conventional versus guerilla war, company level versus squad level, etc.

Share this post


Link to post
Share on other sites

Rom's point about the limited value of tree-based narrative structures is correct - does anyone recall the old 'Choose your own adventure' books from the late 80s / early 90s? They had very poor longevity for exactly the reasons Rom identifies in his post.

However, I don't believe that we have to abandon narratives entirely in the pursuit of a dynamic, open-ended mission structure. Instead, I suggest the challenge to mission designers is to create an approach to building and telling a story that is as adaptive as the rest of the dynamic mission engine.

For example, I notice that elsewhere in this post there has been a concerted effort to break down the dynamic mission concept into modules which can be combined in any sequence. Perhaps there is an opportunity to do the same by breaking down larger narratives into a library of sub-plots?

Similarly, with characters it would not be hard to create a library of 'actors', and then draw from this resource at random when populating the stories, cut-scenes and radio-chatter.

My point is that we do not have to abandon the idea of narratives - which, after all, are what help to create real immersiveness - just because we desire dynamic missions. We just have to work a bit harder wink_o.gif

- Fer <TZW> smile_o.gif

Share this post


Link to post
Share on other sites

The thoughts about terrain are very good points. Along with posing problems, the individual AI seems incapable of figuring out what good positions are, and how to take cover, aside from just laying down - once again, another immersion killer.

As for the narrative, I'm not sure it's completely necessary to have a full blown story with cutscenes and such. I think a better approach, both from a design and immersion standpoint would be to make the island as alive as possible. This means civilians that talk to each other, sleep (not sure how that would be possible, maybe disappear at ngiht?), and drive to other towns. That means soldiers that talk to each other, clean their guns, etc. Actual supply convoys.

Making Sarahni as realistic as possible in terms of its population and their actions, both military and civilian, would make the mission as immersive as possible while not sacrificing replayability.

Share this post


Link to post
Share on other sites
)rStrangelove @ Dec. 28 2006,12:56)]I'm pretty sure it's impossible to make scripts that read the whole island and mark up strategical places for the AI...

for OFP it can be done since the file format of the islands is known. For ArmA, we'll have to see how easy it can be decoded or whether BIS is willing to help on it.

But even when you can read the terrain, you'd have to create an abstract representation of it that includes all the things you find necessary for the AI to behave in a realistic way. What exactly those features are is what I'd like to see discussed a bit further here. I already mentioned choke points which there are algorithms to calculate them and you mentioned villages and roads.

)rStrangelove @ Dec. 28 2006,12:56)]...Turned out that OpF(ArmA) islands are so open that you can go around any choke point.

An ArmA AI shouldn't be based on terrain calculations, but instead assume any attack can happen anywhere from any direction no matter where you go.

Actually choke points that you can't go around are quite rare in real scenarios as well. What makes those points important never the less is that it's easier, or better for some kind of reason to go though it. If you have a road going into a valley, then you are able to leave the road and just move cross-country up the hills, but then it might be slower. So there is some value in certain terrain.

Also if you observe the ArmA AI, you'll notice that it doesn't drive everywhere, even with tanks.

But it's not just accessibility and movement speed, but also visibility that can give you a valuable advantage in a certain terrain. If you walk or drive straight over the hills, you'll instantly be seen, but if you keep in forests or behind hills, then the surprise is on your side. There definitely is much value in knowing the terrain and using it for your advantage, even with the smaller scale that we have in ArmA.

After all not every mission is located in a village and mission makers choose the location for a mission carefully for providing interesting possibilities that are based on exactly those properties of the terrain that I mentioned. Otherwise all missions that are not located in a village could be played on completely flat terrain without any difference and that's obviously not the case.

Villages might be easy to detect and provide an interesting playground for missions, but then we're talking about dynamic missions here and only using villages seems to be an awful waste of the huge terrain and the possibilities that we have in ArmA.

I think that the term "dynamic mission" can cover a fair range of different things. For example, both CTI and GDCE could both be classed as dynamic, but they are very different to each other.

As for what makes a dynamic mission good, it varies depending on several things. A dynamic mission/campaign that is attempting to model an insurgency will be very different to one modeling a conventional war. Thinking of these two themes, consider the following:

- Scale of warfare (eg. number or units, area covered, etc)

- Desired ambience

- Role of player (eg. squad leader, rebel leader, overall commander)

- Victory conditions

- Resource management

The requirements will be very different. So instead of just saying "dynamic missions", I think we need to clarify things further. Generated missions versus emergent missions, conventional versus guerilla war, company level versus squad level, etc.

Actually, I don't think there is need to further define the type of mission as you will end up with tons of different types and all kinds of variations and combinations, where it should be nearly impossible to rule out one or the other because they all have a common basis.

I rather think what we need is to come up with what this basis is and how to get it, so that everyone can build upon it to create his own flavor of dynamic mission.

Whether you create a dynamic mission based on realistic guerrilla warfare, or with some specific or artificial game play rules like CTI or maybe even more abstract things, you will still find that you need a common set of things for all of those.

Being able to judge the terrain for tactical and strategic reasons is one thing.

Something else might be a generic command structure for decisions that are common to all types, or generic group management or group communications.

Once things like these are available, it'll be much easier to put some specific gameplay on top of it.

However, I don't believe that we have to abandon narratives entirely in the pursuit of a dynamic, open-ended mission structure. Instead, I suggest the challenge to mission designers is to create an approach to building and telling a story that is as adaptive as the rest of the dynamic mission engine.

For example, I notice that elsewhere in this post there has been a concerted effort to break down the dynamic mission concept into modules which can be combined in any sequence. Perhaps there is an opportunity to do the same by breaking down larger narratives into a library of sub-plots?

Similarly, with characters it would not be hard to create a library of 'actors', and then draw from this resource at random when populating the stories, cut-scenes and radio-chatter.

There are lots of discussions about narrative approaches in games but the problem is always the same:

What you're up with there are books and movies which are both still created by at least trying to come up with original ideas and this is exactly what defeats the approach to create the story by some sort of story-telling engine. The amount of effort you have to put in something like this is way more than what you get out of it since the level of sophistication you have to reach to make it worth a bit is set sky high by movies and books.

The thing is that it would be much easier and less time consuming to come up with a new story and create an actual mission every week than getting such a story-telling engine done just to drive a dynamic mission.

Apart from the complexity mentioned above, the problem is that cut scenes are a rather artificial method taken from books and movies to help with the immersion. Those need such methods because interaction just isn't possible in those media. In real life you don't have cut scenes. If you want to know something you just go and ask someone, read something or get your information somewhere else.

The strength of a game like ArmA is that it's not limited to a predefined plot, but that you can interact with your environment. This is something that books and movies can't do. When DVDs came up there was a big hype about how interactive movies are possible now with the amount of data that can be stored, but from what I've seen this didn't really work out well. The qualities of movies and books are not their interactiveness and the qualities of a game engine like ArmA is not really dynamic story telling. Both can be done with huge amounts of effort, but the question is whether the result is really worth it.

I just can't see how such a cut-scene library could be done within reasonable effort and a quality that makes it worth. At least not if the goal is story-telling.

Where those things can help quite a lot is to intensify the immersion of a mission, be it dynamic or not. Like when you see soldiers loading something into a truck or doing other duties that are not in the standard repertoire of the regular AI. This is where I can see "actor libraries" could help allot. Not for story-telling or story driving cut scenes, but to provide a more realistic environment. This is much easier than driving a story with it, since those are things that don't require that level of uniqueness to make a significant impact.

For the radio chatter library I agree with you. Some time ago we had a discussion about exactly that in BAS and the only thing that is missing for something like that are some people who are willing to do the voice-acting and someone who has a clue about doing quality sound editing.

Share this post


Link to post
Share on other sites

Since I dont have the game yet all I can do is scribble notes down on paper and try to plan out the logic how many scripts might be needed. I might have a basic system that uses five or so scripts but I have to make a mission when the time comes.  

 I think its feasable to set up a system that generates missions dynamically and is alble to handle a variety of different actions with relative ease.

This is going to be a basic system that can react to an "event"  then build a mission to address this event.

It can start when your recon discovers an enemy base. It will start the system by placing a marker on the event location and defining an event type. This location is used to assign the missions "target" gamelogic with the mission number.

 Then it simply notifies a scanning loop that an event has occured and give it a number. The scanning loop will take the event and assign a mission with a type configuration on it. So if its "enemy encountered" as the event type then the program will set the mission type as "attack" as a preset response.  

 The loop will send the mission and event location and type to a mission building script. It will handle evaluating and assigning a proper group to the mission. It will arrange for transport if over a certain distance. Then it plans out its trips by making an array with all the waypoints using the event location as its destination. The waypoints will handle group and transport.

After the mission is built, another script starts and runs the mission and keeps track of its progress. When the group disembarks from transport it runs a specific action script for its mission. All relevant waypoints and objectives are applied from the mission script to the group that is being used. Then the group completes its mission and becomes available for the next mission.

 Now your side might have an emergency come up and need to pull groups that are busy but should drop that and come help right? An override feature could be used to interupt ongoing missions of needed groups and re assign them mid stream. If the new mission comes up and has a higher priority value than the current mission then override is succesful and the mission is switched and then we have more branching and unpredictable events. The group can go back to a previous incomplete mission if its still valid after.

What should occur in mission will be many groups travelling around the map going on their mission or getting diverted to their new missions. Other groups will be engaged in their mission activites or reacting to the situation such as retreating or waiting for reinforce/resupply. As a player you can join any group and participate in their mission.

All of these scripts would read and update a set of arrays that handle the elements in the mission

mission_001 = []

eastgroup_001 =[]

mission001_moves =[]

(porbably a few more)

these arrays can handle almost all the variables needed for all kinds of missions (I think). Its the framework for the dynamic mission and the group that is assigned to it.  With about 4-5 scripts that interact with the arrays and some OOP type programing you can have the core system that works with all kinds of missions..... if its fleshed out enough.  It would be one group per mission, as is, but that could be easily cloned to have more groups run the same mission (I think). Also it will need to read the missions and group numbers its handling and pass those numbers around from script to script.

IT would require an array for every group and every mission though and that could be hundreds/maybe thousands of arrays passing through the memory so I imagine there will be a performance hit somewhere down the line without some cleanup or some tricks.

Share this post


Link to post
Share on other sites

Could I please point everybody in the direction of EECH helicopter sim this has an excellent dynamic campaign that runs on a 7 year old PC. Basically it generates missions for groups of helis to perform. First recon, strike, BDA and then finaly an insertion mission that sets up a FARP. This process is backed up by the fact there are points that if attacked greatly help the war effort such as big Military bases and Airbases.

This system works really well to create a feeling of an ongoing war and I would have thought could easily be implemented into Arma. You can jump in and out of all helis at any point so you dont get bored flying home etc and can stay in the thick of the action. ANd all the while the enemy side is doing the same thing attacking your FARPS. Surely if this campaign runs well on ancient PC's ARMA could do the same thing if not better with combined arms of troops and vehicles.

heres some links for the game which has been  moded by the way and looks quite good for a 7 year old sim.

http://home.planet.nl/~ek000114/gotcha/

heres some pages about the campaign

http://www.razorworks.com/enemyengaged/chguide/index.html please look at chapter 2 campaigns.

I know flacon 4 has a more complex campaign engine but i think somthing like this could perhaps be done in Arma.

Share this post


Link to post
Share on other sites

What I would like to see, is the same type of core mission type that DMA offered for OFP. Something you can then develop further for your own needs.

I still think it was the best addition to OFP, even considering all stunning addons that was made. With the new FSM system I suspsect even more interesting modules can be made.

Marcus

Share this post


Link to post
Share on other sites
)rStrangelove @ Jan. 08 2007,00:51)]FSM = Finite state machine ? for DMA ?

I was thinking of the customized AI behaviour.

Marcus

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×