Hello, guys.
I'm now working on a Flash multiplayer platformer game (2D hero arena). I'm quite new in the world of multiplayer games and really confused thinking of what approach to use to synchronize all clients. For the server I decided to use Smartfoxserver2x. I've read some articles on the internet and one of the approaches they suggest is to run the same game simulation on the server and to synchronize all clients with it. In this case clients would just send input events to the server and get back the updated position, etc. But the problem of this approach is that I would have to write all the game mechanics including it's physics (I'm using ActionScript 3 Nape physics engine for my game on the client side) on the server (on Java) and it's very complicated. And unfortunately, there is no Nape version for Java.
To understand better what I want to make, you can see this example http://92.243.68.118:8080/game/Platformer.html (AWD to move hero and mouse click to attack). At the end it's supposed to be multiplayer with minimum lag.
Currently players just send keyboard and mouse messages to each other via server and there is no synchronization at all. So players might see completely different things.
What approach can you suggest for such game?
p.s.
Few other things to mention..
1. In the final game users will be able to create gaming rooms (16 players max) that can be joined and left by other players at any time.
2. The game is in Flash so only TCP connection is available (no UDP)