

Stations are represented by static collision geometries. As a special feature, shield geometries and weak points can be supported.
The physical representation of capital ships is similar to stations with the exception that they can be animated on pre-defined trajectories to always have them in the best cinematic and gameplay-relevant position.
Two basic models are utilized for the weapon system implementation. These are projectiles on the one hand and raycasts on the other hand.
Projectiles are separated in unguided and guided projectiles. All projectiles have in common that they are generated with a specific start velocity at the weapon's muzzle. Target-seeking projectiles have the characteristic feature that they use a controlling agent that guides the projectiles towards the target's direction. All weapon systems can have variable impact in terms of damage generation. Those are parameters that are defined by the game designers. Examples would be weapons that only have impact on shields or generate area of effect damage.
To comply with the differentiation of the weapon systems, so called collision groups are used that can be assigned to the collision geometries. Based on this identifiability it is possible to react accordingly with damage generation or shield penetration during the collision detection. To receive corresponding results for guided projectiles within a client-server simulation to some extent, minimal network synchronization is triggered. All other projectiles, respectively raycasts have consistent starting conditions disregarding network latency. This makes it possible to generate them on the client and the server in the same way. Incidentally I'd like to mention that the damage generation is completely handled on the server.
That's it for part three of my developer diary. In the fourth and last part of my diary series I will talk about the networking physics and debugging physics.
Stay tuned!