zooloo75 834 Posted June 8, 2014 (edited) Firefight Improvement System 2Firefight Improvement System 2 by Gavin N. Alvesteffer is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.RequirementsCommunity Based AddonsArmA2NET (Will be included with FFIS2's files)DownloadTBA - (Waiting for addon submissions to be enabled on the MANW site) News June 14th, 2014 I am changing the goal of the mod, going for a realistic approach utilizing actual military tactics that the AI will abide by. (http://en.wikipedia.org/wiki/List_of_military_tactics) An explanation of FFIS2 After many months since my initial release of the Firefight Improvement System and an unnecessarily long break from ArmA (lots of college stuff :P), I've decided to not only pick up the mod, but do a complete remake of it with new goals. The mod will be like no other AI mod; the AI will persistently improve every time a mission has started. How does it work? Simple! (not really): throughout a mission, various data is recorded, such as unit deaths, spotting info, engagement info, etc. This data is saved locally and is then used in subsequent missions, while continuing the recording process. This results in an ever-improving AI. AI will behave as though they had been trained for combat in their environment. They will be more alert, "think" for themselves, and ultimately become very competent fighters. A hypothetical scenario of this mod in use: A group of Blufor AI vs a group of Opfor AI in a town. The Blufor AI is walking down a road in-town and is ambushed by the Opfor. The Opfor take their enemy by surprise and deal massive casualties. The mission is a success for the Opfor, but what about Blufor? Typically the Blufor team would meet this same fate every time this scenario is executed, but what if it were possible to "train" them? Surely these troops have gone through rigorous training to avoid situations like this. During this first round, the Blufor AI was eliminated and their data was recorded for use in future scenarios. We run this same scenario again, and using the previously recorded data, the Blufor group now has a chance. Something doesn't seem right. It's quiet, a bit too quiet... The squad leader leads the patrol and senses that they might be getting ambushed. The SL advises his group to be aware of their surroundings, and keep watch on a suspected direction of attack. Opfor is moving in; their squad leader takes the final step into the Blufor's field of view and hears the crack of bullets in flight around him. His men are pinned down and are sustaining heavy casualties. Blufor manages to eliminate the Opfor as well as counter their ambush. During this second round, the Opfor's ambush was countered, their forces met casualties. What have the Opfor learned? They won't be so eager to waltz right into the ambush; perhaps pursuing with a bit more caution next time. This process repeats endlessly and these scenarios are recorded and used not only for their own scenario, but for any scenario that takes place at the current map. The more you play, the more challenge you are met with. Your units will be more responsive and trained, and your enemies will be much more fierce and alert. Troops will put their training into use and use previous intel to determine what to expect in certain areas. Edited June 15, 2014 by zooloo75 1 Share this post Link to post Share on other sites
tpw 2315 Posted June 8, 2014 Great to see you back mate. Your concept sounds awesome, I can't wait to see what you come up with. 1 Share this post Link to post Share on other sites
zooloo75 834 Posted June 8, 2014 Great to see you back mate. Your concept sounds awesome, I can't wait to see what you come up with. Thanks, the concept should be done tomorrow hopefully. Already dished out a majority of the code within the last few hours. It relies on ArmA2NET as I've written a DLL to handle ArmA-External code for file IO. Share this post Link to post Share on other sites
katipo66 94 Posted June 8, 2014 Yeah man, great concept! sounds very clever... looking forward to seeing that working concept, would it ever get to the point they become perfect and cancel each other out, i.e. back to square one, or its possible to manipulate a factions learning capability :D Share this post Link to post Share on other sites
sttosin 67 Posted June 8, 2014 (edited) Welcome back zooloo75! So this is to prevent "insanity" in arma AI? Doing the same thing over and over again while expecting a different result? Very interesting concept. Screams high replay value for for user made missions. What about official campaign mossions? What kind of compatibility would you anticipate between this and other AI mods like bcombat? What about missions with randomly generated enemy AI such as tpw skirmish. Would only editor placed units continue to learn while newly once act as newbies every time? Edited June 8, 2014 by sttosin Share this post Link to post Share on other sites
Rydygier 1317 Posted June 8, 2014 (edited) If I understood the concept right - it is more allowing AI to "remember" experiences from "previous incarnations". It is exotic and also very intriguing idea assuming inter-scenario consciousness of AI, that may change completely whole AI aspect in A3. And the more you play, the wiser AI you'll have. Great. Troops will put their training into use and use previous intel to determine what to expect in certain areas. How about even more ambitious: "Troops will put their training into use and use previous intel to determine what to do in certain tactical situations"? I mean constant, rather abstract tactical-wise than/apart from location-based self-learning for AI. Something like: we was in such force in such kind of place, enemy was in such force there relatively to us in the place of another kind, they did this, we tried to do that, result was X. If X == good - we'll remeber that and we'll act same way in similar tactical situation next time, else - we'll try something different next time. This may be very hard to do however, I can forsee many challenges. Tried once such experiments in A2 for single unit vs unit duel, but didn't get anything conclusive enough. After all in each certain area may happen many very different tactical situations, even in the same scenarios, if dynamic. Edited June 8, 2014 by Rydygier Share this post Link to post Share on other sites
Jona33 51 Posted June 8, 2014 Does this mean the AI could change during replays of the same mission? Although an interesting concept that sounds like it could break a lot of missions, what if the BLUFOR squad is supposed to get wiped out in the mission? Would there be a way to disable this on a per mission basis. Share this post Link to post Share on other sites
zooloo75 834 Posted June 8, 2014 (edited) Does this mean the AI could change during replays of the same mission? Although an interesting concept that sounds like it could break a lot of missions, what if the BLUFOR squad is supposed to get wiped out in the mission? Would there be a way to disable this on a per mission basis. I will work in modularity so the system can be toggled for certain units. The system can be either addon-based or mission(script)-based. The addon version will apply the system to all units (and spawned units), while the mission only version will allow the mission creator to choose which units the system will hook into. ---------- Post added at 05:09 PM ---------- Previous post was at 05:03 PM ---------- If I understood the concept right - it is more allowing AI to "remember" experiences from "previous incarnations". It is exotic and also very intriguing idea assuming inter-scenario consciousness of AI, that may change completely whole AI aspect in A3. And the more you play, the wiser AI you'll have. Great. How about even more ambitious: "Troops will put their training into use and use previous intel to determine what to do in certain tactical situations"? I mean constant, rather abstract tactical-wise than/apart from location-based self-learning for AI. Something like: we was in such force in such kind of place, enemy was in such force there relatively to us in the place of another kind, they did this, we tried to do that, result was X. If X == good - we'll remeber that and we'll act same way in similar tactical situation next time, else - we'll try something different next time. This may be very hard to do however, I can forsee many challenges. Tried once such experiments in A2 for single unit vs unit duel, but didn't get anything conclusive enough. After all in each certain area may happen many very different tactical situations, even in the same scenarios, if dynamic. Thanks for your input. I will try to do as much as I can with this system. I already completed the technical stuff for the system last night. This will allow me to record and use any previously recorded data. So now it's mostly SQF and less C#. The system can be thought of as though time goes by between each scenario one plays. Troops that were ambushed in a certain area previously will allow troops in future scenarios that move through that same area, be aware that an ambush happened there and they will enact certain countermeasures that the previous troops should have done. You could also "roleplay" a bit and act as though you are running training scenarios on your troops so they will be more effective in the real situation. You can effectively run Blufor AI through multiple scenarios in an area and improve their chances of survival. When the real action comes (from let's say a campaign) then they will be ready to fight in that area and be aware of possible strategic locations. ---------- Post added at 05:15 PM ---------- Previous post was at 05:09 PM ---------- Yeah man, great concept! sounds very clever... looking forward to seeing that working concept, would it ever get to the point they become perfect and cancel each other out, i.e. back to square one, or its possible to manipulate a factions learning capability :D Theoretically they shouldn't cancel each other out. They should continue to approach their objective differently and more effectively. ---------- Post added at 05:16 PM ---------- Previous post was at 05:15 PM ---------- Welcome back zooloo75!So this is to prevent "insanity" in arma AI? Doing the same thing over and over again while expecting a different result? Very interesting concept. Screams high replay value for for user made missions. What about official campaign mossions? What kind of compatibility would you anticipate between this and other AI mods like bcombat? What about missions with randomly generated enemy AI such as tpw skirmish. Would only editor placed units continue to learn while newly once act as newbies every time? All AI will benefit from previous scenario experiences. The idea is that a side (Blufor, Opfor, Independent, Civ) will gather intel from previous operations and use that to inform future troops that are in those areas of possible strategic locations. As far as compatibility is concerned, I am not sure if other mods would conflict or not, but I do plan on creating a complete overhaul of the AI eventually like my first FFIS (this will be toggle-able of course so users can benefit from the memory system while still being able to use other AI mods). My original mod was never intended for anything outside of random editor missions, but I guess people liked how much it changed default AI behavior, so they just went with it. I will keep compatibility in mind while creating this mod. Edited June 8, 2014 by zooloo75 Share this post Link to post Share on other sites
kremator 1065 Posted June 8, 2014 Great to see you back mate. Share this post Link to post Share on other sites
zooloo75 834 Posted June 8, 2014 (edited) Great to see you back mate. Thanks :) ---------- Post added at 07:54 PM ---------- Previous post was at 06:02 PM ---------- More news: it will be open source! Hopefully this will allow the community to learn from my code as well as guide them through their own coding. The Visual Studio solution file will be available with all of its source code goodness available for modification :) ---------- Post added at 09:21 PM ---------- Previous post was at 07:54 PM ---------- A visualization of previously recorded data viewed on the map. The dots represents death locations, the exclamations represent the killer's position. This data can be used by the AI to determine their behavior. Visualization of sides. Player's team = blue, other teams = red. Edited June 8, 2014 by zooloo75 Share this post Link to post Share on other sites
eduzumaki 12 Posted June 8, 2014 Sir the system will save the enemy/my deats after someone die or just when the mission ends ? . If it save it from every death wouldn't it compromise my performance in big firefights ? my rig isn't one of the best so i really liked the idea but wante to play in some good fps Share this post Link to post Share on other sites
zooloo75 834 Posted June 9, 2014 Sir the system will save the enemy/my deats after someone die or just when the mission ends ? .If it save it from every death wouldn't it compromise my performance in big firefights ? my rig isn't one of the best so i really liked the idea but wante to play in some good fps It saves the death of all units. There's no performance hit at all. ---------- Post added 06-09-2014 at 12:16 AM ---------- Previous post was 06-08-2014 at 10:39 PM ---------- It's hard to explain how joyous I am right now! I've been coding all day and have managed to see my work already making a very noticeable impact on gameplay! I have ran the same simple scenario in the editor endlessly and have seen the AI improve their tactics each time. At first the Opfor ambush failed, they kept running to the street in front of the Blufor, resulting in a swift death. Now after a few more rounds I've noticed that the Opfor group has declined the previous route of ambush and has instead decided to flank the Blufor group to the left, going through houses and alleyways to avoid detection. The Blufor patrol walked down the road and was blind-sided by the Opfor group, resulting in massive and quick casualties. I'll have to post a video once I polish it out a bit. Share this post Link to post Share on other sites
zooloo75 834 Posted June 9, 2014 (edited) Throughout the day, the Opfor has evolved their tactics, going as far as flanking the patrol, and even getting behind them. They've utilized buildings and alleyways and have deviated away from their predictable default path. http://s11.postimg.org/mn789hkdv/ffis2_1.jpg (120 kB) Edited June 9, 2014 by zooloo75 Share this post Link to post Share on other sites
froggyluv 2136 Posted June 9, 2014 Wow this sounds intense. Best O' luck to ya :) Share this post Link to post Share on other sites
katipo66 94 Posted June 9, 2014 Dumb question if I can, so does your system somehow store data like VAS load outs and AI can recall that data in a complete fresh rerun of the same mission? If so would/could it somehow influence completely different missions if there was data from the same area stored if you get my meaning, even I got lost typing that :P Share this post Link to post Share on other sites
zooloo75 834 Posted June 9, 2014 Dumb question if I can, so does your system somehow store data like VAS load outs and AI can recall that data in a complete fresh rerun of the same mission? If so would/could it somehow influence completely different missions if there was data from the same area stored if you get my meaning, even I got lost typing that :P Not a dumb question at all, and that is exactly what it does :) Share this post Link to post Share on other sites
katipo66 94 Posted June 9, 2014 ill let my smileys in my sig do the talking :D Share this post Link to post Share on other sites
Rydygier 1317 Posted June 9, 2014 Wow. Sounds fantastic. It's hard to explain how joyous I am right now! No need as for me, I understand you completely here. :) That feeling exactly is my major and most desired scripting motivator. Is the non-script/external component unavoidable? Perhaps all the data coulde be written/read in the profile namespace? Do AIs alter previous behavior after failure in pure random way, or are there some predefined guidelines of alteration? What's exactly altered, how strict AI is controlled by this? Does it changes only overall things like group behavior, or does it more detailed micro-managing with doMoves, LOS checks, step-by-step pathfinding and such? Share this post Link to post Share on other sites
hades198 10 Posted June 9, 2014 I dare say... I think you're about to create skynet for ARMA and I really couldn't be happier, keep up the good work. Share this post Link to post Share on other sites
zooloo75 834 Posted June 9, 2014 (edited) Wow. Sounds fantastic. No need as for me, I understand you completely here. :) That feeling exactly is my major and most desired scripting motivator. Is the non-script/external component unavoidable? Perhaps all the data coulde be written/read in the profile namespace? Do AIs alter previous behavior after failure in pure random way, or are there some predefined guidelines of alteration? What's exactly altered, how strict AI is controlled by this? Does it changes only overall things like group behavior, or does it more detailed micro-managing with doMoves, LOS checks, step-by-step pathfinding and such? To put it short, it micro-manages each individual AI, completely overhauling their behavior. They avoid failed strategies and eventually evolve into a good strategy. As players, we learn from our mistakes; if we were killed at a certain place, we will try to avoid it and find a different place. If we find a good spot to eliminate the enemy then we will go there more often. So the AI with this mod will attempt to mimic the behavior of a player; learning from their mistakes and sticking with what works. The DLL component of the mod is required as it allows for so much more potential down the road and handles file management, allowing the recorded data to be organized in a satisfactory manner. A potential feature down the road is to have the option to pull in data from a master server as well as contribute your own, resulting in an ever expanding variety of AI behavior. Edited June 9, 2014 by zooloo75 Share this post Link to post Share on other sites
zooloo75 834 Posted June 9, 2014 News: I may have to rewrite the DLL in C++ (currently written in C#) as the rules of the contest only permit the use of CBA for external mods, meaning I can't use ArmA2NET (http://forums.bistudio.com/showthread.php?131325-Arma2NET). :( I'm crossing my fingers that the devs can address my question. Hopefully they'll make this exception. Share this post Link to post Share on other sites
sttosin 67 Posted June 9, 2014 News: I may have to rewrite the DLL in C++ (currently written in C#) as the rules of the contest only permit the use of CBA for external mods, meaning I can't use ArmA2NET (http://forums.bistudio.com/showthread.php?131325-Arma2NET). :(I'm crossing my fingers that the devs can address my question. Hopefully they'll make this exception. Visual studio doesn't have anything to automatically covert c#? Share this post Link to post Share on other sites
zooloo75 834 Posted June 10, 2014 Visual studio doesn't have anything to automatically covert c#? I highly doubt there's a converter for C# to C++ since the languages are so different. It's not a problem for me to rewrite it, it's just that I'd rather not if I don't have to. ---------- Post added 06-10-2014 at 12:24 AM ---------- Previous post was 06-09-2014 at 11:44 PM ---------- Update: Units in combat will attempt to take cover in buildings if they are out in the open. ---------- Post added at 01:20 AM ---------- Previous post was at 12:24 AM ---------- I've noticed that the AI have started searching the area for enemy forces after the battle has calmed. They've gone through alley ways, checked buildings, etc. I don't mean to brag on my own work, but damn, this is awesome! XD Share this post Link to post Share on other sites
zooloo75 834 Posted June 10, 2014 (edited) Hiccup in development: Due to callExtension having a limit on the amount of data that can be transferred, I'll have to come up with a pagination method to send the entire data in segments. Also, still waiting on a word from BIS on the legality of using ArmA2NET (since it's just another framework to allow mods to be built on, like CBA). Edited June 10, 2014 by zooloo75 Share this post Link to post Share on other sites
katipo66 94 Posted June 10, 2014 I've noticed that the AI have started searching the area for enemy forces after the battle has calmed. They've gone through alley ways, checked buildings, etc. I don't mean to brag on my own work, but damn, this is awesome! XD Haha sounds good man, hope you sort out those issues... More bragging less hiccups! Share this post Link to post Share on other sites