ENVOY - a utility for command and control with order delay

Forum for subjects that are not covered in the dedicated forums
User avatar
Verdun1916
Posts: 279
Joined: Sun Jul 10, 2022 8:42 am
Location: Hässleholm, Sweden

Re: ENVOY - a utility for command and control with order delay

Post by Verdun1916 »

Ah ok. I was thinking of trying to play one side manually and the other command-and-controlled with ENVOY for the fun of it if that is possible. And then move on to hotseat with both sides using ENVOY from that.

Thank you for your reply! :)
Dion
Posts: 298
Joined: Mon Aug 01, 2022 6:50 pm
Location: Saline, Michigan, USA

Re: ENVOY - a utility for command and control with order delay

Post by Dion »

This program may solve the problem of HQ's being able to unrealistically give instant orders beyond their line of sight before the radio was invented.
musurca
Posts: 14
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

Re: ENVOY - a utility for command and control with order delay

Post by musurca »

Just posted a small update to Envoy v1.11.

This version will primarily be useful to Musket & Pike players, adding a new preset for 17th-century combat as well as support for the coalition armies in the newly-released Thirty Years War title, The Renaissance, and Great Northern War. It also fixes coalition armies in Seven Years War.
Last edited by musurca on Tue Jan 02, 2024 4:55 pm, edited 1 time in total.
oz77
Posts: 88
Joined: Tue May 23, 2023 5:04 pm
Location: Malta

Re: ENVOY - a utility for command and control with order delay

Post by oz77 »

Downloaded the tool and read the tutorial file.

Do I understand correctly that I am not supposed to move my divisions starting from Turn 1 and further unless there is an order received? While at the brigade/battalion level its ok to move within the divisional frontage? I am not clear what I can and cannot do if are no orders.

Thanks and I appreciate the effort into this direction! Command delay is something that could bring the game into unprecedented level of realism.
homet
Posts: 6
Joined: Sat Jul 09, 2022 12:03 pm

Re: ENVOY - a utility for command and control with order delay

Post by homet »

The intent of Envoy is to add communication delay when new orders are generated by a superior. At the start of a game, all parts of an organization should have some type of order in place. It could be to move somewhere, attack a position, defend an objective or something else. If your organization is Army->Corp->Division (or maybe Army->Division) then the would have to be an order via Envoy from the superior to the division commander to change the divisions orders.
musurca
Posts: 14
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

Re: ENVOY - a utility for command and control with order delay

Post by musurca »

What @homet says is exactly right. In most cases, what you see at the start of a WDS scenario is some initial disposition of forces according to an overall plan that would have been already been discussed and distributed prior to the battle. However, being that “no plan survives contact with the enemy,” Envoy should be used to distribute new orders and information as the situation develops, simulating the resulting delay and friction that ensues when messages are passed via premodern means, and large organizations have to be accordingly stopped and redirected.

In a future version of Envoy I may include a space where you can jot down “standing orders” for units on Turn 1 so that you can more easily keep track of them.
Erzhog Karl
Posts: 121
Joined: Sat Jul 09, 2022 2:59 pm
Location: Ireland

Re: ENVOY - a utility for command and control with order delay

Post by Erzhog Karl »

musurca wrote: Sun Dec 03, 2023 10:40 am What @homet says is exactly right. In most cases, what you see at the start of a WDS scenario is some initial disposition of forces according to an overall plan that would have been already been discussed and distributed prior to the battle. However, being that “no plan survives contact with the enemy,” Envoy should be used to distribute new orders and information as the situation develops, simulating the resulting delay and friction that ensues when messages are passed via premodern means, and large organizations have to be accordingly stopped and redirected.

In a future version of Envoy I may include a space where you can jot down “standing orders” for units on Turn 1 so that you can more easily keep track of them.
That would be, to my simple mind, an excellent addition to Envoy and simplify the flow of orders from the outset.
Thorolfil
Posts: 3
Joined: Mon Dec 18, 2023 3:13 pm
Location: Germany

Re: ENVOY - a utility for command and control with order delay

Post by Thorolfil »

I have tried to use this program in my games, but I always get an "unhandeled exception" when I load the program and messages are available. It also forgets previous messages after a restart. I play Bayonets in H2H. I also tried it with two instances at the same time but that didn't help. Any ideas?
Information on calling up JIT debugging
instead of this dialog box can be found at the end of this message.

************** Exception text **************
System.NullReferenceException: The object reference was not set to an object instance.
for WDS_Dispatches.MainWindow.UpdateDispatchHistory(Int32 turn, List`1 turnDispatches)
for WDS_Dispatches.MainWindow.UpdateDispatchState()
for WDS_Dispatches.MainWindow.loadToolStripMenuItem_Click(Object sender, EventArgs e)
with System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
with System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
with System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
with System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
with System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
with System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
with System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
with System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
with System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
with System.Windows.Forms.Control.WndProc(Message& m)
with System.Windows.Forms.ScrollableControl.WndProc(Message& m)
with System.Windows.Forms.ToolStrip.WndProc(Message& m)
for System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
with System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
with System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded assemblies **************
mscorlib
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9181.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
Envoy
Assembly-Version: 1.1.1.0.
Win32-Version: 1.1.1.0.
CodeBase: file:///C:/Users/nicow/Downloads/Envoy_v1.11/Envoy%20v1.11/Envoy.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9181.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9206.0 built by: NET481REL1LAST_B.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Configuration
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Core
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9200.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Xml
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
Accessibility
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
Newtonsoft.Json
Assembly-Version: 9.0.0.0.
Win32-Version: 9.0.1.19813.
CodeBase: file:///C:/Users/nicow/Downloads/Envoy_v1.11/Envoy%20v1.11/Newtonsoft.Json.DLL.
----------------------------------------
System.Numerics
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll.
----------------------------------------
System.Runtime.Serialization
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll.
----------------------------------------
System.Xml.Linq
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9032.0 built by: NET481REL1.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll.
----------------------------------------
System.Data
Assembly-Version: 4.0.0.0.
Win32-Version: 4.8.9191.0 built by: NET481REL1LAST_C.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll.
----------------------------------------

************** JIT debugging **************
To activate JIT debugging (Just-In-Time), the following must be entered in the
configuration file of the application or computer
(machine.config), the jitDebugging value must be set in the system.windows.forms section.
The application must be compiled with debugging activated.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

If JIT debugging is activated, all unhandled exceptions are
exceptions are sent to the JIT debugger that is registered on the
computer and are not handled in this dialog box.
homet
Posts: 6
Joined: Sat Jul 09, 2022 12:03 pm

Re: ENVOY - a utility for command and control with order delay

Post by homet »

There may be a problem with Envoy when starting Envoy on a turn when a message/order is due to be received. Here are methods of play that I believe will get around that problem.

Single Player Against AI

1) Start the scenario and save the btl file
2) Start Envoy per the Envoy User Manual and/or the Envoy Mini-Tutorial
3) Send messages/orders with Envoy as you will
4) At the end of the player turn and prior to the start of the AI turn, save the btl file.
5) DO NOT close Envoy.
6) End the player turn and let the AI conduct the AI turn..
7) At the start of the next player turn, save the btl file. Any messages that will appear this turn, will now appear with the Envoy interface. Note that the Envoy messages are in their own separate window.
8) Repeat steps 3 - 7 as you will until you are ready to stop for a while
9) To stop, after saving the game file at the beginning of the player turn and looking for any Envoy messages, quit Envoy and then quit the game.

To restart the game, load the game normally. Start up Envoy normally and load the dispatch file. Jump into the step 3 - 7 cycle.


Multiplayer PBEM Play

Agree with your PBEM partner on some naming convention for sending the PBEM file back and forth. Some players use the same file name to send the PBEM file in either direction. Some players like to append information onto the PBEM game file.
If starting the PBEM game, name the PBEM file using the naming convention from step 1.
Also create a local PBEM game file that never changes. This will be the file used by Envoy. (e.g. PBEM_MyGame_Envoy)
If you are the 2nd player, you will receive the initial game file from your opponent. If need be, name the PBEM game file using the naming convention from step 1.
Also create a local PBEM game file that never changes. This will be the file used by Envoy. (e.g. PBEM_MyGame_Envoy)
Start Envoy per the Envoy User Manual and/or the Envoy Mini-Tutorial
Use the game file from 2a or 3a
Send messages/orders with Envoy as you will
Complete your PBEM turn, but do not finish the turn by clicking on the Next Turn button. Save the game to the local game file name.
It is often useful to save the game prior to the melee phase.
Save the game to the PBEM game file name that you will use to send the game file to your PBEM partner per step 1. Finish the turn by clicking on the Next Turn button the appropriate number of times to get the message saying the game file is ready to send.
Send the game file to your opponent.
After receiving the PBEM game file from your opponent, open the file and watch the replay. DO NOT SAVE THE GAME TO THE LOCAL GAME NAME from step 2a or 3a.
Open Envoy and load the Envoy dispatch file. Envoy will indicate the turn is from the previous turn since Envoy is reading the game based on your local PBEM game file name that you saved on the previous turn.
Save the game to your local PBEM game file name with Envoy already open. The act of saving the game to your local PBEM game file will automatically cause Envoy to update. Look for any messages received for the current turn. These appear in their own windows.
Repeat step 5 - 8 to send the PBEM file
Upon receiving a new PBEM file from your opponent, start at step 9.

This may seem complicated, but it is straight forward once you have gone through the process once.
homet
Posts: 6
Joined: Sat Jul 09, 2022 12:03 pm

Re: ENVOY - a utility for command and control with order delay

Post by homet »

Apologies. I was copying the steps from another document and didn't notices that the step number for the Multiplayer PBEM Play didn't come through. Here are the steps with step numbers.

Multiplayer PBEM Play

1) Agree with your PBEM partner on some naming convention for sending the PBEM file back and forth. Some players use the same file name to send the PBEM file in either direction. Some players like to append information onto the PBEM game file.
2) If starting the PBEM game, name the PBEM file using the naming convention from step 1.
a) Also create a local PBEM game file that never changes. This will be the file used by Envoy. (e.g. PBEM_MyGame_Envoy)
3) If you are the 2nd player, you will receive the initial game file from your opponent. If need be, name the PBEM game file using the naming convention from step 1.
a) Also create a local PBEM game file that never changes. This will be the file used by Envoy. (e.g. PBEM_MyGame_Envoy)
4) Start Envoy per the Envoy User Manual and/or the Envoy Mini-Tutorial. Use the game file from 2a or 3a
5) Send messages/orders with Envoy as you will
6) Complete your PBEM turn, but do not finish the turn by clicking on the Next Turn button. Save the game to the local game file name. It is often useful to save the game prior to the melee phase.
7) Save the game to the PBEM game file name that you will use to send the game file to your PBEM partner per step 1.
8) Finish the turn by clicking on the Next Turn button the appropriate number of times to get the message saying the game file is ready to send. Send the game file to your opponent.
9) After receiving the PBEM game file from your opponent, open the file and watch the replay. DO NOT SAVE THE GAME TO THE LOCAL GAME NAME from step 2a or 3a.
10) Open Envoy and load the Envoy dispatch file. Envoy will indicate the turn is from the previous turn since Envoy is reading the game based on your local PBEM game file name that you saved on the previous turn.
11) Save the game to your local PBEM game file name with Envoy already open. The act of saving the game to your local PBEM game file will automatically cause Envoy to update. Look for any messages received for the current turn. These appear in their own windows.
12) Repeat step 5 - 8 to send the PBEM file
13 Upon receiving a new PBEM file from your opponent, start at step 9.
Post Reply