Jump to content

DCS Alive (a mission where the world feels populated).


Recommended Posts

Posted (edited)

So, a bit of an intro:

I play alot of Arma 3. For those of you who have not played it it's not really that far from how DCS works in terms of large map and user made missions.

For Arma 3 there is a mod called ALiVE which is really a game changer, one of the funcions of that mod is that it makes the map feel populated (hence the name of the mod I guess) by spawning enemy units with tasks a set distance from the player, making the entire map filled with enemy, friendly and civilian units going about their business.

 

For DCS there is no ALiVE (as far as I know) and the closest we get is the civilian traffic funciton (witch basically is what I want, but for enemy units).

 

What I want is a mission that starts on the runway and I can either go about flying around scouting for enemies or get a task that I do not yet know what it is, maybe even mid-mission.

 

So I have done a couple of things to emulate the randomness that I am looking for. I have placed about 950 enemy units spread over different groups doing different things.

 

About 75% of the units are placed with waypoints (on road) that goes all over the map spread evenly over the entire map. Those groups then have a 33% chance of getting activated on mission start. This creates the feeling that a group of enemy vehicles can just happen to stumble in on where I am.

 

The rest of the enemy units are placed in different configurations which I can activate via a "Generate task" function in the F10 radio menu that enables one of about 40 different tasks which includes "go here, find enemies" or "bomb this building" or "a friendly convoy is leaving from point A to point B and back again, provide escort/CAS" that plays great with the randomisation of where enemy units can come patroling.

 

Finally there are UAV JTACs circling the entire map, if one would want to contact them for tasking.

 

All this is great fun and I can keep up missions that go on for hours without me knowing what will happen at any given day, but it's really only randomisation of things that I am very well aware off.

Also, at about 1000 units on the map the mission takes forever to load and editing it is really wonky with weird crashes and hickups happening.

 

Now, my question is, is there any simpler and/or better way of doing what I'm after? It feels a bit forced and as if I'm really on the edge of what the DCS Mission Editor can handle. I feel that all this could be done via scripting instead of manually placing enemy units.

 

If anyone is interested in the mission file you can get it here, but I warn you, it's big and not perfect in any way :)

 

THIS MISSION HAS BEEN REMOVED

 

Cheers!

Edited by EasyEB
Posted

Now, my question is, is there any simpler and/or better way of doing what I'm after?

 

Compared to the trigger system, Lua scripting is certainly a more elegant and scaleable way of building a mission like you have now. By dynamically spawning units, it should also mitigate the performance problems.

 

Whether it is a better system to do what you are after depends on whether what you are after is possible to implement.

 

Be aware that the power of the DCS scripting engine does not even come close to what you can do in ArmA. In the ArmA series, every aspect in the game is available to the scripting engine. In DCS, mission scripting was added more as an afterthought -- you can do a lot with the scripting engine that is impossible or very tedious to do with triggers alone, but there are several things that are simply impossible to do because not everything is exposed to Lua scripts.

 

Here are a few examples of those limitations:

  • The warehouse system is not accessible from Lua scripts. You cannot for example add supplies to an airport during the mission with a script.
  • No way to re-arm units with a script.
  • No fine-grained control over ground units (e.g. "shoot that specific enemy" or something like that)
  • Things tend to break from time to time and it seems like fixing the scripting engine does not have a very high priority.
  • Occasional bugs and weirdness surrounding the dynamic spawning of units. For example, if a client in a multiplayer mission kills a unit that was spawned that way, it will say "Player XY killed Building" regardless of unit type.

 

I feel that all this could be done via scripting instead of manually placing enemy units.

For plausible looking units, you will probably still have to place them by hand in most cases (otherwise vehicles may end up on top of buildings or something like that).

 

If you want to explore the DCS: World scripting engine, take a look at DCS Witchcraft (link in my sig). It provides you with an interactive Lua console that allows you to execute snippets of Lua code in a running mission and look at the return value -- great for experimenting without having to constantly reload the mission.

 

PS: If you want pointers on where to start learning Lua (or answers to other Lua-related questions), please briefly describe your previous experience with Lua and/or other programming languages.

Posted

There are a few factors you need to take into consideration -

1. Performance.

2. Network stability (if this mission is directed at multiplayer)

3. DCS limitations.

 

In the ME you can really create a very good dynamic mission with randomness but the problem is that you will be limited on recurrences and other aspects of randomness such as waypoints and paths.

Using the scripting engine and frameworks such as MIST/MSF/MOOSE would give you great benefit when trying to create dynamic stuff.

 

So first, performance.

You need to understand that DCS is a lot less performance friendly than ARMA3, if you have many units in a location, you will start having FPS loss and eventually other procedures would get hit, this in a way hits network stability as well.

 

Secondly, network stability.

In DCS there are some fine lines to try and follow in order to get good network reliability.

We have managed to hold missions of up to 4 hours with around 60 players by following these guide lines -

1. Try to limit ground movement to a none.

This unfortunately is a big hit when designing a dynamic mission, ground movement is key for such missions and having this limitation is a problem by itself.

2. Respawning by scripts, try to have as little as possible as they could create small freezes, especially if a large group is spawned with different objects.

3. Object loading, when having many objects on the map, new objects that are introduced could create more freezes, the workaround currently is to have all the objects parked somewhere and loaded whenever someone first logs in.

4. Graphics settings, remember that there are some lower end machines that are connecting, try to figure out the best settings that are enforced for all.

For example scenes are enforced by the server, using a higher setting could hit lower end machines which will eventually hit network reliability.

5. Problematic weaponry - cluster bombs (Although should have been fixed in the last patch), gun fire (especially WWII and AAA) create low FPS which create a big hit on network.

6. A good integrity check - This is important to avoid players from connecting with different mods that could hit the network in some way.

 

There are some more issues that are hard to find but usually are caught by checking mission track files.

 

Third, DCS limitations.

As [FSF]Ian wrote, there are limitations that you need to work by.

 

For a guide line on mission building, I suggest keeping the ground units as low as possible to allow more players for online play, the more units you add the more likely you will have lag when players join or performance issues on single player.

 

Usually long load times are because of large MIZ file which is usually a direct result of media files inserted in the mission - audio/pictures.

 

I would love to see something like ALiVE in DCS with good online stability.

Posted (edited)

I recently discover tow scripts. I am using them quite a lot.

 

Check in the hoggit webpage.

 

Telportozone. Takes any given group, and deploy it randomly in a trigger zone previously defined in ME ( you can put few trigger zones). So... if you activate this when you enter in a zone ( you can also add Random condition) you don have units where there is not action. You save a lot of performance.

 

This way, you need to creeate let say, 20 or 30 groups of 10 units, both, friend and foe, and they will deploy only where you are.

 

http://wiki.hoggit.us/view/TeleportInZone

 

Then, If you want to move them to an enemy position, use GroupToRandomPoint

 

http://wiki.hoggit.us/view/GroupToRandomPoint

 

They will figth if they find enemy targets.

 

Simple and efective, if needed , I send one simple mission, so, you see what I mean.

Edited by ESAc_matador
Posted

Just a side note. The file size of your mission is caused by extremely long on road routes for the ground groups. The mission editor saves the lines used to draw the routes directly into the .miz file, so the longer and curvier a route gets, the more points of data need to be stored and the file size increases. Its been a known but relatively minor issue for a long time now, but seeing a mission file get up to 25 mb without any audio or images stored has prompted me to file a bug report on it.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Posted (edited)

Easy EB cam you please create a exmplae of your mission reducing the enemy groups to 10 or so please? This way I will be able to see what you got here without seeing my PC diying in agony, lol

 

I recently discover tow scripts. I am using them quite a lot.

 

Check in the hoggit webpage.

 

Telportozone. Takes any given group, and deploy it randomly in a trigger zone previously defined in ME ( you can put few trigger zones). So... if you activate this when you enter in a zone ( you can also add Random condition) you don have units where there is not action. You save a lot of performance.

 

This way, you need to creeate let say, 20 or 30 groups of 10 units, both, friend and foe, and they will deploy only where you are.

 

http://wiki.hoggit.us/view/TeleportInZone

 

Then, If you want to move them to an enemy position, use GroupToRandomPoint

 

http://wiki.hoggit.us/view/GroupToRandomPoint

 

They will figth if they find enemy targets.

 

Simple and efective, if needed , I send one simple mission, so, you see what I mean.

 

I'm following this post, and will like to see this mission example too If possible.

Thanks.

Edited by Stratos

I don't understand anything in russian except Davai Davai!

Posted

Thanks for all your replies. I will check out your suggestions.

 

On network stability - I've only tested this mission with one other person online and it worked out quite nice (except for the long loading times of course).

 

Stratos, sure, I wont have time to remake it right now but give me a couple of days. With only ten groups the mission will not really be very fun though but I guess you want to look at how it's made?

Posted
Stratos, sure, I wont have time to remake it right now but give me a couple of days. With only ten groups the mission will not really be very fun though but I guess you want to look at how it's made?

 

That's the idea. See how's done without being overloaded!

I don't understand anything in russian except Davai Davai!

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...