I’ve gotten my toes wet enough that I think I can start dipping my feet in but now the immediate problem is how to make collision. Although, the panda document just doesn’t make sense to me, and it doesn’t help that the “Roaming Ralph” demo that panda includes doesn’t exactly imbue me with confidence in their system (as he gets permanently stuck once he collides with a wall) So to counteract this, I’ve made a basic, bare-bones class that can tell when two spheres or two boxes are colliding and then I realized “wait, this is making a physics engine… that’s hard…” Are there any experienced people that could point me in the right direction?
Hmm… I have three parts to my answer to this:
First, don’t take Roaming Ralph as an example of what the built-in collision system can do; it’s really not a good demonstration of that.
Used well, I think that the built-in system can actually be pretty good for simple interactions–I’ve used it a number of times myself.
If you want a simple example of this, perhaps take a look at the collision setup in my “Beginner’s Tutorial”.
Second, if the built-in collision system doesn’t do what you want–in particular, if it’s insufficiently robust or physical–perhaps consider using a third-party physics system. For one, Panda already had pretty good bindings for the Bullet physics engine, I believe, and instructions for its use in the manual.
That said, I recommend using a full physics engine only if the simpler built-in one doesn’t work for you: such engines have their advantages, but also some drawbacks. For two, they tend to be more complex to use, and sometimes more fiddly, too.
And finally, as to making your own physics system: I’d recommend it only if you specifically want to make such a thing–if it’s something that you’ll enjoy doing, or that you want to challenge yourself with, or use as software development practice, or for some other purpose.
If all that you want is to have collisions and/or physics, using either the built-in system or a third-party engine is likely to be far quicker and easier.