Slick2D + Kryonet guidance

I’m trying to create a multiplayer game using Slick2D and Kryonet and need a few tips to get started. I’ve already done a bit of networking in Kryonet to test it out, so I know how it all works, but it would be helpful to have some sense for the architecture of the whole thing. What would be the best way to set up a client and server game system?

Some more specific questions that I have:

  • Should I be running Slick from the client, server, or both?
  • Should I be sending the whole game state or just things like entity data, positions, etc?
  • How often should I be sending the information to the client?
  • How and how often would input be sent from the client to the server?
  • What code should I have on both the client and the server?

Note that I want to keep the server and client together, so that it is possible to host a server and play on it from the same program.

Any help is appreciated!