This may seem like a broad question, but bear with me. I'm using Java to design a 2d multiplayer side scroller type game. I hear that UDP sockets are preferred for realtime/action games, so that's what I assume I will be using. My question is, what's a good design for the logic of a network system in Java? For example, should the server be multithreaded (one thread per client) or not? How do we do NAT hole-punching (or do we even need to)? That sort of thing.
Thanks in advance for any advice. ![]()