Hello all Ectypes,
Our “Space Log” is a channel for communicating more to the Void Crew community. We want to share what we do, challenges we experience and our plans for addressing these challenges. We hear you, there are issues and bugs on the must-fix list, that we work hard to solve. Our message to you is: We are committed to both expanding the game experience, AND fixing the problems and bugs. One of the annoying problems experienced is known as the FPS issue. So in this space log we talk about moving platforms, physics, how it connects to the current FPS issue and how we are planning to solve it. ---Problem - Refresh rate capped to 60fps (...sort of)
When controlling the character or the ship, the refresh rate can appear to be capped to 60fps, but only when it comes to moving your character/ship. Other element movement, such as effects/animations or even camera movement when manning a gun can appear perfectly fine and render at the correct framerate. …this is of course not ideal, but to understand why the game behaves in such a way and how we are going to solve it we will have to go over some technical details.Background [Tech Talk] - Moving platforms
To make it possible for a player to walk within a spaceship while it's flying around we have to utilize moving platforms.- First, the player needs to be registered to be in the moving platform: that is done by either the player center point being positioned within defined room zones or by the player ground collision detecting that it is grounded to a moving platform type (this is used if you are outside, standing on top of the ship).
- Second, when a player is registered to be attached to a moving platform, instead of calculating their position and velocity in world space we do it in the moving platform's local space.
- The effect of this is that no matter the velocity and position of the ship, the player can reliably move around the inside of the ship.


Solution - …in the works
To solve all the listed problems with the ship and characters we will do something we already do with carryables: using separate physics scenes/environments.
- Everything relating to character locomotion, this includes both moving the character and doing wall/ground collision detection.
- Interaction logic - allowing terminals, physical buttons and carryables to be interacted with both in main and physics scenes.
- External movement modifiers, making sure we can modify players position/velocity relative to the main scenes world space position.
- Use ship and character movement interpolation (fixes the character/ship movement being capped at 60Hz)
- Drastically reduce the moving ships internal element complexity (more overall performance) - All those elements can live as static colliders exclusively in the ship simulation scene
- Minimize floating point errors (no more camera drift) - Simplification of calculation since all movements are done within the local space - Staying at the center of the world reduces distance based errors.
