SS3D
SS3D copied to clipboard
Rework of the colliders.
Summary
Many colliders in the game should be modified, either to account for particular elements of gameplay or for performance. This could be done in a systematic way, by putting each object through a serie of yes/no questions. The answers would ultimately decide which collider fits the best the object.
Goal
Currently, many objects in the game have a mesh collider, which is expensive in CPU usage compared to simple geometric colliders such as the capsule or the cube colliders. The necessity of those mesh colliders should be assessed as replacing them could benefits the game's performance greatly. Another issue is that some colliders are going to be troublesome with the movements of the players. As an example, the holopad is bumpy despite being very flat, which is totally unnecessary while it's fixed on the ground.
The goal is to create a serie of relevant questions to assess for each object what should be the nature of their colliders and the logic attached to it. Each question should have a finite number of well defined answers (mostly yes/no). Once the serie of questions is defined, a decision tree could be drawn to make efficient the process of choosing the said colliders and their logic. Doing so would unify the way colliders are chosen, and would hence avoid lenghty discussions about the way such or such collider should be. It would make the process to check if a collider is correctly defined pretty smooth.
Precision : When I'm speaking about the logic attached to colliders, I'm referring to three things. First, what's the state of the collider and when to change it (the states are static, connected to a rigidbody or connected to a kinematic rigidbody) ? Two, should the collider be simply a trigger or interact with physics, should they switches under certain events ? Three, when do the colliders need to be active ? There's surely some logic I'm not thinking about.
Here's a few possible questions :
- Is the object always at the same position once placed ?
- Can the object be thrown ?
- Does the object need high precision in the way it collides ?
- Could the object position interfers with the players movement in an undesired fashion ?
- Can the object be pushed ?