Jump to content
Sparker

[MP][COOP] Vindicta (Alpha)

Recommended Posts

[COOP] Vindicta (Alpha)

 

I'm very excited to show to Arma community the scenario we have been working on for more than a year. This all started several years ago inspired by the amazing Antistasi scenario made by @barbolani. The main goal was to make a large scale guerrilla-themed mission with main focus on simulation of all resources controlled by enemy side. For me personally it has been a great journey through topics such as AI, multiple programming languages, software architecture concepts, Arma addon creation, collaborative code development, and many others. Allright, enough for that, let's get to mission features.

 

Main features

  • Dynamic game world. At game start everything is relatively peaceful and not all outposts are occupied by enemy, players can travel around without opposition.
  • Persistence of all units at all garrisons and locations (outposts, bases, roadblocks, and so on).
  • As player activity rises in specific area, commander AI will react by deploying quick reaction forces (QRF) and patrols, occupying outposts, constructing roadblocks, and more.
  • Players start only with handguns and slowly build up their guerrilla movement by capturing equipment and by recruiting civilians.
  • Intel discovery: actions planned by the enemy commander AI can be discovered by players through intel items or radio interception. Players can use this advance knowledge to intercept supply convoys, patrols, and attacks.
  • Since all enemy logistics are calculated, guerrilla tactics are the most effective way to reduce enemy forces and to deplete enemy supplies. For instance, destroying enemy transports will force enemies to either counter-attack on foot or to send support from elsewhere, until transportation is resupplied from another outpost.
  • At the start of a new campaign no enemy locations are known to players. They can be discovered by talking to civilians or by scouting.
  • A multi-level AI system which controls AI behavior from commander level down to unit level.
  • Undercover functionality, which calculates "suspiciousness" of players based on their behavior, clothes, stance and visibility in vehicles.
  • Players can deploy as many camps, outposts, and roadblocks as they need if they have enough resources. The enemy can also capture those locations.
  • Campaign customization: you can choose factions to fight against, and the initial number of enemies.
  • The "unit virtualization system" coupled with AI of units: AI units despawn if they are too far away from enemies or players, but are still able to perform their actions "virtually". This also drastically reduces the chance of AI units getting stuck while attempting to reach the enemy.


Reviews:
Vindicta review by HazBo:

 

Links

The releases can be downloaded from Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=1964186045
Development branch can be downloaded from Workshop too: https://steamcommunity.com/sharedfiles/filedetails/?id=2154322285

Our GitHub page: https://github.com/Sparker95/Vindicta

 

Credits

Authors:
Sparker - OOP, core framework, AI.
billw - OOP enhancements, Commander AI, tools.
Sen - Tools, map design, addon development, several AI actions.
Marvis - Design of graphics and UI appearence, undercover system, map design.
Jeroen Not - Limited Arsenal, tools, civilian presence and civilian dialog UI.
Sebastian - factions, custom unit loadouts.


Special thanks:

Barbolani, the author of Antistasi, whose work hugely inspired us to develop this.
Stef from Antistasi community, for sharing lots of ideas for this and other projects.


Used 3rd party SQF components:

GPS by AmauryD - https://github.com/AmauryD/A3GPS

 

Huge thanks to these developers, without whom SQF development would have lasted several times longer:

Arma Debug Engine and Arma Script Profiler by Dedmen Miller (https://github.com/dedmen/), which has saved lots of time by providing proper SQF debug information in game.
SQF-VM by X39 (https://github.com/SQFvm/vm), which has let us simulate a large portion of our code without running Arma.


Big thanks to developers of these tools:

KP Liberation builder - https://github.com/KillahPotatoes/KP-Liberation/tree/master/_tools
gulp-armapbo by winseros - https://github.com/winseros/gulp-armapbo-plugin
Arma3 AddOn Project template by ACE team - https://github.com/KillahPotatoes/KP-Liberation/tree/master/_tools
SQDev by Krzmbrzl - https://github.com/Krzmbrzl/SQDev
SQFLint by SkaceKamen - https://github.com/SkaceKamen/sqflint
VSCode_SQF by Armitxes - https://github.com/Armitxes/VSCode_SQF

 

  • Like 14
  • Thanks 1

Share this post


Link to post
Share on other sites

Technical description

 

Have a good read if you are interested in AI or the technical side of the project!

 

- OOP -

Almost all code is written in my OOP own implementation for SQF, OOP-Light. I think this is the first mission of such class written entirely in OOP, correct me if I am wrong. In a few words, the OOP macros create namespaces for individual objects in missionNamespace, by concatenating object reference and variable name in form: objName_varName. It supports basic OOP features such as classes, methods, static members, inheritence. There are more advanced features, like member attributes accessible at run time, a lot of run-time assertions (wrong class names, null-objects, wrong class member names), which can be disabled to release build, public object creation.

 

Benefit of OOP has been huge. First of all it has allowed us write code by operating with data structures, which happens naturally a lot, whatever kind of component is being written. We were able to organize the code base properly. Class inheritence was hugely benefitial for AI OOP classes (more about them later) and for UI OOP classes. Finally, member variable attributes have let me do automated (de)serialization of objects for transmission across network and for storage of saved games. Although, even with these macros, it is still SQF with all its disadvantages. Looking back, I think I should have gone with Intercept or a similar thing, because IDE support of code base matters a lot for such a big project.

 

- AI -

Although this is definitely not a general purpose AI addon, and it doesn't aim to be one of those addons, half of all the code of the scenario is actually AI code. You could have seen that most features are AI-related, AI is the main feature of the mission.

 

- Low Levell AI: Goal-Oriented Action Planning (GOAP) -

Low level AI is composed of all AI levels except for the topmost commander level. There are several logistical unit classes in the mission: Unit(soldier, vehicle, drone, ammo box), Group(several units of any kind), Garrison(several groups and ungrouped vehicles). All of these objects run one of AI classes: AIUnit, AIGroup or AIGarrison, inherited from common AI_GOAP class.

 

I chose Goal-Oriented Action Planning AI architecture for the low level AI architecture. GOAP AI was first used in F.E.A.R. game in early 2000s. It is much better than traditional FSMs in a lot of ways. It is well described in lots of articles by Jeff Orkin, for instance: (Three States and a Plan: the AI of F.E.A.R., Jeff's page with lots of resources), you can also find F.E.A.R. AI source code in F.E.A.R. SDK. Also, since there is OOP in this project, it helped a lot to implement this architecture.

 

Now let me describe GOAP briefly.

 

Step 1. Goal selection
The game world seen by our AI agent (can be unit, group or garrison in our case) is formally described as a world state structure (an just an array of values). On each update a current goal is chosen (each goal is an OOP class), based on the world state and any other factors. We calculate relevance of all potential goals and choose the most relevant one. The goal describes the desired world state in world state terms.

 

Step 2. Action Planning
All actions are configured to modify one or more world state properties. Actions can be chained together by the planner. The planner uses A* algorithm to choose the proper action plan to achieve the goal world state from the current world state. Generally one would like to run A* to fine a route between nodes on 2D plane for instance. Here it's similar, but we can have 5D or 10D space or whatever we like, depending on the amount of world state properties, and actions connect the 'nodes'. The final generated action plan is also sorted by precedence of actions, to make the plan make more sense in some cases. The planner can also resolve parameters for actions, for instance if a 'move' action is specified to set the 'pos' world state property to desired value, the planner can pass the desired position to this parameter, derived from desired position from the goal.

 

Actions
Actions are actually mini-FSMs which have a few states, such as active, inactive, completed, failed. Action-class objects make agents do something, like moving, getting into vehicles.

 

Multi-level operation
The multi-level AI operation is achieved in the following manner. All agents have internal and external goals. Relevance of internal goals is calculated all the time, the amount of such goals includes mainly relax behaviors(low relevance, if there is nothing else to do), self-defence, escaping severe danger (grenades and such things, although not implemented in the mission right now). External goals behave same as internal goals, except that they are generally added by some higher-level entity: Commander (or player commander) sends goals to Garrisons, Garrisons send goals to Groups while performing some action, Groups send goals to Units.

 

Performance and optimizations
SQF performance leaves extremely low amount of computation, so original GOAP had to be optimized.
Most of goals match uniquely to some actions, for instance GoalUnitRepairVehicle directly matches to ActionUnitRepairVehicle. This is true for most of Unit and Group level goals/actions, therefore there is no need to run the costly A* planner for them(although still possible in the framework). For such cases the action is specified as 'predefined action' for a goal.
It is also possible to bypass the A* planner and plan the actions manually, it is sufficient for most cases, for instance: (1. if in vehicle, get out of vehicle; 2. move to destination).
In the end, planner usage is a fascinating concept, but I have only used it for management of convoys in Garrison AI, both because of low performance (we don't need to update garrisons as often as groups), and because of higher complexity of action plans by garrisons. It helps with making new action plans, but in the end the action plans can be also written manually with almost same amount of time spent as to tweaking costs of actions to achieve the action plan which makes sense.

 

Results
GOAP is a nice architecture for low-level AI, much better than FSM because new goals and actions can be added easily, avoiding the general clusterduck of 1000 links in FSM. This is mostly due to reevaluation of goal priority on each update, and choosing of the goal with highest priority. In FSM it typically results in links from all states to all states with higher priority.

 

- Commander AI -
Commander AI has been made by billw.
The Commander AI operates entirely above garrison level, sending goals to garrisons. The core component of the Commander AI is the WorldModel object, which represents the way the game world is perceived by commander. The WorldModel contains GarrisonModels, representing the Garrisons to be commanded, and LocationModels, representing Locations it is aware of.
The planning consists of several steps:
1. Synchronize the WorldModel with the real game world, by iterating all garrison and location models.
2. Make a copy of WorldModel - the Future WorldModel.
3. Project currently active actions onto the Future WorldModel. For instance, if we are currently running an action which captures Location B, then the location B is marked as captured in the future. This way we can prevent generating multiple 'capture' actions for the same location while the current one is active.
4. Generate actions. The planner generates all actions it considerers possible. For instance: if we have 10 garrisons, it can generate a 'reinforce' action from each of them to each of them. This results in hundreds of potential actions typically being generated.
5. For the number of actions we want the Commander to start:
  a. Calculate 'score' of all actions. Scoring depends on lots of variables: distance between source and destination, resources available, the types of the locations, known enemy activity, the Commanders active strategy, and so on. Importantly scoring is done using the Future WorldModel, so as to consider the results of all currently in progress actions.
  b. Take the top scoring action, activate it, and apply it to the FutureWorldModel. This allows scoring on the next iteration to take into account this new action. This is important in such cases as when two actions take resources from the same location. If the first action uses up the resources, then the second action must be re-scored to take this into account.
  c. If there are potential actions left, and we want to activate more, go back to a.

 

Actions
Each commander's action is actually an FSM (finite state machine), not BI's FSM, but an FSM made with our OOP. Each Commander Action consists of several ActionStateTransitions. Examples of such transitions can be: giving a 'move' order to garrison, splitting garrison in two, giving an 'attack' action to garrison, etc. Actions have an important feature - 'action variables', implemented as array with values. They are needed to let one transition provide data to another transition, for instance when we Split a garrison to give it a 'move order', the 'split garrison' transition must provide the new garrison ID to the 'move garrison' transition. This is analogous to the "blackboard" method used in other AI systems, such as behaviour trees.

 

Performance and results
Although FSMs have some limitations, the simplicity of the garrison actions makes them sufficient in this case. It can manage operation of an arbitrary amount of actions, and we have had a lot of fun observing bots planning and executing attacks on each other. The performance is also fine: it generally takes 0.5...2 minutes (despite the huge amount of potential actions) for one iteration of planning. This is acceptable for the Commander AI, as it deals only in strategic decisions that occur on timescales of minutes to hours.

 

- Why did I write all that? -
Well, as you can see that I like AI topics, and I hope someone reading this will get inspired to extend the existing set of goals and actions with new ones, or base his own AI mod on this. I am sure that the AI framework we've made is the biggest achievement of the whole project.

 

- Scheduling -
With the given execution options in SQF (PFH or spawn), it's quite challenging to manage such high amount of computation, multiple steps of which can take more than several milliseconds sometimes. I have decided to base whole mission framework (and AI too) on the SQF scheduler. Several 'threads' are spawned: Commander AI threads (one per each commander), Main thread with Garrison AI and all Garrison operations, Group AI thread, and several other auxiliary threads. AI processing is scheduled in slightly different manner, though. Typically the thread runs 'process' method of one of the assigned AI objects(the object updated longest time ago), then processes up to a certain amount of messages in the queue, then repeats it all again. Comms between threads are done as message queues. It all works good enough, but has a drawback that it is totally asynchronous with the game frame rate, meaning that at low frame rates we get horrible latensies from user input for instance. At 40+ FPS it runs good enough though. At dedicated server I also cheat a bit, and use startLoadingScreen (which increases scheduler limit from 3ms to 50ms) for a while if the queue of threads gets too big. Or alternatively I could have used this SQF command if it was implemented.

  • Like 8
  • Thanks 2

Share this post


Link to post
Share on other sites

Finding Vindicta in two version in Steam Workshop I take it is now available through that distribution channel also, and that the mod collection list with few dev-mods are not necessary anymore? I am hugely enthusiastic to get to test this mission! Thank you for the work. 🙂

Share this post


Link to post
Share on other sites

Hi!

You just need to download Vindicta (Alpha) from Workshop.

The collection you have found was for us developers to keep the right mod set organized.

Vindicta-Dev workshop item is not needed for public at all, probably I will hide it.

  • Like 1

Share this post


Link to post
Share on other sites

This mission is an outstanding technical achievement! 

 

So much so that I would rate it side by side with the likes of OLD MAN and Overthrow.

 

May I ask a few questions about the mission's inner workings:

 

1) How and how often do you save player progress on a MP session of Vindicta?

2) What is persistent/saved? Important variables? Player Items, location and status? Vehicles?

3) What are the end game objectives and how long is a single session/campaign meant to last?

Share this post


Link to post
Share on other sites

Thanks a lot @LSValmont!

Sure, questions are welcome!

Regarding your previous questions:

1) Admin saves manually through in-game UI, he can save as often as he wants to.

2) Saving is GTA-like, only main things are saved: garrison/location compositions, commander AI state, gathered intel, etc. Things like exact positions of all infantry units are not saved.

3) There is no strict end objective right now. Campaign can last for a week maybe, or more. Enemies bring reinforcements into airfields, so when all airfields are under control, the rest can be finished fairly easy since there won't be more enemies.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

I'm trying to play a scenario called vindicta. When I click on scenarios and go to the steam workshop it says I'm already subscribed so I unsub then resub. Am I doing something wrong or is this just a bug.

Share this post


Link to post
Share on other sites

Hi welcome to Bi Forums!

The "Scenario" is actually a campaign, you have to load it like a mod.

 

Follow my little tutorial:

  1. Go to your arma3 launcher, and let the launcher check for mods, vindicta should be or has been installed already.
  2. Load up the campaign mod including the required mods which are ace and cba_a3
  3. Start the game with the mods, and once on the main menu of the game, then go to Singleplayer and then campaigns.

When you subscribe to scenarios on the workshop look at the top right of the mission's page under the picture to see what it is,

whether its a Singleplayer, multiplayer, coop, or a mod.

    For Vindicta this is what it says:

 

Data Type: Mod

Mod Type: Campaign

Scenario Gameplay: Coop, Persistent

Scenario Type: Infantry

 

    Since its a Coop, Persistent type mission, this means you will need to go to multiplayer, then host, fill in server info, and click on the Altis map on the left,

and then the mission should be on the right.

    I've done all this and the mission doesn't show up for me in the list, and thats where its supposed to be, i would go to the campaign page here

https://steamcommunity.com/sharedfiles/filedetails/?id=1964186045

and then scroll to the bottom of the page where it says discord, join their discord and ask why the mission dont show up.

  • Like 3

Share this post


Link to post
Share on other sites

My Quick First Impression review on Vindicta Alpha as of 1/17/19 (Still quite long!):

 

What is Vindicta:

- An Open world, MP COOP compatible, full scale guerrilla warfare scenario/mission redone from the ground up to overcome most of the flaws of its predecessors while providing an increased sense of immersion for its players.

- An important scripting/coding achievement that should be a reference for any open world MP mission that has performance and functionality in mind.

- A mission that in spite of its complexity does not require a PHD in computer sciences or SQL Database expert certificate to be able to host and enjoy with friends!

- Top notch Devs with lots of love for the Arma 3 community and experience on their backs, each standing out on its own department which helps creating and maintaining a healthy and certainly enviable synergy and teamwork.

 

Vindicta's Strong points:

 

1- Very, very, VERY optimization focused guerrilla type scenario with minimal performance impact (relative to its massive scope). I get 55 FPS on Altis Vindicta at all times while I get 60 FPS on an empty Eden Editor Altis.

2- Incredibly Slick, clean, minimalist yet functional UI that expands even to the map layout and the missions "u" menu. You will fall in love with the ON SCREEN top "status" bar and ask why wasn't something like this in vanilla Arma 3 all along.

3- A working Multiplayer compatible Save System that is surprisingly simple to use  and that does not require middling with SQL Databases, additional mods or any other external annoyance and that also comes with its own fully functional integrated UI that blends perfectly with the mission's own UI. (This is a much requested feature that should have also been part of Vanilla Arma 3 since a long time ago).

4- An attention to detail that goes beyond even what BI does on most official missions and only equal to those of OLD MAN but MULTIPLAYER COMPATIBLE!, something that even BI was afraid/hesitant to do because of how difficult it is.

5- Everything behaves realistically, from the civilians who share intel but are afraid to do so near authorities, who run from danger realistically and have their own conversation system to the enemies who patrol in realistic manner, near important and strategic locations, interact and react to players in believable ways etc. (All this interaction happens in real time and not triggered by player actions, so how the dev team managed to check so many things while maintaining stable performance is an amazing achievement on its own right)

6- The undercover/detection system is probably the best I've ever seen, but not only for Arma 3 but any other game out there (Yes it is THAT good).

7- The game world is filled with parked cars, walking civilians, enemy patrols, important and discoverable locations that give players a sense of progression and the motivation to explore!

8- Vindicta has a ton more replayablity potential than lets say OLD MAN because it is so dynamic while still delivering a cinematic and believable world and experience. The missions are decided by the players based on their resources, goals and possibilities rather than the forced and linear missions that OLD MAN provides.

 

I also want to stress out the balance that the Vindicta team has managed to achieve in term of scenario assets because the world never feels TOO cluttered yet never EMPTY as well. Altis has exactly the RIGHT amount of objects and units required to make the players immerse on the campaign and the stories that playing in COOP alone creates!

 

Vindicta's Weak points (mostly subjective and related to it being still in ALPHA stage so not everything is implemented/tweaked yet):

 

1- An incredibly slow start with not so much to do apparently. There should be a better explanation on what to do first and how to do it. (This is to be expected from an Alpha and the UI to expand this is in place so it should be fairly easy for the Devs to add more content to it to guide players better).

2- There is a lack of customization options for the Campaign but that is expected to improve a lot as the mission leaves its ALPHA state.

3- The difficulty seems off sometimes, but that is all due to the ALPHA state of the mission and there should be lots of tweaking in this regard.

4- Scenario is not geared toward playing alone in any way so bring your friends with you or wait for a toned down scenario.

5- While polishing and perfecting the GUERRILLA WARFARE Style campaign that fits Arma 3 so well I can't help it to feel that Vindicta requires a little bit more of creativity and uniqueness to it. Doing what others have done in the past but better is a PLUS but adding something different and daring is another. I believe that Vindicta should explore with more unique elements like having players on other sides competing to take the island and having factions be truly unique and asymmetric.

 

On improving point number 5 I wish to make some suggestions (just as examples on how you could make the mission more unique):

 

Spoiler

 

AGAIN, ALL THAT IS COMING UP ARE JUST EXAMPLES... Devs should aim towards their goals whatever that those are.

 

- Have for example players be able to choose between 3 sides (instead of the good old proven and tested, done 1000 times before RESISTANCE side).

- Each side has a player controlled faction and an AI controlled faction that supports the player faction.

Example:

SIDE:                                BLUFOR                      INDEPENDENT              OPFOR                 CIVILIAN                    RENEGADE

PLAYER FACTION:         RESISTANCE             PMC                                WARLORDS         NONE                          NONE

AI FACTION:                   ARMED CIVILIANS    MERCENARIES              BANDITS             CIVILIAN (INTEL)      MILITARY, POLICE AND RENEGADES

 

- Players Choose between joining the RESISTANCE, PMC or WARLORDS factions.

- CIVILIANS are neutral and friendly to all sides/factions and spawn on all towns.

- MILITARY, POLICE and RENEGADES are ENEMY to all sides/factions at all times.

- At the start all towns are divided equally among factions. (But grouped together so it is realistic and defendable).

- ALL FACTIONS Start neutral towards each other (Except for the RENEGADE FACTIONS) meaning that a PMC player can enter a RESISTANCE owned town/location and not be flagged as HOSTILE.

- Player controlled territories spawn patrols based on their AI ally factions, so for example RESISTANCE OWNED towns spawn ARMED CIVILIAN Patrols, PMC owned towns spawn MERCENARY Patrols and so on.

- As players decide to take other faction's locations they must remove all the garrison there and by doing so diminishing the side relations.

Example: A WARLORDS Faction takes a neighboring PMC Owned town by killing all the Mercenaries guarding it. Each kill worsening their relations.

- Players can improve relations by doing missions for the other factions, for civilians or by attacking their enemy factions including the always ENEMY Military and Renegade factions.

So for example if the WARLORD faction that took the PMC town was -100 relations with the PCM and then takes a MILITARY OWNED FACILITY they gain +100 relations with PMC again.

- If Players take too many hostile actions towards another SIDE without compensating then the AI Faction of that SIDE will begin shooting on sight.

- The always ENEMY factions such as RENEGADES spawn at random camps and locations and create immersive firefights at regular intervals while MILITARY units spawn on MILITARY LOCATIONS such as AIRPORTS and BASES and are very hard to take out (just like they already work on Vindicta Alpha).

 

Additionally, each FACTION could have access to unique mechanics such as:

- RESISTANCE Being able to turn CIVILIANS into ARMED CIVILIANS by spending resources on them, fast travel to owned towns.

- WARLORDS can trade on Badit Camps for some exotic weapons and extra resources, fast travel to Bandit Camps.

- PMC Gets extra money/resources from doing missions/ Starting neutral towards the MILITARY FACTION etc.

 

Changing SIDE/FACTION relations and unique mechanics for each faction will create a unique experience. Players will want to play one playtrough as PMC and the other as WARLORDS because of the differences in gameplay, perks, equipment etc. Some players will play on opposing factions and the campaign will become much more challenging, dynamic and fun. 

 

 

All in all, even in Alpha, Vindicta is already a reference and ode to great mission/scenario making that sets the stage and framework for the amazing experiences that are yet to come for ARMA 3 players.

 

If I was BI I would hire you guys to bring MP to OLD MAN and really crank up those APEX sales.

 

We all know that Arma 3's Single Player scene is already quite crowded while we are currently LACKING in terms of great COOP experiences that according to many players is where ARMA 3 truly shines!

 

PS: Just so BI can measure how much more popular COOP is, on Jack Arden's YB channel the OLD MAN campaign videos have an average of 300 views while the single video on Vindicta ALPHA has over 2500 views!

 

A solid 8/10 for me with the potential for 10/10 EASILY! As all the required elements are there already. 

 

  • Like 5
  • Thanks 2

Share this post


Link to post
Share on other sites
19 minutes ago, LSValmont said:

My Quick First Impression review on Vindicta Alpha as of 1/17/19 (Still quite long!):

 

What is Vindicta:

- An Open world, MP COOP compatible, full scale guerrilla warfare scenario/mission redone from the ground up to overcome most of the flaws of its predecessors while providing an increased sense of immersion for its players.

- An important scripting/coding achievement that should be a reference for any open world MP mission that has performance and functionality in mind.

- A mission that in spite of its complexity does not require a PHD in computer sciences or SQL Database expert certificate to be able to host and enjoy with friends!

- Top notch Devs with lots of love for the Arma 3 community and experience on their backs, each standing out on its own department which helps creating and maintaining an healthy and certainly enviable synergy and teamwork.

 

Vindicta's Strong points:

 

1- Very, very, VERY optimization focused guerrilla type scenario with minimal performance impact (relative to its massive scope). I get 55 FPS on Altis Vindicta at all times while I get 60 FPS on an empty Eden Editor Altis.

2- Incredibly Slick, clean, minimalist yet functional UI that expands even to the map layout and the missions "u" menu. You will fall in love with the ON SCREEN top "status" bar and ask why wasn't something like this in vanilla Arma 3 all along.

3- A working Multiplayer compatible Save System that is surprisingly simple to use  and that does not require middling with SQL Databases, additional mods or any other external annoyance and that also comes with its own fully functional integrated UI that blends perfectly with the mission's own UI. (This is a much requested feature that should have also been part of Vanilla Arma 3 since a long time ago).

4- An attention to detail that goes beyond even what BI does on most official missions and only equal to those of OLD MAN but MULTIPLAYER COMPATIBLE!, something that even BI was afraid/hesitant to do because of how difficult it is.

5- Everything behaves realistically, from the civilians who share intel but are afraid to do so near authorities, who run from danger realistically and have their own conversation system to the enemies who patrol in realistic manner, near important and strategic locations, interact and react to players in believable ways etc. (All this interaction happens in real time and not triggered by player actions, so how the dev team managed to check so many things while maintaining stable performance is an amazing achievement on its own right)

6- The undercover/detection system is probably the best I've ever seen, but not only for Arma 3 but any other game out there (Yes it is THAT good).

7- The game world is filled with parked cars, walking civilians, enemy patrols, important and discoverable locations that give players a sense of progression and the motivation to explore!

8- Vindicta has a ton more replayablity potential than lets say OLD MAN because it is so dynamic while still delivering a cinematic and believable world and experience. The missions are decided by the players based on their resources, goals and possibilities rather than the forced and linear missions that OLD MAN provides.

 

I also want to stress out the balance that the Vindicta team has managed to achieve in term of scenario assets because the world never feels TOO cluttered yet never EMPTY as well. Altis has exactly the RIGHT amount of objects and units required to make the players immerse on the campaign and the stories that playing in COOP alone creates!

 

Vindicta's Weak points (mostly subjective and related to it being still in ALPHA stage so not everything is implemented/tweaked yet):

 

1- An incredibly slow start with not so much to do apparently. There should be a better explanation on what to do first and how to do it. (This is to be expected from an Alpha and the UI to expand this is in place so it should be fairly easy for the Devs to add more content to it to guide players better).

2- There is a lack of customization options for the Campaign but that is expected to improve a lot as the mission leaves its ALPHA state.

3- The difficulty seems off sometimes, but that is all due to the ALPHA state of the mission and there should be lots of tweaking in this regard.

4- Scenario is not geared toward playing alone in any way so bring your friends with you or wait for a toned down scenario.

5- While polishing and perfecting the GUERRILLA WARFARE Style campaign that fits Arma 3 so well I can't help it to feel that Vindicta requires a little bit more of creativity and uniqueness to it. Doing what others have done in the past but better is a PLUS but adding something different and daring is another. I believe that Vindicta should explore with more unique elements like having players on other sides competing to take the island and having factions be truly unique and asymmetric.

 

On improving point number 5 I wish to make some suggestions (just as examples on how you could make the mission more unique):

 

  Reveal hidden contents

 

AGAIN, ALL THAT IS COMING UP ARE JUST EXAMPLES... Devs should aim towards their goals whatever that those are.

 

- Have for example players be able to choose between 3 sides (instead of the good old proven and tested, done 1000 times before RESISTANCE side).

- Each side has a player controlled faction and an AI controlled faction that supports the player faction.

Example:

SIDE:                                BLUFOR                      INDEPENDENT              OPFOR                 CIVILIAN                    RENEGADE

PLAYER FACTION:         RESISTANCE             PMC                                WARLORDS         NONE                          NONE

AI FACTION:                   ARMED CIVILIANS    MERCENARIES              BANDITS             CIVILIAN (INTEL)      MILITARY, POLICE AND RENEGADES

 

- Players Choose between joining the RESISTANCE, PMC or WARLORDS factions.

- CIVILIANS are neutral and friendly to all sides/factions and spawn on all towns.

- MILITARY, POLICE and RENEGADES are ENEMY to all sides/factions at all times.

- At the start all towns are divided equally among factions. (But grouped together so it is realistic and defendable).

- ALL FACTIONS Start neutral towards each other (Except for the RENEGADE FACTIONS) meaning that a PMC player can enter a RESISTANCE owned town/location and not be flagged as HOSTILE.

- Player controlled territories spawn patrols based on their AI ally factions, so for example RESISTANCE OWNED towns spawn ARMED CIVILIAN Patrols, PMC owned towns spawn MERCENARY Patrols and so on.

- As players decide to take other faction's locations they must remove all the garrison there and by doing so diminishing the side relations.

Example: A WARLORDS Faction takes a neighboring PMC Owned town by killing all the Mercenaries guarding it. Each kill worsening their relations.

- Players can improve relations by doing missions for the other factions, for civilians or by attacking their enemy factions including the always ENEMY Military and Renegade factions.

So for example if the WARLORD faction that took the PMC town was -100 relations with the PCM and then takes a MILITARY OWNED FACILITY they gain +100 relations with PMC again.

- If Players take too many hostile actions towards another SIDE without compensating then the AI Faction of that SIDE will begin shooting on sight.

- The always ENEMY factions such as RENEGADES spawn at random camps and locations and create immersive firefights at regular intervals while MILITARY units spawn on MILITARY LOCATIONS such as AIRPORTS and BASES and are very hard to take out (just like they already work on Vindicta Alpha).

 

Additionally, each FACTION could have access to unique mechanics such as:

- RESISTANCE Being able to turn CIVILIANS into ARMED CIVILIANS by spending resources on them, fast travel to owned towns.

- WARLORDS can trade on Badit Camps for some exotic weapons and extra resources, fast travel to Bandit Camps.

- PMC Gets extra money/resources from doing missions/ Starting neutral towards the MILITARY FACTION etc.

 

Changing SIDE/FACTION relations and unique mechanics for each faction will create a unique experience. Players will want to play one playtrough as PMC and the other as WARLORDS because of the differences in gameplay, perks, equipment etc. Some players will play on opposing factions and the campaign will become much more challenging, dynamic and fun. 

 

 

All in all, even in Alpha, Vindicta is already a reference and ode to great mission/scenario making that sets the stage and framework for the amazing experiences that are yet to come for ARMA 3 players.

 

If I was BI I would hire you guys to bring MP to OLD MAN and really crank up those APEX sales.

 

We all know that Arma 3's Single Player scene is already quite crowded while we are currently LACKING in terms of great COOP experiences that according to many players is where ARMA 3 truly shines!

 

A solid 8/10 for me with the potential for 10/10 EASILY! As all the required elements are there already. 

 

Nice and extensive review man!

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

@LSValmontThanks for such a precise review! Very good points, enjoyed reading a lot. Very nice to see such good reviews!

  • Thanks 1

Share this post


Link to post
Share on other sites
29 minutes ago, Sparker said:

@LSValmontThanks for such a precise review! Very good points, enjoyed reading a lot. Very nice to see such good reviews!

 

And I... and my whole family really, enjoyed playing this masterpiece of a mission of yours!

 

To be honest I am sort of a hobby mission maker myself and I had envisioned doing something like Vindicta many times and even getting quite further but I was lacking a team and the knowledge to bring the project to release.

 

Luckily you were doing all that and so much more.

 

Now I am back at work, inspired by yours and to release a mission that could give you some neat ideas perhaps!

 

The mission will be called "UnIdentified" and tasks a limited pool of players to choose a faction and compete to finish their main goals before the players on the other factions. But the premise here are relatable characters crucial to your success but that die permanently if you are careless and you loose their perks on your Squad.

 

It is also open world and another premise of the mission is that there are many ways to win a campaign and campaigns are not too long, some lasting an hour even but most should last several hours under competitive conditions.

 

Once I release the Alpha maybe you could help me implement a save system. 😃

  • Like 1

Share this post


Link to post
Share on other sites

@LSValmont That's a cool idea and I wish you good luck with implementing it!


If it lasts one hour, probably save system is not needed that much. Our saving system is tied with the code a lot, because of the OOP framework we use. We have everything written in it, therefore we can save the variables in a hugely automated way.

Maybe you could benefit from OOP as well, I have noticed huge improvements in code quality after I switched to it.

Share this post


Link to post
Share on other sites

Looks truly impressive from the design and coding approach - much kudos to you and your team!

Gameplay wise I will check it once the WW2 factions are available.

 

Overall a guide on custom factions, and probably even more so to support more terrains would be a huge boon.

 

> you can't pause it

Did you consider mass enableSimulation false and to put the scripts into a wait phase?

I've done similar in my game mode, and also supporting "persistent" server setting, so people can leave and rejoin later (without the session to end if server gets empty).

 

Now in terms of presentation it would be very beneficial to have some more images:

Especially some strategic level, the custom menus/GUI, custom features, custom bases/compositions, or some debug layer if you have that.

In addition some gameplay scenes, or "lets play" or tutorial like recording (by someone else maybe) would also help a great deal.

 

 

Personally most interested in the AI system, yet as you are busy as is, I will get back to you later. 🙂

  • Like 1

Share this post


Link to post
Share on other sites

Hi Kju! Thanks a lot!

 

> you can't pause it
It totally slipped out of my memory where I said that, I am not sure what you are talking about. Could you quote me better on that? 😄

 

Yeah I am generally bad with presentations, hope to make some more good screenshots and tutorial, guides, etc, at some point. Currently need to fix the most game breaking things.

 

AI questions are OK, that's what interests me most personally as well, let's discuss that when you want, preferably here.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Sparker said:

Hi Kju! Thanks a lot!

 

> you can't pause it
It totally slipped out of my memory where I said that, I am not sure what you are talking about. Could you quote me better on that? 😄

 

Yeah I am generally bad with presentations, hope to make some more good screenshots and tutorial, guides, etc, at some point. Currently need to fix the most game breaking things.

 

AI questions are OK, that's what interests me most personally as well, let's discuss that when you want, preferably here.

 

I have some questions 😃

 

1) Do each spawned Civilian runs a loop to check for nearby players or is it a single server loop that checks proximity of all active Civilians versus all players at intervals? (I am impressed by how the civilian system is so performance friendly).

2) If 10 different players are in 10 different towns each town spawning 5 Civilians that would mean that there are 50 civilians active on the server not counting Enemy units. Do you limit/scale that somehow?

3) Do Enemy patrols use waypoints, script commands such as "moveTo" or FSM for their patrol routines?

4) Besides the Medical System and the interaction menu, is ACE 3 really needed for anything internal such as the UI and/or the mission uses ACE 3 functions? (Asking in case the community would request a Vanilla Version).

5) Besides multimedia files, what else do you need/use the PBO for? (Again evaluating a completely modless version of the mission).

Share this post


Link to post
Share on other sites

> I am not sure what you are talking about

it is from Steam comments, and someone requesting a SP version to halt the game or speed up the walking (due to his irregular schedule)

Share this post


Link to post
Share on other sites

@LSValmont
1) Civilians have a simple behaviour FSM running on them. I check on client when player points a gun at them or interracts with them, then call some code remotely on the server. The FSM reads these values and adjusts civilian behaviors. Its very basic, they can either walk, run away in panic, talk or be scared.

2) No we don't (right now).

3) How AIs work, it's a very complicated system described in my 2nd post here. Maybe you could refine your question?

4) Right now it's not needed. But in the future friendly and enemy bots will be able to carry their cargo boxes around, and static guns, and ACE has a nice cargo loading system which is generic for all vehicles. So, seeing the problem ahead (I don't want to invent my own cargo loading, and most players I know play with ACE anyway), I have made ACE a requirement, as well as sorted out some issues with it ahead of time.

5) PBO is needed to add:

 1. Location modules for the editor to set up maps for the mission (place outposts, bases, set up their border).

 2. Inventory items (build resources, tablets and intel items).

 3. Markers for the map UI (the markers you can click on the map).

 4. Danger.fsm for civilians

 All of the above can only be added by addon.

 Is the need for an addon such a big issue? Right now joining servers and loading addons is easy as ever with the launcher. People load lots of addons for all sorts of features, so why not load one more for a feature rich mission? On the other hand, having an addon gives many more possibilities for mission creator.

 

@.kjuOh I get it now! I have added SP capability now. Main problem was the BI's respawn screen which does not work in SP, and does not look nice with our mission. Now in the recent version there is a new respawn screen which works in SP as well.

  • Thanks 1

Share this post


Link to post
Share on other sites
30 minutes ago, Sparker said:

@LSValmont
1) Civilians have a simple behaviour FSM running on them. I check on client when player points a gun at them or interracts with them, then call some code remotely on the server. The FSM reads these values and adjusts civilian behaviors. Its very basic, they can either walk, run away in panic, talk or be scared.

2) No we don't (right now).

3) How AIs work, it's a very complicated system described in my 2nd post here. Maybe you could refine your question?

4) Right now it's not needed. But in the future friendly and enemy bots will be able to carry their cargo boxes around, and static guns, and ACE has a nice cargo loading system which is generic for all vehicles. So, seeing the problem ahead (I don't want to invent my own cargo loading, and most players I know play with ACE anyway), I have made ACE a requirement, as well as sorted out some issues with it ahead of time.

5) PBO is needed to add:

 1. Location modules for the editor to set up maps for the mission (place outposts, bases, set up their border).

 2. Inventory items (build resources, tablets and intel items).

 3. Markers for the map UI (the markers you can click on the map).

 4. Danger.fsm for civilians

 All of the above can only be added by addon.

 Is the need for an addon such a big issue? Right now joining servers and loading addons is easy as ever with the launcher. People load lots of addons for all sorts of features, so why not load one more for a feature rich mission? On the other hand, having an addon gives many more possibilities for mission creator.

 

@.kjuOh I get it now! I have added SP capability now. Main problem was the BI's respawn screen which does not work in SP, and does not look nice with our mission. Now in the recent version there is a new respawn screen which works in SP as well.

 

Thank you! Super clear, nothing to add really!

 

Not really an issue with having such small mods required! (It is just me being stubborn and trying to do my missions PBO free but of course limiting myself because of that).

Share this post


Link to post
Share on other sites
Quote

I've done all this and the mission doesn't show up for me in the list, and thats where its supposed to be

Are you saying it doesn't show up for you?

Currently it can be found in the list of MP missions, but not in the 'orange' list, but in the white list:
unknown.png

Also players asked to be able to play it in SP, so it can be found in the main arma menu -> singleplayer -> scenarios as well:
unknown.png

 

It is not listed in Steam subscribed content. Lots of confusion comes from the fact that it is technically a mod which is adding scenarios. Just like most of BI's content. I've made it to avoid uploading 5 missions to workshop when we have 5 map ports.

  • Like 1

Share this post


Link to post
Share on other sites

this campaign surely seems awesome, maybe better than the Old Man.

 

could u please upload the files on Google Drives or other file storage sites?

Share this post


Link to post
Share on other sites

> this campaign surely seems awesome
Thanks!

> maybe better than the Old Man.
It's wrong to compare them, the Old Man is very rich in story, while our mission is rich with dynamic things.

> could u please upload the files on Google Drives or other file storage sites?
Hmm but why? You can get everything from Workshop, that's how we release it ATM. At some point we will have it auto-pushed to Github release too.

  • Like 1

Share this post


Link to post
Share on other sites

 

So I'd have to disagree with the below...

 

On 1/18/2020 at 9:04 PM, LSValmont said:

1- An incredibly slow start with not so much to do apparently. There should be a better explanation on what to do first and how to do it. (This is to be expected from an Alpha and the UI to expand this is in place so it should be fairly easy for the Devs to add more content to it to guide players better).



@Sparker Livonia seems not to spawn any police stations for us?

  • Like 1
  • Haha 2

Share this post


Link to post
Share on other sites

Every playthrough is different, sometimes you spawn next to police, sometimes you have to talk to civilians to find police and then drive to them.

Livonia map is not finished yet, and very few towns have the police stations unfortunately. Talk to locals to learn where the police stations are.

Share this post


Link to post
Share on other sites
12 hours ago, Sparker said:

Livonia map is not finished yet, and very few towns have the police stations unfortunately. Talk to locals to learn where the police stations are.

 

Yeah we tried that, we covered about 1/3 of Livonia without luck 😞

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×