I am currently writing a ‘twitch’ based networking game. This is the first game I have written using JMonkey, but have experience with non-network based game programming in C++ and write Java professionally (or so my job description says :o).
I am using SpideMonkey for the networking.
For the server I am using a standard jmonkey application, albeit headless. The server is authorative, although I will probably implement client side prediction in the future.
For latency handling etc I am using interpolation. In my implementation this means that the client is a lerp distance behind the server in what it is showing. This means that when a user action occurs on the client, such as shooting, the server must be rewound to the client time to accurate calculate ray traces etc.
I am planning on implementing new spatials and scene graph implementations so that my server side spatials contain a history of states . There will then be a simple method to re-wind the scene graph to any given point in time, which can be used to do the cals, and then reset to the current time. I will try and do this for the physics scene graph as well. These rewinds will be limited to a specfic spatial set if required for optimisation.
My 2 questions are:
- Does it seem reasonable to try and use a simple application on the server. The helper methods I get seem to simply a lot of actions but I am worried the extra functionality I need will get away from me.
- If I base my scenegraph on the current JMonkey implementations (i.e. try and integrate it closely into the existing code) do people think they might have a use for such a piece of functionality?