Me and Hemul1 came up with a game idea based around pool (or billiards) and decided to pursue the game as a joint venture.
What we're aiming to do is have a somewhat simple pool game, combined with another form of gameplay. Simple means that there'll be no way to strike the cue ball from different angles to create back or top spin.
As such I started testing out ways to do the pool part of the game. Searching the forums I found an example using the physics behaviour.
Thing is I can't work with the physics behaviour to save my life. Even back in CC I hated, hated, using physics, because I could never get it to work the way I want it to. Maybe I just suck at working with it, I don't know. The objects eventually always go into sleep and become completely immovable, etc.
So I started looking at alternative solutions too.
The way I see it, we have at least four different ways to approach it.
1. We use physics anyway, and try to wrestle it to do what we want.
2. We use bullet behaviour to handle ball movement and bouncing off walls. But we still have to handle ball-to-ball collision with events.
Would involve some math.
3. We use custom movement for the entire thing. Would involve WAY more math.
4. We do everything with events, no behaviours. This obviously involves, like with custom movement, lots of heavy math.
The upside to 1 and 2 is that we get a lot of the work done upfront. Downside would be that we have to work around the behaviours to get them to do what we want. A collision between the balls, using physics, is not accurate to how pool balls behave, and a collision between balls using bullet behaviour just straight up isn't.
Upside to 3 and 4 is that we'd have much higher control over how the balls behave. Downside being, as stated, heavy(-ish) math. Neither of us are all that proficient with heavier math though, but that's something can be researched.
So, which approach is best? I realize that there's not a clear answer to the question, but I'm kind of stumped currently.