I am developing a Pirate ship fighting game.
It's a great concept: Ships firing cannonballs, sinking each other, having to work as a team to complete the mission... But.. I've tested it with about 20 people (with ~5 online at once) and the issue is simple: It is not enough fun.
The problem is that collision detection is horrible. With the ships, I detect if a CannonBall is in one of the coordinates that the ship is in with a delayed task. The Ship-To-Ship collision has been impossible for me to implement. I've attempted to add some sort of collision "box", but I cannot make it follow the Ship's rotation.
This means that I cannot have ships hitting each other. It means that I cannot add people to the game. It means that CannonBalls look horribly unrealistic (They just explode inside the ship!). It also means that I cannot add any sort of obstacles into the game (e.g. floating debris). All of these degrade the gameplay horribly.
My plan with the game is to have crew members who have to fight and take over a ship, and then give you the ability to plunder it. Also to add critical damage, e.g. damaging other peoples' cannons, setting them on fire, damaging the sails, etc.
In short, I can do NOTHING without a better collision detection system! My current system can Roughly get if something is colliding with the ship, but it is just NOT GOOD ENOUGH!
JBox2D is out of the equasion (I've tried using that), and JBullet also does not work well enough for my needs. Besides, I do not want a collision ENGINE! I just want to be able to know when a person is colliding with something and be able to get if that something is in front, to the left/right, or behind the entity.
What is worth trying? Is there any techniques that I have been missing in getting accurate collision detection in my game? Should I be looking at collision engines (even though the ones I have tried do not suit my needs)?
Also, I'm not sure if it is relevant, but it will be the server doing the collision detection.