vsTASKER 7 Tutorial
×
Menu
Index

Concept

 
The integration with VBS is done using a special protocol between the VBSproxy and the VBSplugin.
Because vsTASKER simulation engine is 32 bits and VBS3 is 64 bits, embedding vsTASKER simulation engine as a DLL for VBS is excluded. But even if both were 64 bits, the solution would not be viable as the DLL is called from VBS at an inconsistent rate and vsTASKER simulation engine needs a steady frame rate to work. Besides, the second limitation is that loading VBS (and the terrain + the VBSplugin) every time a new change is made in the scenario would take too much time. It is much efficient to have on one computer (or the same one with two screens, preferably, as VBS capture the mouse) running VBS and the plugin and another one with vsTASKER sim.
 
The protocol between VBSproxy and VBSplugin is described in /Runtime/VBS-3/vbs_interface.h
 
One VBSproxy component should be used per database and attached to the Scenario Player.
Every entity which needs to exist in VBS must either have the VBSentity component (whatever its type) or VBSexplosive (for mine, IED or any exploding device).
 
These components (inheriting from VBScore) are specifically set up for each entity (see the Developer Guide for description of the parameters) and are using VBSproxy for specific commands. VBSproxy contains the list of all entities and explosive in the simulation and automatically sync both sides (position, speed, attitude, state...)
 
The communication between the VBSproxy and VBSplugin is very fast and efficient.
The interface between VBSplugin and VBS is based on an ASI interface which is slow. The only way to communicate with VBS is using a script command encapsulated into a character string. VBS must parse the command and execute it, the same way as it would do from a script. This is not efficient and when a lot of commands have to be issued, the frame rate on VBS side drops.
 
VBS also send responses to VBSplugin at a low speed. Whenever the request is a LoS, a speed or position of any entity, the response is not as fast as we could expect. So, there is always a time lag between the VBS and vsTASKER situation. The more entities, the bigger the time lag. This has to be taken into account.