disableRemoteSensors – Talk

From Bohemia Interactive Community
Jump to navigation Jump to search
(Summary of my current understanding)
m (Text replacement - "\[ *((ftp|http)s?:\/\/[^ ]+)([^{])=([^}])([^ ]+)" to "[$1$3{{=}}$4$5")
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Seems like a confusing double-negation that should have been avoided. I suppose it could be fixed before main branch still since it's still dev-only...
Seems like a confusing double-negation that should have been avoided. I suppose it could be fixed before main branch still since it's still dev-only...
(previous comment by [https://community.bistudio.com/wiki?title=User:Galzohar&action=edit&redlink=1 Galzohar] was not signed)
(previous comment by [https://community.bistudio.com/wiki?title{{=}}User:Galzohar&action{{=}}edit&redlink=1 Galzohar] was not signed)




My understanding of this is currently as follows (looking forward to hear comments/confirmations/corrections):
My understanding of this is currently as follows (looking forward to hearing comments/confirmations/corrections):


By default, every instance (client/server) executes 'visibility ray-casts' between all units. These commands are used to calculate the returns of [[knowsAbout]], [[targetKnowledge]], [[nearTargets]] and probably anything similar that might come up in future versions. I'd assume that these raycasting results are also used as input to the AI behaviors (for those units that the instance is controlling, i.e. the instance's local units). This command has local effect, i.e. it affects the ray-casts only on the instance where it is executed. It disables ray-casts for all units except those that are local or in a group with at least one local group member. I assume the group-level granularity is due to the group-level granularity of some AI systems related to target knowledge.  This command can safely be used on a certain machine if the machine will never execute a 'targetKnowledge', 'knowsAbout',  'nearTarget' or similar command with  a non-local unit as argument.  Depending on how your mission is scripted this might or might not be the case. E.g. for a blank editor mission with no scripting in it will always be safe to execute this command on all machines, even the server (remember, local units' groups aren't affected). However a mission that introduces scripted checks for knowledge (e.g. a stealth mission or an AI-commanding system like ALiVE) might run into issues if you execute this command. I obviously don't know how ALiVE is written but I'd assume that it probably makes all 'OPCOM' related decisions on the server so executing this command on the non-AI-controlling clients (i.e. not server, not headless client) should be safe.
By default, every instance (client/server) executes 'visibility ray-casts' between all units. These commands are used to calculate the returns of [[knowsAbout]], [[targetKnowledge]], [[nearTargets]] and probably anything similar that might come up in future versions. I'd assume that these raycasting results are also used as input to the AI behaviors (for those units that the instance is controlling, i.e. the instance's local units). This command has local effect, i.e. it affects the ray-casts only on the instance where it is executed. It disables ray-casts for all units except those that are local or in a group with at least one local group member. I assume the group-level granularity is due to the group-level granularity of some AI systems related to target knowledge.  This command can safely be used on a certain machine if the machine will never execute a 'targetKnowledge', 'knowsAbout',  'nearTarget' or similar command with  a non-local unit as argument.  Depending on how your mission is scripted this might or might not be the case. E.g. for a blank editor mission with no scripting in it will always be safe to execute this command on all machines, even the server (remember, local units' groups aren't affected). However a mission that introduces scripted checks for knowledge (e.g. a stealth mission or an AI-commanding system like ALiVE) might run into issues if you execute this command. I obviously don't know how ALiVE is written but I'd assume that it probably makes all 'OPCOM' related decisions on the server so executing this command on the non-AI-controlling clients (i.e. not server, not headless client) should be safe.


[[User:ImperialAlex|ImperialAlex]] ([[User talk:ImperialAlex|talk]]) 10:14, 21 September 2015 (CEST)
[[User:ImperialAlex|ImperialAlex]] ([[User talk:ImperialAlex|talk]]) 10:14, 21 September 2015 (CEST)

Latest revision as of 17:27, 28 April 2023

Seems like a confusing double-negation that should have been avoided. I suppose it could be fixed before main branch still since it's still dev-only... (previous comment by Galzohar was not signed)


My understanding of this is currently as follows (looking forward to hearing comments/confirmations/corrections):

By default, every instance (client/server) executes 'visibility ray-casts' between all units. These commands are used to calculate the returns of knowsAbout, targetKnowledge, nearTargets and probably anything similar that might come up in future versions. I'd assume that these raycasting results are also used as input to the AI behaviors (for those units that the instance is controlling, i.e. the instance's local units). This command has local effect, i.e. it affects the ray-casts only on the instance where it is executed. It disables ray-casts for all units except those that are local or in a group with at least one local group member. I assume the group-level granularity is due to the group-level granularity of some AI systems related to target knowledge. This command can safely be used on a certain machine if the machine will never execute a 'targetKnowledge', 'knowsAbout', 'nearTarget' or similar command with a non-local unit as argument. Depending on how your mission is scripted this might or might not be the case. E.g. for a blank editor mission with no scripting in it will always be safe to execute this command on all machines, even the server (remember, local units' groups aren't affected). However a mission that introduces scripted checks for knowledge (e.g. a stealth mission or an AI-commanding system like ALiVE) might run into issues if you execute this command. I obviously don't know how ALiVE is written but I'd assume that it probably makes all 'OPCOM' related decisions on the server so executing this command on the non-AI-controlling clients (i.e. not server, not headless client) should be safe.

ImperialAlex (talk) 10:14, 21 September 2015 (CEST)