disableRemoteSensors – Talk
ImperialAlex (talk | contribs) (Summary of my current understanding) |
ImperialAlex (talk | contribs) m (can't spell) |
||
Line 3: | Line 3: | ||
My understanding of this is currently as follows (looking forward to | 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) |
Revision as of 09:14, 21 September 2015
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)