Well soon you will hit issues with garbage collection, Java is really not great at managing it, you've mentioned you pretty much havent focused on thinking about garbage collection at all in what you have coded so far, it may work now but when you ramp things up it will become an issue. You havent managed it yet, so when it kciks in, it will block and halt the game up, which depending on how much it needs to clear up, can be multiple seconds, you really dont want that locking your game up do you.
Physics will probably be one of the hardest things for you to nail down, mathematics in Java is pure ugly and you will find it a headache.
Theres a reason why mainstream/indies dont use Java, its uncommon for games, its considered slow, its not a low-level language. I do wonder, what did you pick Java at the start? What was your thought process?
Are you at least using LWJGL?
Bookmarks