- Rendering stutter - performance on lower spec machines was terrible.
- Collision and physics - so you could walk around the maze, confined to the rooms.
- Additional detail - the walls were a bit plain and were supposed to be brickwork.
- Difficulty tweaks - The maze size should have been linked to difficulty and I wasn't sure if it was fair.
- I started with the Remotery integration already in Apparance, to get some ideas what was going on.
- Running the GPU and CPU profiling tools in Visual Studio.
- Adding hard coded timing and logging to suspect areas of the engine.
- Boost the priority on render thread.
- Boost the priority on the main thread.
- Run the renderer on the main thread (single-threading model).
- Switch message look to non-blocking (needed for 3).
- My slightly hacky camera smoothing system was completely broken.
- I was logging synth errors to debug output.
Collision and Physics
- Meshes can be tagged with a special material that signifies collision properties.
- The material will normally be hard wired not to render anything, but can be enabled to visualise the collision surfaces.
- The engine will gather together any meshes tagged in this way that are within a certain bounds around the camera.
- A custom camera controller (similar to the free-cam one) will handle FPS style player movement.
- This controller will hook into the engine to request collision information.
- Based on this information, collision tests and simulation will be performed to give the impression of solid walls and floors.
- A Sphere-Triangle Swept collision test would be used to implement this.