Finally, I have got my head around how I’m going to implement the command system.
I’m going to have ‘command volumes’. Each character will have an array of command volumes. Not only will these volumes have a location, which covers move-to type commands, but they will have enum options to set when the player gets to that volume. Such as telling the character to crouch/go prone etc. Select a weapon or whatever. The character can then just check the options and then destroy the command volume. The behavior tree can then find the position of the next command volume and send the character there.
One other benefit is, even if I don’t want the player to go anywhere, but still have a command, such as select a weapon, it can just spawn it where it is, carry out the command and then move on to the next.
With this core part figured out, I’m actually going to do a 3rd iteration of the game. I want to change the player switching. I want a live spectator pawn setup. So the game is live and the player can issue commands in real time, but also able to slow or stop time in the game. All the while, allowing the player to posses the selected character and take over it’s AI.