V.I.P-Lounge: Missionsdesigners Point Of View by Rejenorst
1910 Beiträge -
Today i want to point out how much work and preliminary reflection are needed to do the right things, to create a challenging mission.
In this case how much preliminary research is needed to reach the goal.
In focus: The Mission "Harpoon Delta" Rejenorst
For all users who interested in this, the missiondesigner Rejenorst answers all my question about scripting, handling, testing and intention.
I asked Rejenorst for more backgroundinformation about the scripting and here it is:
Sorry about the delay in my response but I haven't signed/logged in recently and am still getting used to the new forum.
Thanks for taking the time to review the mission :D
I had to chuckle a bit at some of the responses. Difficulty in urban combat was definately my goal I'll try and address some of the issues that have been raised in the various posts as well as your question(s):
Just to clarify I am not using any FSM scripts. Everything is running through SQF scripts while conversations/radio scripts are kbtell scripts.
I noticed one of the posters thought that enemies where being spawned near the player. Enemies do not spawn in the mission area after the player lands at the beach. All enemies are spawned at missions start, however; some of the scripts I run check whether units are getting stuck and may on occassion setPos them to a new nearby position if they have been stuck for a while.
Garrisoned units are constantly on the move and will choose between moving inside the house they are in or moving closer towards the last known enemy position.
The script also checks a handful of random building positions for a possible line of sight to the nearest known enemy position, which hopefully results in better enemy building position selection/prioritization.
When none is found a random position is chosen. There are apprx 30 - 40 enemies within the city itself which is quite a lot but I wanted there to be constant action for testing purposes.
The Garrison script does make enemy units more aware of enemies because the normal AI has or had problems reacting to the player or other enemy units when looking through windows/house openings etc.
The way the script works is that garrisoned units will communicate an enemy's last known location, but if an enemy has seen you within the last x amount of seconds then all enemies will know exactly where you are.
This means that flanking and cover (like you mentioned) works best (I can alter this in the script as well and might make it a changable variable).
The way the script(s) work is that it allows me to pass orders via a global logic to a looped central script that executes all the relevant sqf scripts when they are needed via switches.
This means that one script runs constantly per faction and executes other scripts on a need-by basis. That single script also does multiple different loop checks on each squad and compiles information about the squads such as an intel array, whether squads are dead/fatigued/see enemies/ etc.
This system isn't perfect but I am currently expanding the types of orders/tasks that can be executed and can then easily stack orders that need to be executed in order by any particular squad without running large amounts of scripts.
Provided everything works well, all I need to do is choose the locations I want the order(s) to take place, spawn the units with a spawn script I created and then pass the orders into an order list array and save it to the global logic for that side. The scripts themselves handle the rest including spacing squads out (for ground units) when they are moving towards the same waypoint etc.
Additionally each order can include a string location for another script to execute if the order is completed/failed. This way Ican give the group new orders when they are needed and have them vary depending the outcome of the current order etc.
I should also mention that enemies will move from house to house to get to the last known enemy position. They do this in half distances until they are within 100 meters. Then they start to do a building crawl :D
The main purpose of the test was to test the script(s) functionality (specifically the main loop script [which handles the intel array and the garrison arrays and all sub script launches] and its subordinate garrison, artillery, boat landing scripts etc.) and whether or not the script could provide an extremely challenging urban combat environment WITHOUT actually spawning enemy units near the player.
The combination of AI units constantly moving towards you/where the enemy thinks you are and their communication between each other was hopefully enough to provide a significantly tense atmosphere and challenging gameplay.
Boat landing scripts that get executed from the main script were also tested as well as artillery order scripts and my own kbtell radio scripts where I can string along various messages.
I am currently working on another mission that will test various other new scripts and will hopefully improve on some of the already existing scripts.
Basically I will be building on what I have and the main script will be the backbone of most of my missions to come.
I am glad everyone found the mission a challenge even if its not everyone's cup of tea :D
Understandably; the ARMA3 armored suits are somewhat annoying ingame
The easiest way to deal with that is to remove the actual vests ingame on spawn.
I probably won't change that in the mission at the moment but another problem is that the raven vest which the player is wearing is likely less bullet resistant which gives the player less of an advantage.
I am guessing that BI decided to model them on future bullet proof vests. I didn't think it was possible until I saw this:
Also before I forget; the accuracy of enemy units is random is a large contributor to difficulty when enemy units spawn with a accuracy above 20%. For future missions I will keep in mind to lower difficulty.
I hope this statement answers all your questions?!
Big thanks to Rejenorst for taking the time to discuss the subject in detail.