Enhancements
You got some great basic collision detection and handling in this chapter, but there's always room for improvement. Here are a few ideas:
- Implement sphere trees for more accurate object-to-object tests.
- Perform extra checks for whether an object travels a large enough distance in between frames; a collision could occur between the start and end locations.
- Allow the player to crouch or crawl to get in tight places.
- Physics-wise, you could implement "head bobbing," which just bounces the camera up and down when the player is moving.