Merlin - MP real time scenario editing & training system
Download: Multiple terrain/island (about 20) mission pack (no addons required, except when used on specific terrains or by choice of designer)
- Merlin v1.4 - Armaholic (.7z = 953 kb, 57mb uncompressed)
- Merlin v1.3 - ArmedAssault.info (.7z)
- Merlin v1.3 - ePrison.de (.7z)
- Arma 2 only: Merlin 2 - DevHeaven
- Menu: Objectives->Person
- Menu: Environment->IEDs
- Create Dialog - BluFor Infantry
- Create Dialog - OpFor Vehicle
- Create Dialog - Warfare Building
- Create Result - Shilka
- Create Person using 2D Building Positions
- Create Infantry Group in 2D
- Create Radio Tower in 3D
Code:Mission Pack: Merlin base training system on a selection of terrain/island addons. Game mode: SP, Coop, PvP (17v17=34 players) ArmA version: requires ArmA v1.14+ Addon's required: None. But each mission is island specific. Addons are dynamically supported via the editor functionality and runtime loading. Core styles: N/A. Empty sandbox mission with realtime 3D multiplayer multiperson editing. Terrains/Islands/towns: Afghan_Village, Avgani, FDF_Isle1, ic_Barbuda, intro (Rahmadi), map_3DEMap, Porto, Razani, Sakakah, Sara, SaraLite, Schmalfelden, Syr_Darain, Tatawin, Tolafarush, Uhao, Unsung Ngok Tavak, Unsung Kham Duc, VTE_AustralianAO, Watkins. Respawn: Base, mobile respawn vehicle, bunkers, revive. JIP: specifically supported Duration: N/A. Weather/Time: selectable via MP Setup Credits & thanks: BIS, 3rd party script developers (see readme file) Change log: (see readme file)
What is Merlin?
In a nutshell, Merlin is a mission sandbox which allows up to 2 nominated coordinators to simultaneously dynamically create and position objects and units along with objectives for both sides (teams) in real time (or from saved data) for PvP, Coop or SP.
This is a continual WIP. Do not consider it a finished product yet. But it has proven to work well enough for clan based training scenarios so far. Expect some updates.
It wasn't actually intended for public release, but some players have expressed interest and it also serves as a technical demo.
What are Merlin's benefits & what is it's purpose?
- Provides a suitable controllable training environment for clans
- It's primary feature is realtime MP multi-person scenario editing.
It is not in any way a replacement for: complex missions, story-driven missions, published missions, plus all the other training missions and 3D editors out there already.
- ability to save and load the mission at run-time to/from clipboard
- Allows you to create quick scenarios for many of the new islands,
- without requiring access to upload missions to a server
- without the need to clog up a server with single-use missions
- Provides the tested complex core system of game functionality without the need to know how to incorporate it into each of your missions. Things like: JIP, respawn systems, broadcasting, etc.
- Rapid editing. Rather than using low-level commands (like triggers and having to fill in all the required fields), it tries to provide a list of the most common uses and auto configures them for you. This has a downside of limiting your editing options, but will improve over time to cover 80+% of cases.
Some of Merlin's functionality:
- allows for 2 admin's to simultaneously set up the scenarios. Usually one BluFor and one OpFor player.
- ability to save/load mission using data from clipboard
- position objects and groups in real-time & in: map view, 2D & 3D.
- create AI groups with various patrol abilities & auto building positioning.
- create empty vehicles, fully crewed vehicles, plus several common vehicle groups.
- create a variety of common crates, buildings, structures & static objects for use with objectives.
- create objectives (via triggers) quickly based on common scenarios:
- Kill/escort/rescue VIP/Captive, Destroy/Retrieve vehicle/object, Clear/Control area
- VIP/Captive objectives also work with designated players.
- IED's, VBIED's (both AI & player controlled)
- Auto ladder creation in towns
- triggered environmental sound effects
- time, weather conditions
- Objectives dialog showing description and status of each objective.
- Civilian interaction for obtaining intel
- collateral damage - WIP
- supports JIP for most critical areas
- supports any mod/addon. Allows any object from any addon to be used via the Advanced Class Creation option.
- The Commander Mode dialog is still being developed, but already provides a good overview of the battlefield and provides group control.
- All of ICE/Devastation's abilities: respawning, base deployment, weapons dialog, HMD Heli HUD, cargo airlifting, cargo air drops, laser marker HUD, artillery HUD, team comm's, waypoint HUD, deployable assets, field dressings, etc.
- JIP is mostly working now. Handles: objectives, respawn markers, objects, actions, etc. Some actions & custom markers are not synchronised yet.
- SP/MP - fully supported.
Editing Instructions & Advice:
I cannot write a full manual for the functionality yet, since it's still in development and there are over 60 options to explain which would be a huge document.
You can perform editing in:
- SP - prefered for designing missions for later loading for MP,
- MP - before the mission starts,
- MP - during the mission you could dynamically add things
First login to enable editing rights.
To login, press T or select Options action to activate the popup menu,
then select "Admin Game"->"BluFor Admin" to login.
It is recommended that you also set yourself as captive during editing, which acts as a 'God-mode' to protect you from the opposition AI.
To enable this, select "Admin Game"->"Enable Captive Status for me" from menu.
Special keys, mouse clicks & commands:
Mouse options (from the map screen):
- Alt+LeftClick will teleport you to that position.
- Shift+LeftClick will open the Create Object dialog.
- LeftClick will open the main popup menu.
"Create" action menu:
Logging in will add a 'Create' action menu to open the Create Object dialog. This is the secondary method, when not using the map screen.
Screenshot: Menu: Environment->IEDs
The main popup menu contains some of the same create options as the Create Dialog, plus more advanced options like: Objectives, IED's, Environment, Advanced Classes, etc.
Saving/loading mission data:
Since ArmA has no built-in file access, saving and loading is achieved through the clipboard by copying or pasting 1 long line of array data. This clipboard data can then be saved to or copied from a file.
The macro data looks similar to the following example:
Camera Control Keys:Code:[["Create",[["BMP2"],"Regular","Search Area",-910,250,0],[2366.5,3537,0]], ["Create",[["TeamLeaderW","SoldierWAR","SoldierWAT","SoldierWB"],"Regular","THAG",-910,150,0],[2325.2,3053.5,0]], ["Create",[["Land_vysilac_FM2"],"Regular","Empty",-910,0,0],[2373.6,3288.9,0]], ["Object Objective",[WEST,"VEHICLE","NOT PRESENT","destroy","destroyed","object",2],[2241.33,3144.73,-316.971]]]
Code:V/Esc = exit camera mode. Q/Z = altitude. A/D = turn left/right. Shift = fast. Keypad = look up/down/left/right. +/- = zoom. Advanced - Tracking: F = Focus/track centre object/ground. L = Toggle crosshair. A/D = Rotate camera left/right around focused object/ground. Advanced - Relative object positioning: X/C = rotate object. Ctrl+Q/Z = relative altitude (3D only). Ctrl+W/S = relative distance.
Screenshot: Create Dialog - OpFor Vehicle
TO DO: Explain the purpose of some of the vague list entries (especially "Actions")
TO DO: Explain the different IED types possible & actions.
Types: hidden IED, visible object IED, mobile VBIED with detonate action, player IED with detonate, AI IED with radius, (WIP: Attacking civilian AI IED with radius).
Actions: disarm options (cut the correct colored wire), player suicide bomber/VBIED detonate action.
Code:Class Group: Types: Group: Composition: Image: Also shows the actual class type name. Action: The list will be different for different object types: vehicles, infantry, buildings Special Init: The list will be different for different object types: vehicles, infantry, buildings Radius: When applicable, the selected radius will be drawn on the map. Direction: Map: Shows the create position marker, selected building marker & text, radius marker, etc as applicable. Buttons: Create, Create 2D, Create 3D, Preview Obj, Patrol, Help
Screenshot: Menu: Objectives->Person
TODO: Explain 'secure hostage' process: 'Ask civy: seen hostages?', triangulate position, 'Secure hostage' action, joins group, 'Drag person', return to designated area.
- Escort VIP - (Bring VIP to safe location. Captive can be AI/player.)
- Kill VIP - (VIP could be moving. VIP can be AI/player.)
- Rescue Captive - (Bring captive back to safe location. Captive can be AI/player.)
- WIP - Capture enemy VIP - (Bring VIP back to safe location. Captive must be AI.)
- WIP - Recon/Survival mode - (Bring squad to safe location through enemy territory without any/all member being killed.)
- Destroy Building/Object
- WIP - Destroy Convoy - (before it reaches destination)
- Destroy Vehicle/Building/Object - (vehicle could be moving)
- Retrieve Object - (bring object back to safe location)
- Clear area - (100% clearance for up to 60 seconds)
- Sieze control of (small) area - (you must be dominant force (both infantry & vehicle strength wise) for up to 60 seconds.
Sample Usage: (Process of how to setup first trial scenario.)
TO DO: Provide sample scenario file to load in Sahrani. Provide procedure details.
- create units/objects
- set objectives
- done, play
- if needed, save mission
- reset mission
Updated v1.2: The "Create Object" dialog now includes all addon units properly classified by their original "vehicle class".
- First you need to activate any addon you want to use (Popup menu->File->Activate Addon...), otherwise a warning will still appear on each client for first use.
- Then create the object (using "Create Object" dialog).
Hidden Functionality: (things you may not realise without explanation)
- The bunker object also has a 'Deployment' action for spawn selection & 'Armaments (G)' action for weapons selection.
- In create dialog, when creating a person using action 'occupy position in this building' using 2D/3D will utilise snapping to the 'building positions' instead.
- The 2 default vehicles per side (usually Strykers/BRDM-2's or trucks) are also respawn points via the 'Deployment' action or respawn dialog.
- Selecting a crate in the 'Create Object' dialog will display the crate's contents in Composition list.
- Some others, which I cannot recall right now.
You may export the mission structure to a mission.sqm file.
What can export be used for?
- Creating small object arrangements (eg: a walled base and some buildings), then export this to MergeFolder\mission.sqm file, then open it in editor and resave, then merge the file into your main mission.
- Creating reusable PBO missions. After export, you will still need to finish off the mission in the editor. See below for limitations. Next version should produce a complete mission.
What does it export in mission.sqm?
It creates a data string which can be copied into a mission.sqm file, which can then be loaded by the Arma editor.
- class Groups (all units)
- unit init string (eg: patrol)
- class Waypoints (if chosen), but not sychronised links (that is still WIP)
- class Vehicles (empty vehicles & objects)
- class Markers
- class Sensors (triggers/objectives), plus basic init's (conditions & activation, etc)
What is missing in the exported mission.sqm? (These items are still WIP and will be added/improved in future version)
- sychronised links for waypoints & triggers
- all init options for units
- full sensor inits
- a sample mission project (in which you can simply overwrite the mission.sqm file with your exported file)
Unfortunately there's a limit to what can be exported since ArmA is lacking many basic script commands for waypoints and triggers.
Other Boring Information:
Background: System Implementation:
- The idea is inspired by: VBS2 RTE (Virtual Battle Space 2: Real Time Editor) & Virtual TrainingSpace 2
- The base of the system code is in the folder \Mission\Training so it's quite compact in it's implementation.
- The 60 or so functions (or macros) have been all placed in the initFunction.sqf script, rather than having 60 separate scripts, which has proved very beneficial for maintenance.
- The core of the additional functionality (eg: airlifting, respawn dialog, etc) is simply straight from the Devastation mission, which makes up the bulk of it.
- Some new/updated scripts which may interest some dev's: fn_getDescendentConfigNames.sqf, areaPatrol.sqf, IED system rewritten, new Broadcast\Actions JIP system, pos2grid.cpp world support, Debug Dialog now modified for 1.09+
- v1.0 - Tiger205 - requests hostile RACS version (that would make civy's hostile too then which is not wanted)
Known limitations & problems to fix:
There are hundreds of things which could be: changed, improved, fixed, removed, combined, simplified, etc but that will have to wait.
- In MP, when loading a large macro file (eg: 100 saved items), it can cause some clients to CTD.
This is remedied by simply rejoining. It seems to be caused by excessive data being networked usually when some players have slow/shaped connections (eg: 64k), but it's not necessarily that player being affected.
It might already be remedied in latest version with the removal of a publicVariable. If not, I could reduce the loading speed further.
- In MP, using 2D/3D positioning is now sending too much positioning data making it slow to update. Easy to fix later.
- Macro: Object->Set Pos on Map - should not be a new macro. Update 'create' macro position.
- Reset doesn't reset everything yet - mainly: sounds, instant dead body removal & VRS position reset.
- The 'Activate Addon' dialog lists addons based on their CfgPatches name, which is not always match the pbo file name. Not sure if this can be fixed.
- Minor: Creating an object from an addon without dynamically preloading it's addon may cause a warning message "Addon not loaded yet" as expected, but should still continue as normal.
- JIP Sync: The following are not synchronised yet or properly: Custom markers, loadAddons, IED actions, in-game time and weather changes (but MP start options are).
- Clean up SP - delete tracking markers if playing
- Force loading of macros in order rather than asynchronous processing. Potential out of sequence errors.
- JIP: When joining in a single person group and the base spawn location has moved, you will still spawn at the original editor position.
- Implement limited lives system (per player/group/team plus options for 'slow respawn' as 'light penalty' )
- Finish implementing collatoral damage system (tracking team/individual killing of civilians, unarmed people, captives and empty vehicles, resulting in player/team penalty or mission abort & failure)
- Several other required improvements, which I cannot recall right now. Most issues have a work-around.
- Fixed? - Cannot create unlevel structure on sloping ground yet, it's always upright (eg: bunker, fence, tent, etc should follow slope of ground)
- Utilise standard briefing note pad for objectives (if possible) rather than dialog.
- Other islands can be easily setup to utilise Merlin within 1 minute. Copy the mission. Rename the mission island extension. Edit mission.sqm and replace all 8 island addon references.
- Easier editing & selection of already placed items. 3D selection or distance sorted.
- Replace camera controls.
- Manual completion of 'clear area' by SL via command, rather than automatic trigger detection, with penalty for false assessment.
- Remove default 4 MRV's from both sides for all missions and somehow allow them to be dynamically created.
- Better marker drawing for pre-mission planning by entire team. Test Spon draw.
- Add more objectives:
- return team to base,
- all objectives complete,
- VIP killed during recovery,
- using action triggers objective (eg: Objective "Locate documents", Action "Take documents", objective becomes "Documents retrieved") (eg2: "Defuse missile")
- provide a count-down/time-limited trigger for timed objectives or missions
- Improve dialog for creating objects and settings it's properties. Disable fields when not required (eg: radius)
- Create new dialog for creating objectives and settings it's properties.
- Summary of forces dialog: idle infantry (towers), patrols, vehicles, plus average per 100sq m
- Limitations and restrictions:
- This is the hard part which is not really handled yet
- This applies mainly to: time limits, respawn limits, crates, weapons (especially: AT, AA, sniper, scopes), respawn limits, vehicle respawns, player respawns, MRV's, etc
- Stricter admin control. Limit to game admin and reduce messages.
- Templates for setting up bases.
- Templates for setting up common scenarios.
- Load a template for faster access to the units of your favourite mod
- Automated scenarios
- define 1 or more AO's (area of op), specify objective count and auto populate based on player numbers.
- Auto detect bases/towns/buildings.
- Random scenarios.
- New PvP game mode: (probably a long time away though)
- both teams design their side's base & all assets in non-overlapping regions before a mission, then
- at mission time, load both sides, validate against rules and begin mission.
- BIS, BIA for VBS2 RTE
- Elgarion (aka [CTR]Grimm) - For concept & inspiration from VTS2
- ArMaTec, Xeno, Falseprophet - Original airlift chopper scripts
- T_D - Vector functions
- KaRRiLLioN & norrin - Vehicle respawn script
- CarlGustaffa - WithinMarkerArea function
- General Barron - Get pitch/bank functions
- CoC CEX - pos2grid.cpp
- Sickboy - D_sys_network.sqf
- Squeeze - Artillery techniques
- Kronzky - UPS, ObjectBrowser class hierachy algorithm
- Spooner - SPON Recognise
- Kegety - Spectating Script
- Norrin - Revive script
- Shole - displayEventHandlers concept
- Tophe of Östgöta Ops - Random House Patrol Script
- UNN, The_Captain, Xeno, Wolffy & others for important solutions
- All terrain/island addon makers
- All other contributors for advice and feedback or anyone I missed