Official Fulqrum Publishing forum

Official Fulqrum Publishing forum (http://forum.fulqrumpublishing.com/index.php)
-   FMB, Mission & Campaign builder Discussions (http://forum.fulqrumpublishing.com/forumdisplay.php?f=203)
-   -   Organising flights in a multisquad campaign. (http://forum.fulqrumpublishing.com/showthread.php?t=30979)

Osprey 04-09-2012 09:43 AM

Hi Kodiak, whilst Farber has done the vast majority of the work and it is a JG27 campaign, I am providing a large number of his enemy fighters for it (looking forward to that :) ) and I have been working with him on how this runs (though the buck stops with him).

Quote:

Originally Posted by FG28_Kodiak (Post 406962)
you wanna ask the operators with the mission menu? and than after 4min you will get the response? This is possible without problem.
Okay for clearance, when we use "radars" will you give the messages to the Airgroups in range of a spezific radarstation or to all. So if you hit the 'radarbutton' then you get Information of all Enemies Airgoups in range of any available radarstation or only from this you are in Range?

Quote:

Originally Posted by 5./JG27.Farber (Post 407013)
Hmm if the radar closest gave the information that would be good otherwise it is as if the aircraft has the radar, or maybe not? :confused:

How would you ask the radar? :confused:

Yes, mission menu! This is what I suggested in the first place. The flight leaders select #1

http://i7.photobucket.com/albums/y29...eselection.png

Everyone else selects something else, therefore this means not everyone gets the menu option and have to be organised by the squadron leader. Only 3 or 4 people on RAF would even have this ability so their workload goes up and the pressure for their team to stay together in flight becomes very important.

The information provided should be:
1. Location
2. Approximate numbers (30+??)
3. Height
4. Heading

The flight lead has to then direct his crew to intercept. If this can be provided vocally then that is even better.

Fighter Command had a WHOLE picture of the area via the plotting room bunker. This would receive all radar information from the RDF stations and observer corps, then scramble accordingly. @FARBER I imagine that for the purposes of campaign, that this event, ie "501 squadron scramble" could be handle by trigger. That way we start at the right time from the right place. I wouldn't want to be on some random patrol for ages because I don't know what's going on and then find ourselves 180 miles away with 1/2 tank of fuel left. Sorry to talk mission but I would suggest participating RAF squadrons being "At Readiness" with kites ready to scramble waiting for the off would be most realistic.

4 minutes delay
This 4 minutes delay for response is interesting since information cannot be absolutely up to date. I'm trying to find out the delay between RDF station and reporting to the squadrons. 4 mins seems a long time, you could cross the Channel in that time. An alternative suggestion is that the flight leaders have a time delay between plot requests of a few minutes, so once they request and get feedback they cannot select again until that time has expired - this would add in the random factor for LW course changes and human error until visual confirmation, it would stop a flight leader from just hammering the button!


This is why I love this stuff, because you learn so much about it all as you go :) I read that Ground Controlled Interception didn't occur until later because the RDF stations needed to scan the whole sky, therefore a squadron was scrambled and vectored to an interception position and that was it, though it was accurate. There was no 'within range of a station' since the entire coast was covered as one. It's really this we need to replicate. The difficulty would be that since we don't have the whole of 11 group in the mission then the Luftwaffe could 'slip the net' so we probably could do with a bit more reliability.
Here's a nice overview
http://www.radarpages.co.uk/mob/gci/gci.htm


Quote:

Originally Posted by csThor (Post 407042)
If my input is allowed. I agree with Kodiak about the menu thing. Think of it as a Squadron Leader "registering" with a certain Sector Station Ops Room to receive RADAR information. That could be easily done either by making this selection available in the menu (i.e. Select Sector -> Biggin Hill, Kenley, Tangmere etc - if you want more structure and accept a slightly higher workload for the squadron leader) or simply via a distance check for the airgroup (if it's supposed to be easier).

I do, however, suggest to take a look at how the Squad Select Series at Warbirds and the Friday Squad Ops at Aces High II operate. They appoint a CO prior to a run and he has to devise a general plan. Since we lack the numbers they can (theoretically) operate with there would, of course, be some adaptations necessary. My suggestion would be:

1.) Select one squad for CO duty prior to the run. Rotate this position within the squad pool after each run.
2.) Give the CO a number of targets he can choose from. For example a mission set in August 1940 would give the Luftwaffe CO a list of primary airfields of which he has to hit a certain number (depending on number of players, I guess no more than two for CloD) plus a list of secondary targets which may give the LW additional points. This way you create a more realistic Fog of War situation in which the RAF doesn't know which targets will be hit by the LW in advance.

For the RAF this CO duty is, of course, not that important. Later it will certainly become more important once we move to theaters which include offensive ops by both sides.

I see where you are coming from but I wouldn't want to sit out and direct anyone, and if you have a list of targets which the LW can hit then chances of even meeting in the sky are slim - which is the whole point. I don't care for tactics, winning or losing, I'm interested in experiencing the same as squadrons did in the BoB (minus the death).

Osprey 04-09-2012 09:48 AM

Quote:

Originally Posted by FG28_Kodiak (Post 407056)
At the moment with time amount, but it's no problem doing this via menu. But at the moment there is the problem with the missionmenu for the red side on dediserver, so it's better to wait for the patch, and hope the patch solving this problem.
How many of this Sector Station Ops Room where available at BoB? How many radars and other observers was attached to one station?


DANG! So the custom menu code is not available on dedicated servers? I must admit, I couldn't get it to work but I put it down to me being rubbish. Is there a way you can fire an event to the server to obtain that radar information?

Please view my above post for further context, they are just ideas.

Osprey 04-09-2012 09:57 AM

About the 4 minutes delay. It appears to be bang on because the RDF data went through a filter station (where people examined the plotted information) before being passed to the FC bunker - this website is definitely worth a read.

http://www.ventnorradar.co.uk/CH.htm

"The edited data was assembled as markers on a large plotting table and this showed the situation as it had been something like four minutes previously : since then the bombers would have flown about another fifteen miles"

This is interesting too. Vector was only confirmed with the second reading.
"Repeated plots became the direction of travel (vector) with the height and estimated number of aircraft repeatedly confirmed"

CH was blind past the coast and then the OC was used. But was the delay resolved for the BoB???
"With the separate raids thus identified, the information was passed to an Operations room staff who could then make the tactical decisions regarding the deployment and vectoring of the defending aircraft, either those already in the air or presently on the ground, towards their ever moving targets. It was found that those best equipped to calculate the required courses were recuperating experienced pilots as they were able to better visulise the everchanging relationships between defending and attacking aircraft. However, once the enemy aircraft had crossed the coast the CH RDF could no longer detect them and then the Royal Observer Corps reports to the Filter Room became the sole means of tracking the enemy."

"The system of having to use correction charts before reporting plots to the Filter Room contributed to the four minute delay and and sometimes of course the human factor introduced errors. This problem was solved by 'The Calculator'. Designed and installed by the Post Office ( which later constructed the Colossi computers for Bletchley Park) and using relays and uniselectors, this little known and uncelebrated early form of computer automatically added the correction factors to the input plots and displayed the results visually as the grid reference. The machine could also correct heights in the same way and a mechanically linked teleprinter could send the data by telephone line to the remote Filter Room. Ventnor was equipped with its first calculator in June 1940 and received its second in April 1941."

csThor 04-09-2012 10:07 AM

Quote:

Originally Posted by Osprey (Post 407062)
I see where you are coming from but I wouldn't want to sit out and direct anyone, and if you have a list of targets which the LW can hit then chances of even meeting in the sky are slim - which is the whole point.

Err ... no. The CO position is essentially a pre-flight position and is not meant to be RAF Fighter Command CO or commanding General of a german Fliegerkorps during the game. Once the planning is done the CO reverts to flying as usual. I don't know what number of players and squads you're planning with but given the obvious limitations on player numbers and ability to display a lot of aircraft I guess we're talking about maybe forty to fifty people at best so the target area and the target selection will always be within the confines of this limit. Going back to my example of an August 1940 mission I'd envision the german task to hit at least one of the primary targets (i.e. Biggin Hill, Kenley, Croydon) and also offers secondary targets such as radar stations, harbors and secondary airfields.

And just to make that absolutely clear I am not talking about using the whole width of the map if it doesn't reflect the number of players engaged. Right now that is simply not possible from the technical side as we don't see 128 player servers working and being filled to that point (plus a load of AI for the bombers which few people fly, anyway). The target zone would be limited to one of the areas assigned to the german Luftflotten (Luftflotte 3 = west of Seine, Luftflotte 2 = east of Seine). This way both RAF and LW would meet in one area and not play chicken with each other.

Quote:

Originally Posted by Osprey (Post 407062)
I don't care for tactics, winning or losing, I'm interested in experiencing the same as squadrons did in the BoB (minus the death).

The problem is you can't exclude tactics if you want that immersion. The Luftwaffe's bombers would be jubilant if they could fly unmolested. ;)

Osprey 04-09-2012 10:13 AM

Sort of reminds me of the USL in that there was a known mission and both sides planned for it plus if someone knew what was going to happen though then it sort of spoils it for them.

Although it would be nice, I wouldn't expect Farber to have to tail a bomber with flaps down lol I can live without that total repetition!

csThor 04-09-2012 11:31 AM

Never heard anything about the USL so I can't compare but essentially I envision a system in which the RAF will not know what the LW will attack until the action is underway. It's not that I want the LW to announce its targets before flying ... that would make the whole system pointless (all that will be known in advance is the area of operations - ergo whether the west or the east of the Channel map will be used).
Tactically the squadrons should be given not more than a general task but not told "you must do close escort for the bombers". All these considerations should be up to the squad.

5./JG27.Farber 04-09-2012 04:11 PM

Quote:

Originally Posted by csThor (Post 407071)
I don't know what number of players and squads you're planning with but given the obvious limitations on player numbers and ability to display a lot of aircraft I guess we're talking about maybe forty to fifty people at best....

We had around 70 last time at the peak if I recall. Were hoping to fill the server. :-P

Good Post Osprey. Heh 4 minutes hey? Good guess then. You guys can sit on the ground in readyness, no problem.

FG28_Kodiak 04-09-2012 06:37 PM

Ok example for the mission menu:
Select red side then TAB->4 at moment the "radar" is not functional, menu at the moment is an example, so feel free to comment :rolleyes:

for rest i must first read the posts above :rolleyes:

Code:

using System;
using System.Collections;
using System.Collections.Generic;
using maddox.game;
using maddox.game.world;
using maddox.GP;


public class Mission : AMission
{
    #region class Menu
   
    internal class Menu
    {
        internal class MenuEntry
        {
            internal string MenuName { get; set; }
            internal bool active { get; set; }
        }

        internal List<MenuEntry> menuEntries = new List<MenuEntry>();

        public void AddMenuEntry(string description, bool active)
        {
            MenuEntry NewMenuEntry = new MenuEntry();

            NewMenuEntry.MenuName = description;
            NewMenuEntry.active = active;

            menuEntries.Add(NewMenuEntry);
        }

        public string[] GetMenuDescriptions()
        {
            List<string> Descriptions = new List<string>();

            menuEntries.ForEach(item =>
            {
                Descriptions.Add(item.MenuName);
            });

            return Descriptions.ToArray();
        }

        public bool[] GetActives()
        {
            List<bool> Actives = new List<bool>();

            menuEntries.ForEach(item =>
            {
                Actives.Add(item.active);
            });

            return Actives.ToArray();
        }

        public bool IsValid()
        {
            if (menuEntries == null || menuEntries.Count < 1)
                return false;
            else
                return true;

        }

    }

    #endregion


    internal class Pilot
    {
        public Player player { get; set; }
        public LocalHeadquarters connectedHeadquarter;

        public Pilot(Player player)
        {
            this.player = player;
        }
    }


    internal List<Pilot> PilotsInGame = new List<Pilot>();


    internal class LocalHeadquarters
    {
        public string Name { get; set; }
        public Point2d LocationCoords { get; set; }
        public List<string> AttachedRadarStations = new List<string>();

        public LocalHeadquarters(string name, double x, double y)
        {
            this.Name = name;
            this.LocationCoords = new Point2d(x, y);
        }
    }


    List<LocalHeadquarters> Headquarters = new List<LocalHeadquarters>{
        {new LocalHeadquarters("Alpha", 100.0, 100.0)},
        {new LocalHeadquarters("Beta", 200.0, 200.0)},
        {new LocalHeadquarters("Gamma", 300.0, 300.0)},
        {new LocalHeadquarters("Delta", 400.0, 400.0)}};



    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceEnter(player, actor, placeIndex);


        if (!PilotsInGame.Exists(item => item.player == player))
        {
            PilotsInGame.Add(new Pilot(player));
        }


        PilotsInGame.ForEach(item =>
            {
                GamePlay.gpLogServer(null, "Spieler: {0}", new[] {item.player.Name() });
            });

        SetMainMenu(player);
    }
   
   
    public void SetMainMenu(Player player)
    {
        if (player.Army() == 1) // red Side
            GamePlay.gpSetOrderMissionMenu(player, false, 0, new string[] { "Radaroperations" }, new bool[] { true });
        else
            GamePlay.gpSetOrderMissionMenu(player, false, 0, new string[] { "Not Available" }, new bool[] { true });
    }


    public void SetRadarMenu(Player player)
    {
        string headQuarter = "Select Headquarter";
        string connectedTo = "";

        if (PilotsInGame.Exists(item => item.player == player))
        {
            int i = PilotsInGame.FindIndex(item => item.player == player);

            if (PilotsInGame[i].connectedHeadquarter != null)
                connectedTo = string.Format(" (connected: {0})", PilotsInGame[i].connectedHeadquarter.Name);
        }
        headQuarter += connectedTo;

        GamePlay.gpSetOrderMissionMenu(player, true, 100, new string[] { headQuarter, "Get Radar Information" }, new bool[] { true, true });

    }


    public void SetConnectToHeadquarterMenu(Player player)
    {
        Menu NewMenu = new Menu();
        LocalHeadquarters headQuarter = null;

        if (PilotsInGame.Exists(item => item.player == player))
        {
            int i = PilotsInGame.FindIndex(item => item.player == player);
            headQuarter = PilotsInGame[i].connectedHeadquarter;
        }

        Headquarters.ForEach(item =>
        {
            if (headQuarter != null && item == headQuarter)
            {
                NewMenu.AddMenuEntry(item.Name + " *", true);
            }
            else
                NewMenu.AddMenuEntry(item.Name, true);
        });

        if (NewMenu.IsValid())
            GamePlay.gpSetOrderMissionMenu(player, true, 101, NewMenu.GetMenuDescriptions() , NewMenu.GetActives());
        else
            GamePlay.gpSetOrderMissionMenu(player, true, 101, new string[]{ "Not available" }, new bool[]{true});
    }


    public void SetHeadQuarter(Player player, int menuItemIndex)
    {
        if (PilotsInGame.Exists(item => item.player == player))
            PilotsInGame[PilotsInGame.FindIndex(item => item.player == player)].connectedHeadquarter = Headquarters[menuItemIndex-1];

    }


    public override void OnOrderMissionMenuSelected(Player player, int ID, int menuItemIndex)
    {


        if (ID == 0)
        { // main menu
            if (menuItemIndex == 1)
            {
                SetRadarMenu(player);
            }
            //if (menuItemIndex == 2)
            //{


            //}
            //if (menuItemIndex == 3)
            //{


            //}
        }


        if (ID == 100)
        {
            //Radar Menu
            if (menuItemIndex == 1)
            {
                SetConnectToHeadquarterMenu(player);
            }

            if (menuItemIndex == 2)
            {
                SetMainMenu(player);
            }


            if (menuItemIndex == 0)
                SetMainMenu(player);
        }

        if (ID == 101)
        {
            //Radar Menu
            if (menuItemIndex == 0)
                SetRadarMenu(player);
            else
            {
                SetHeadQuarter(player, menuItemIndex);
                SetRadarMenu(player);
            }
        }
    }
}


5./JG27.Farber 04-09-2012 08:50 PM

The menu works. I can attach myself to one of the radaroperators, Alpha, Beta, Gamma and Delta.

I can also see the request option.

FG28_Kodiak 04-09-2012 09:09 PM

Any wishes for the captions of the menus?


All times are GMT. The time now is 01:29 PM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.