dmarkwick 261 Posted January 4, 2010 (edited) I think that certain objects, or areas, in maps should have the ability to lower the enemy's ability to spot you. By this, I mean that a player who fires a rifle while prone in a copse of trees, and next to a tree, is quite difficult for the AI to spot. After all, enemy in wooded areas are difficult for me to spot. I'm not sure which "end" of the formula this idea should go, but I would suspect it's easiest implemented at the AI spotter end. So if, under "ordinary" circumstances he would have seen you, a check is made against the player's immediate area to see if he's near to an object that would cause confusion. Like a bush, or an area with generally tall grass. Also it would allow for players/units to sneak through otherwise quite dense vegetation without being seen by casual AI spotting. I'm pretty sure this idea can be generally applied across the board as in general the player is almost always camouflaged to some degree. There might be an argument against that where desert camo is as unseen as woodland camo in the same place, but I think it's a small price for a generally more satisfying experience. As it is, I find it difficult to spot AI if they are prone and distant, if they're near a tree or bush it's almost impossible unless I glance at the map & see where my own AI have spotted them. This idea might be extended to inter-group knowledge too. So that not every unit in a group has the same knowledge as anyone else in the group. Perhaps make that notion distant-dependant, to simulate the spotter "pointing" to nearby teammates. Edited January 4, 2010 by DMarkwick Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 4, 2010 Are you saying that; a player who shoots a rifle from any given terrain is harder to spot if that terrain is cluttered with vegetation? If you are, then I completely agree with you. The human eye and brain isn't tuned to picking out stationary object in clutter and it'd be good if the AI could perform the same way. Share this post Link to post Share on other sites
dmarkwick 261 Posted January 4, 2010 Are you saying that; a player who shoots a rifle from any given terrain is harder to spot if that terrain is cluttered with vegetation? If you are, then I completely agree with you.The human eye and brain isn't tuned to picking out stationary object in clutter and it'd be good if the AI could perform the same way. Basically yes. I'm not saying following a treeline should make you totally invisible, but crouched & close to trees should heavily impact on AI spotting ability. Otherwise why follow a treeline at all. Often I've been spotted simply crouching among trees, not moving, observing. But even a slow movement should not raise your visibility too much, especially at 200m & suchlike. A copse of wood has a natural darkness under it, which stationary troops should be very difficult to spot in. I'm hip to the idea that, when eventually spotted, AI will lay down some amount of covering/suppressive fire, I'm just saying that being close to certain objects should up your invisibility somewhat. I know that watching AI as they disappear into woods has the same effect on me. Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 4, 2010 Agree completely. It would make the AI seem a little less A. :) Share this post Link to post Share on other sites
froggyluv 2136 Posted January 4, 2010 Good suggestion but probably difficult to achieve in a believable way. I've always wanted camo to actually work by checking the surrounding area's colors with the unti's pattern or primary color but don't know if thats doable either. Share this post Link to post Share on other sites
max power 21 Posted January 5, 2010 A good place to start would be correlating the player's position with the kind of terrain mask that is present at that location, if they don't do that already. Share this post Link to post Share on other sites
sic-disaster 311 Posted January 5, 2010 Sounds good to me, but how do you tell an illogical AI to think so logically? :p Edit: not saying AI isnt intelligent, but they are intelligent in a different way then we are. We can be confused by clutter, they cant, which is illogical. Share this post Link to post Share on other sites
max power 21 Posted January 5, 2010 Sounds good to me, but how do you tell an illogical AI to think so logically? :pEdit: not saying AI isnt intelligent, but they are intelligent in a different way then we are. We can be confused by clutter, they cant, which is illogical. When they are spotting other units, they have routines that takes into account time of day, weather, unit stance, how noisy they are, how threatening they are, clutter simulation, etc. Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 5, 2010 (edited) Sounds good to me, but how do you tell an illogical AI to think so logically? :pEdit: not saying AI isnt intelligent, but they are intelligent in a different way then we are. We can be confused by clutter, they cant, which is illogical. You're absolutely right. They way to make this work is to work out how the human brain and eye perceive things things, then try to develop an AI equivalent that's not too difficult to deploy and not too hard on the CPU. We know that the human brain notices movement, so players who keep still should be less likely to be seen and tracked by AI, but that's not what DM is talking about. Pattern recognition, which the human brain is particularly good at should be similarly disregarded. Perhaps we should define clutter? We already have a definition in our game terms but it doesn't really work for us. Four our purposes, clutter is anything that is on the map that isn't terrain. Typically this would be vegetation, but equally could be buildings or even vehicles. Basically, it's easy for us to spot a dude standing in a desert than it is in a forest BUT, the same isn't really so for the AI. So how can we impose this thought process on the AI? The easiest way would be study the object density around a spotted target. The higher the object density around a target the AI spots, the more likely we should make them forget they saw it. If we can't interact with the AI this way, maybe we should consider viewblock. When a number of clutter objects are close together, we should generate a viewblock object between them? Edited January 5, 2010 by Tankbuster Share this post Link to post Share on other sites
max power 21 Posted January 5, 2010 Clutter in this case is the plant life and undergrowth that is generated based on terrain masks. Other objects and random crap strewn about would have to involve some other process. I don't think you should define that as 'clutter' though, since clutter has another, more precise meaning in the RV engine. Viewblock, no. A modifier for the circumstances that AI spot the unit, maybe. Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 5, 2010 I realise that clutter is a reserved word, so to speak as it's already in use. I failed to think of an alternative so tried to offer a definition that applies to what DM is trying to do. Share this post Link to post Share on other sites
froggyluv 2136 Posted January 5, 2010 The easiest way would be study the object density around a spotted target. The higher the object density around a target the AI spots, the more likely we should make them forget they saw it. If we can't interact with the AI this way, maybe we should consider viewblock. When a number of clutter objects are close together, we should generate a viewblock object between them? Sounds good in theory but knowing Arma2's AI, I could see problems occuring with unnerving frequency. Imagine how slow it might take the AI to recoginize a seemingly exposed enemy that happens to be in an urban environment littered with objects and clutter nearby. I think it would require a more advanced LOS engine running to pull that off. Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 5, 2010 /me is not a programmer any more. :) Share this post Link to post Share on other sites
dmarkwick 261 Posted January 5, 2010 Well I'm more interested in the map objects rather than clutter as defined in ArmA2. Clutter is it's own problem, and while it certainly has a bearing on this thread it's not the main object. Let me describe what I'm trying to solve: If I have no idea about where an enemy is likely to be, I use treelines and move from copse to copse, each time moving to the edge of the copse and scoping out the next leg of movement. About halfway through the copse I slow to a crouched walk and make my way to the far edge to do this. However, if there are units on the other side, as far away as 200m or so, I will often get seen, even if I'm stopped and just observing. I would be fine if the units were of a danger or alert level, but they seem to spot me in casual safe mode too. I propose that, when initially spotted, a test is done on the spotted unit to see where the closest tree/bush is, and a small calculation done to decide whether or not to allow that spot to succeed. And the more trees/bushes around the unit, the less likely he is to be spotted. So let's say any tree within 2m has a factor, and the number of trees within 10m has another smaller factor added on, more trees more factor. Just to simulate a confusion of vegetation and use of camouflage. Also, and perhaps this is a separate issue, the spotting unit has a limited ability to transmit that info to other group members. Kind of like he's pointing, but someone 5m to his side cannot really see. The further away each group member is, the more confusion there is. This is probably more difficult to achieve as group logic is it's own entity I guess, but well the suggestion forum is for suggestions :) However, the initial spotting issue is the main thrust of this thread. If "spotting" was it's own even handler I could do this myself :) Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 5, 2010 I propose that, when initially spotted, a test is done on the spotted unit to see where the closest tree/bush is, and a small calculation done to decide whether or not to allow that spot to succeed. And the more trees/bushes around the unit, the less likely he is to be spotted. So let's say any tree within 2m has a factor, and the number of trees within 10m has another smaller factor added on, more trees more factor. I think this is the best principle for doing what you want to do, but is it achievable given the engine? Share this post Link to post Share on other sites
dmarkwick 261 Posted January 5, 2010 I think this is the best principle for doing what you want to do, but is it achievable given the engine? Oh yeah for sure. Just need a way to intercept a "spotting" event :) Share this post Link to post Share on other sites
NeMeSiS 11 Posted January 5, 2010 (edited) This is a great idea, if a units is withing x meters of such an object you should get a (small?) bonus to the camouflage config setting i guess. I dont know exactly how that value effects the spotting ability, and i know that you cant change configs on the fly but i assume that its possible to obtain the value from the config and add something to it and i think this would be the easiest way to add this. (For BI, and impossible for us. ;) ) EDIT: Then again, using the nearobjects/nearestObjects command often on all units may become a bit laggy, though i dont know how it will effect the FPS when you use just a very small radius. Edited January 5, 2010 by NeMeSiS Share this post Link to post Share on other sites
dmarkwick 261 Posted January 5, 2010 Then again, using the nearobjects/nearestObjects command often on all units may become a bit laggy, though i dont know how it will effect the FPS when you use just a very small radius. This is why I suggest applying it on the other end of the formula. i.e. on the "spotted" event, if such a thing exists. Only when a unit is spotted will the calculations be done and returned to the spotter. Share this post Link to post Share on other sites
NeMeSiS 11 Posted January 5, 2010 This is why I suggest applying it on the other end of the formula. i.e. on the "spotted" event, if such a thing exists. Only when a unit is spotted will the calculations be done and returned to the spotter. I guess it should be incorporated into whatever calculation is done to get the knowsabout value(Since i think its safe to assume that the camouflage value is used in this), and the 'trees-near' value shouldnt have to be updated as often. Though you cant just get away with checking it once every while, what if i run into the forest after fighting? I would like to have an easier time hiding even after i have been spotted. Share this post Link to post Share on other sites
Tankbuster 1746 Posted January 5, 2010 Oh yeah for sure. Just need a way to intercept a "spotting" event :) Well. Have you done it yet? Come on! Chop chop! :D Share this post Link to post Share on other sites
VictorFarbau 0 Posted January 5, 2010 DMarkwick, I believe here your old "DMViewblock" objects could come in handy. I could imagine a concept using a viewblocking object with the size of a soldier. Depending on enemy proximity, camouflage and terrain you could shift the VB object upwards along the soldier's body to cover a certain percentage. In theory this should complicate detection by the AI to a certain extent. Maybe worth experimenting with? VictorFarbau Share this post Link to post Share on other sites
dmarkwick 261 Posted January 5, 2010 You mean like the old ArmA1 "DMHide" addon? :) I have experimented with this in ArmA2 but it's more suited to sniper/spotter activity than movement or crouched activity. I haven't seen any evidence that a portion of a body is less detectable than a whole body. Share this post Link to post Share on other sites
VictorFarbau 0 Posted January 6, 2010 I meant the DMHide principle, yes. But if you say I haven't seen any evidence that a portion of a body is less detectable than a whole body. then the idea to use this as a magic suit might be futile. Nonetheless, I'll take the liberty to play with this a bit some time :) VictorFarbau Share this post Link to post Share on other sites
dmarkwick 261 Posted January 6, 2010 Well Victor, the solution DMHide uses is that when a player fires a weapon, the hide lowers by an amount and slowly rises until the player is hidden again. If the hide lowers by more than a set amount it disappears, requiring you to hide again after a short wait. In fact, let me just quote the readme for it: This is a simple little idea - a place to hide. Now that more & more AI addons are having some sort of a "search" functionality I thought it would be nice to be actually able to hide. To this end, this addon will spawn a doughnut-shaped viewblock object around you to hide inside. There used to be a visible element to this addon, but I removed it on request so now you need to be extra careful :).The doughnut shape means that although you can be hidden from AI that are searching for you, if they get too close they can see "down" into it, and see you. They have to be quite close, and they have to also be looking in your direction. The doughnut-shape will spawn under the ground, and over the course of 50 seconds or so will rise up, gradually hiding you. No insta-hide I'm afraid Also, each time you fire or throw a weapon (grenade for example), the hide will drop by 25cm, equivalent to half it's height. It will then start to slowly rise up again. This is so that snipers can hide out & snipe reasonably safely, but not too often lest they give their position away. After two closely spaced shots for example, you will be fully exposed for some time. If the hide gets below a certain depth under the ground due to too many shots too close together, it will disappear altogether and you'll need to re-hide, which you won't be able to do for a random amount of time not less than 20 seconds and not more than 40. Also, moving more than 1m in any direction from the initial hide position will also make it disappear. Dying will make it disappear. This is probably functional in MP, but my guess is both server & clients must have it. It is totally untested in MP. Obviously you won't be invisible to human players, so if there's human players you must *actually* hide :). Quite obviously this addon is meant to fool AI only, with severe restrictions. It works best if you remove yourself from the area you suspect will be searched and hide nearby. Enjoy it for what it is, it's not meant as some sort of cheat, but rather a way to inject some amount of tension into a game that has AI enhanced search functionality, primarily for SP gaming. So the time the Hide was lowered allowed you to be spotted by units looking in your direction, if they didn't spot you before the hide was raised again, your good luck. As such, in ArmA1, it worked quite well. In ArmA2 however, the script time limit of 3ms plays havoc with the timing & movement of the Hide, and it's less useful. I did experiment with invisible particles (particles are AI viewblock objects in ArmA2 you might know) but that suffered from the same 3ms limitations. Sometimes it worked properly, more often it did not. Share this post Link to post Share on other sites
TRexian 0 Posted January 6, 2010 Plus, there were AI issues of being able to "know" what was behind the viewblock even without "seeing" what was there. It may be worth revisiting that with 1.05? Share this post Link to post Share on other sites