I’m currently prototyping a 2d spaceship flying/combat game (think Asteroids meets Elite) and I’m looking at various ways to control the ship and how the movement works out. At the moment I’ve got a simple mock up using Box2d, a single dynamic body for the ship and thrusters that work by applying forces to the body. This works, but feels pretty crap.
Obviously I’m going to tweak this a bit right now, but it leaves me with the same lingering question I had at the beginning - is it ever a good idea to use a physics engine for the central gameplay movement / control which the player will interact with? Often physics-based games feel either laggy or floaty (eg. compare Little Big Planet with Mario Galaxy). But it does mean you get much more emergent behaviour (like proper torque when objects collide, and player’s physics triggering physics reactions in the environment). And using a physics engine tends to get you more behaviour ‘for free’ which is often a big win when it’s just a one person project. But it’s very hard to get that proper responsive ‘arcade’ feel with a physics engine.
What are everyone else’s thoughts? Do you prefer to go one way or another or does it depend what you’re implementing and how it should feel? Have you ever got better results using (say) Box2d over implementing it yourself, and did it feel good to control?