Vidiot_X Posted February 9, 2014 Report Posted February 9, 2014 Hi,I have been working on the server and client model for Phoenix USC over the last month. This, with out a doubt is the toughest portion of the project to code and develop. My goal is to make the client/server model as secure and cheat free as possible. This requires an approach known as client side prediction and an authoritative server. Basically a system that takes control away from the clients and makes the server the supreme authority on all aspects of the game.The biggest problem with developing a system like this in a 'twitch' style game like Phoenix USC is the lack of position, velocity and other data being sent from the clients. In the above model only moves (left, right, thrust) and a time code are sent to the server. This makes it especially tough to implement in inertia style games where the client ship (actor) keeps moving between packets sent from the client or server. Additionally the ship can move in any direction and can form curved paths and also react to hitting a wall or other forces such as repel. All very difficult to predict and maintain a parity between the server game state and the clients games state.So I am working on two different networking models at the moment. One as described above and another that allows additional client data to be sent to the server that is secured by encryption and other security measures. This second method uses a authoritative server and client prediction but relies on additional data from the client such as velocity and position. While potentially open to cheating the server monitors the actions of a client and can reposition a client if needed or discontinue a client that is cheating.So, I am wading through all of this and it is really a matter of balancing security and performance. I will keep you posted on my progress and I am not to far off from locking this all down and moving forward. I have a working server and client and it is now a matter of choosing the best model for networking and security.Regards,- Rich - Quote
aquarius Posted February 9, 2014 Report Posted February 9, 2014 Thanks Richard, looking forward to beta. Although Phoenix won't be able to read our maps, settings, lvz, etc? Quote
Vidiot_X Posted February 9, 2014 Author Report Posted February 9, 2014 Although Phoenix won't be able to read our maps, settings, lvz, etcThat is true but the map editor is easy enough to use and the graphics can carry over to it. Fresh start! - Rich - Quote
Vidiot_X Posted February 24, 2014 Author Report Posted February 24, 2014 Hi, I will be testing the server for PUSC today with the beta team. Looking good so far. I will let you know how it works out. - Rich - Quote
Vidiot_X Posted February 25, 2014 Author Report Posted February 25, 2014 Hi, This early version of the server is functioning pretty good. Mainly at this point I am interested in handling latency, packet loss and out of order packets and the server is at this point is ignoring packet loss and out of order packets to a large extent but functioning great. Really this is a test of the client and the server as they both use the same code to execute game. The design I am using is based on the time a packet was sent and a buffer of game states for a client. The server and the client both have a buffer of the past moves (left, right, thrust), velocities, position and more that are used to look up where a ship (client) was when the packet for that client was sent and can replay a clients movement both in real-time and past states quickly replayed to sort of catch up to a position. This kind of technique is similar to something you might see in Quake or Unreal. The upshot is it is good at handling lag and packet loss which as you all know is the 'name of the game'. So aside from some connection issues which I believe we have worked out the performance overall is excellent even in it's early form. I will try to post a video soon and let you see how it performs from a client view here soon. Looking like a great start. - Rich - Quote
Vidiot_X Posted February 26, 2014 Author Report Posted February 26, 2014 Here is an image of us testing. I'll have a video up after I make a few more bug fixes and changes. http://www.phoenixusc.com/Personal_Post_Data/net_test_2.jpg Quote
aquarius Posted March 30, 2014 Report Posted March 30, 2014 I'd love to see a video, or, better yet, beta test the latest version of the client. Quote
Vidiot_X Posted April 3, 2014 Author Report Posted April 3, 2014 Hi, better yet, beta test the latest version of the client. I am hard at work trying to do just that. I am still working on the networking stuff which is pretty tough to get right, but I'm homing in on it. - Rich - Quote
»Axe Demento Posted April 3, 2014 Report Posted April 3, 2014 Don't Give up Richard. Most people give up just before they win! your SS is strong \ ...Axe Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.