Original Post
I'm attempting to get a simple first person shooter player movement system working using the approach in this document. So far everything has gone smoothly - I have a function that takes a starting position, ellipse radii, and velocity, and uses collision detection and response to return a new position (the ellipse slides along walls as documented in the article). However, I'm a bit confused on how to go about implementing gravity and movement. What I want is for the player to be able to walk around and jump on relatively flat surfaces. If the surface is too slanted, the player should slide down. The article suggests to simply call the collision function twice - once for movement, then again for gravity. However, this doesn't seem like the best approach. How is this usually done in games? Any tips would be appreciated... I just need an idea of the overall approach to take.

