PDA

View Full Version : MP Mission: Operation Dynamo


TheEnlightenedFlorist
06-05-2011, 07:39 AM
This is a multiplayer mission that attempts to recreate Operation Dynamo, Englands evacuation of it's troops from France in early 1940. The Luftwaffe tries to destroy ships and ground troops at Dunkirk, the RAF defends Dunkirk. The Luftwaffe are limited to five BF-109E-3s out at a time, while the RAF are limited to five Spitfire Is and Rotol equipped Hurricanes. Other aircraft are unlimited. This can be easily changed in the script file. Also, players are allowed to spawn groups of up to four bombers so they don't have to fly alone.

There are plenty of ships and ground targets to shoot at. They should all respawn after they are destroyed. Except for the ships, they respawn every two hours. AI Hurricanes patrol Dunkirk, AI bombers bomb Dunkirk. Plenty to do. :grin:

You can also add missions that will randomly start every ~30 minutes. Just put them in the DEMissions or UKMissions folder accordingly and add the file names to the lists at the top of the script.

Any bugs, suggestions for improvements, etc. please post them here.

Edit: Updated to v1.1. Players can now change seats in aircraft. 110s should no longer spawn in hangers that are too small for them.

Version 2.0: Fixed more bugs, added ground troops at Veurne, made train go back and forth between Dunkirk and Veurne, added vehicles that drive around some of the airfields. Also added UK missions and Stuka raids that target the ships and ground troops at Dunkirk.

Version 2.1: Removed landing craft, fixed more "spawn explosions".:rolleyes:

Version 2.2: Added Bf-109E-1, fixed script. Also added server logging when ground objects are destroyed by players.

Airwarfare Link (http://airwarfare.com/sow/index.php?option=com_jdownloads&Itemid=53&view=viewdownload&catid=5&cid=88)

Ataros
06-05-2011, 07:54 AM
The Luftwaffe are limited to five BF-109E-3s out at a time, while the RAF are limited to five Spitfire Is and Rotol equipped Hurricanes.

Thank you for sharing and congratulation with the release!

Do you mean that only about 10 people can fly fighters on the server at the same time?

TheEnlightenedFlorist
06-05-2011, 08:33 AM
Thank you for sharing and congratulation with the release!

Do you mean that only about 10 people can fly fighters on the server at the same time?

No. There can be an unlimited number of non-Rotol Hurricanes and 110s. Only 109s and Rotol Hurris are limited. I probably should have clarified that. Thank you. :)

MadTommy
06-05-2011, 09:44 AM
Thanks mate, sounds fun... great idea for a mission.

Seeker
06-05-2011, 10:19 AM
Thanks, downloading now!

Ataros
06-05-2011, 11:51 AM
Just looked through your cs code and it looks great. I wish I could know c# half as good as you do. Sure I have many questions if you do not mind )

We use similar actor destroy code on Repka. It used to have an issue of stopping bomber engines when a player switches to a gunner or navigator position. Did you manage to solve this issue? Does adding this line helps in this respect or it was added for different purposes?
foreach (AiActor actor in actorMain.Group().GetItems())

Also, players are allowed to spawn groups of up to four bombers so they don't have to fly alone.

What happens if a player creates 20 bomber groups in a row one by one? I think they should be destroyed immediately in this case or this can ruin any server. I have seen people creating 20 single Stukas on Repka just for fun. They were destroyed with 5 minutes delay. But with groups different code is probably needed. Just a thought.

List<Player> bluePlayers = new List<Player>();

foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == 2)
bluePlayers.Add(p);
}

GamePlay.gpHUDLogCenter(bluePlayers.ToArray(), msg);

Why do you have to add players to a list first and then print message to the list members. Can you print message directly to array members like in this example (for server log msg)?

private void serverMessage(string msg)
{
Player pl = GamePlay.gpPlayer();
Player[] players = { pl };
object[] args = { msg };
GamePlay.gpLogServer(players, msg, args);
}
This is not my code and I did not check if this code works but I think it does.

SEE
06-05-2011, 12:07 PM
I had really poor FPS over Dunkirk trying to create a single mission campaign for 'Operation Dynamo' and ditched it.

Will MP have the same FPS problems using a full Channel map as it sounds excellent apart from my poor fps over that area of France?

I will certainly give it a try when its available, sounds great!

TheEnlightenedFlorist
06-05-2011, 12:13 PM
We use similar actor destroy code on Repka. It used to have an issue of stopping bomber engines when a player switches to a gunner or navigator position. Did you manage to solve this issue?


I was not aware of that issue. My code probably exhibits the same behavior. That code actually answers your second question. It goes through all the aircraft in a group and destroys them.

As for the list and array business, I only want to send the message to blue players, so I need to create an array that contains only the players on blue team. The problem is that I don't know how many blue players there are beforehand and when you create an array you can't resize it. That's where the list comes in. The list can be dynamically resized. When I'm ready to send the message, I can use the ToArray() method of the list to get an array that contains only the blue players.

TheEnlightenedFlorist
06-05-2011, 12:23 PM
I had really poor FPS over Dunkirk trying to create a single mission campaign for 'Operation Dynamo' and ditched it.

Will MP have the same FPS problems using a full Channel map as it sounds excellent apart from my poor fps over that area of France?

I will certainly give it a try when its available, sounds great!

It runs pretty well on my modest machine. Granted, I have most of the settings turned to low or medium. Dunkirk is a pretty large city. If you normally have performance problems over large cities like Calais, Dunkirk probably won't be any different. I tried to design the map so that a lot of action would take place south of Dunkirk as well as directly over it.

I was hoping that since I see a lot of online missions over Calais, that putting one over Dunkirk wouldn't keep too many people from enjoying it. When did you try making your mission? Maybe a recent patch has helped.

TheEnlightenedFlorist
06-06-2011, 01:18 AM
I was not aware of that issue. My code probably exhibits the same behavior.

This has now been fixed. I also placed static aircraft in the small hangers so 110s shouldn't spawn in them and blow up. The downloads have been updated.

Ataros
06-06-2011, 07:41 AM
This has now been fixed.

Great news! Thanks a lot. It is worth mentioning in the CoD multiplayer section.

The original code for actors destruction comes from oreva at sukhoi.ru forums btw and then was improved by ZaltisZ from 1C forums. Maybe also worth mentioning.

Ataros
06-06-2011, 07:50 AM
Actually ZaltysZ corrected oreva's code to be more friendly to single-engined AC. Sorry, did not notice earlier.

int iNumOfEngines = (aircraft.Group() as AiAirGroup).aircraftEnginesNum();
for (int i = 0; i < iNumOfEngines; i++)
{
aircraft.hitNamed((part.NamedDamageTypes)Enum.Pars e(typeof(part.NamedDamageTypes), "Eng" + i.ToString() + "TotalFailure"));
}


upd.
Sorry for multiple posts. Do you plan to develop the mission further, say including a movable frontline and having ground forces to actually push an enemy to the channel waters? Dunkerque tragedy is a remarkable event in history and deserves further development imho.

I am slowly working (mostly studying C# actually) )) with this script (http://forum.1cpublishing.eu/showthread.php?t=23493)to have movable frontlines in Calais area. At this point there is no generator to generate waypoints for ground groups and all submissions should be created manually. In future we could combine our submissions into one mission covering half of existing France map if we use the same script and the same submission naming convention.

TheEnlightenedFlorist
06-07-2011, 06:13 AM
Actually ZaltysZ corrected oreva's code to be more friendly to single-engined AC. Sorry, did not notice earlier.

int iNumOfEngines = (aircraft.Group() as AiAirGroup).aircraftEnginesNum();
for (int i = 0; i < iNumOfEngines; i++)
{
aircraft.hitNamed((part.NamedDamageTypes)Enum.Pars e(typeof(part.NamedDamageTypes), "Eng" + i.ToString() + "TotalFailure"));
}


upd.
Sorry for multiple posts. Do you plan to develop the mission further, say including a movable frontline and having ground forces to actually push an enemy to the channel waters? Dunkerque tragedy is a remarkable event in history and deserves further development imho.

I am slowly working (mostly studying C# actually) )) with this script (http://forum.1cpublishing.eu/showthread.php?t=23493)to have movable frontlines in Calais area. At this point there is no generator to generate waypoints for ground groups and all submissions should be created manually. In future we could combine our submissions into one mission covering half of existing France map if we use the same script and the same submission naming convention.

Hi Ataros. Yes, I am going to improve the mission. Moving frontlines is unlikely. I can barely get the ships to do what I wan them to. :grin:

It seems like as soon as I fix one problem, another comes up. In the future though, for sure we'll see. ;)

Ataros
06-07-2011, 08:06 AM
It seems like as soon as I fix one problem, another comes up.

I thought it happens only to me every time I open the FMB :grin: lol Probably this is what the devs are experiencing too. At least we are not alone :grin:

BTW with your level of C# knowledge I would target not less then writing a waypoints generator for tank groups and supply convoys ;) i have a sample code for bombers waypoints generation if you are interested. The hardest part would be to release the tanks that are stack in cities or can not cross rivers but this is an interesting and achievable challenge :)

_79_dev
06-07-2011, 09:47 PM
~S~

Can`t get it work ......... as soon as I start server, everything looks fine, I just cant select army... any advise?

TheEnlightenedFlorist
06-08-2011, 02:37 AM
~S~

Can`t get it work ......... as soon as I start server, everything looks fine, I just cant select army... any advise?

Sorry you're having trouble. Please check these things:

1) You're playing in multiplayer mode instead of single player.

2) You're starting opDynamo.mis and not any of the other .mis files.

3) Make sure the game is extracted to the correct directory. It must look like this: missions/Multi/Dogfight/OpDynamo/opDynamo.mis

TheEnlightenedFlorist
06-09-2011, 06:44 AM
Updated to version 2.0. Fixed more bugs, added ground troops at Veurne, made train go back and forth between Dunkirk and Veurne, added vehicles that drive around some of the airfields. Also added UK missions and Stuka raids that target the ships and ground troops at Dunkirk.

I highly recommend everybody take a shot at the steam engine. It blows up real good. :)

JG11Raven
06-11-2011, 03:50 PM
Hi TheEnlightenedFlorist,

thanks for your mission, its great.

i have a problem with map. you see this in my jpg.

can you help me?

Gruß

I/JG11_Raven

TheEnlightenedFlorist
06-12-2011, 12:18 AM
Hi TheEnlightenedFlorist,

thanks for your mission, its great.

i have a problem with map. you see this in my jpg.

can you help me?

Gruß

I/JG11_Raven

Hi Raven, that's a strange one. When did it happen? It looks like it happened just after starting the mission. Did this bring down the whole server? Are you able to repeat this or was it just a one time thing? Ships are... temperamental at best.

JG11Raven
06-12-2011, 08:08 AM
Hi TheEnlightenedFlorist, the problem always comes right after the start.
I have tested this on 2 servers, always the same. These are all your original files 2.0.

The server continues to run but getting this error message.

can you please check the ships.mis


Gruß

I/JG11_Raven

TheEnlightenedFlorist
06-13-2011, 04:16 AM
Hi TheEnlightenedFlorist, the problem always comes right after the start.
I have tested this on 2 servers, always the same. These are all your original files 2.0.

The server continues to run but getting this error message.

can you please check the ships.mis


Gruß

I/JG11_Raven

Have you ever seen the error with something other than 22_Chief or 23_Chief? These both happen to be landing craft. I've removed landing craft from the "fleet". Please test the mission I've attached to this post and tell me if it solves your problem. If it does, I'll update the mission in the original post and on Airwarfare. Thanks for your patience.

JG11Raven
06-13-2011, 09:22 AM
Thanks, those were the two landing ships.

Another mistake is Attack_Dunkirk_1 of Spawn. The aircraft exploded in the hangar.

If you want to test this, our server is the Kampfverband 13, there is the map by now.

TheEnlightenedFlorist
06-14-2011, 01:59 AM
Thanks, those were the two landing ships.

Another mistake is Attack_Dunkirk_1 of Spawn. The aircraft exploded in the hangar.

If you want to test this, our server is the Kampfverband 13, there is the map by now.

I've updated the mission to 2.1. Hopefully that gets rid of the hanger explosions.

JG11Raven
06-14-2011, 09:11 PM
good work. thanks

TheEnlightenedFlorist
06-25-2011, 07:14 AM
I've updated the mission. The last patch made a small change that broke the script. I've also added the more historically accurate Bf-109E-1 and added server logging when ground objects are destroyed by players.

335th_GRAthos
06-27-2011, 08:19 PM
Awesome!

Many thanks for all this great work you share with the community!!!!

~S~

HR_Barripower
07-12-2011, 10:49 AM
Hello everybody.

First of all, thanks to TheEnlightenedFlorist for his work and sorry if this sounds like a silly question, but yesterday was the first time we try to load a multiplayer dogfight mission like this.

All seemed to run fine at first: server loaded mission, clients connected, but when server and clients selected army, they appeared in the UK list but number of player continue on "0".

No chance to fly. If host pushed "fly" after creation of squad, he was in external view without plane. And if clients pushed "create" squad, they returned to player list and never come into mission.

Have we forgotten anything?

Thanks in advance.