Simple Networking

In my game I need to send and recieve small amounts of data to each client to check if the player carries out a valid move. Basically I just want to prevent cheating and provide data to clients.

Obviously I don’t want to do this over http as cheating will be possible, using a private key is impossible as decompiling the source code will reveal this.

Which type of server solution would be best for me? Authoriative server seems overkill as its not a multiplayer game.

Writing a simple UDP server in C++ is no big hassle, I am in the process of writing a much larger server architecture in C++ right now. Simply put, just have a recvfrom call on the server with UDPClients on the C# side feeding it data from each client, and the server will just simply take the string inputs, parse the data, and update that plaer’s information to all the other clients who had previously sent info

Thanks for the answer, I’m not sure how easy it would be to write a UDP server in C++, but what you say makes sense. How long do you think a project like this would take to complete for one guy? Also my game is not multiplayer in the normal sense.

Writing a complete network protocol to prevent cheating is not going to get you far, I fear. No matter how you encrypt your communication, the cheating can happen even before you wrap up the messages.
Most of the cheating will be client-side and in-memory (unless you target mobiles only maybe).

You could simply go with https for the communication while your server does basic sanity checks to see if the sent turn makes sense and is possible.
This would save you the work of getting into network communication.

Basically, my game is not multi-player at all.

  1. I need to verify player score on-line leader board - Must be secure
  2. I need to verify time limit.
  3. I need to verfy number of remaining moves.

The game will be mobile only.
If I use simple http https - anyone can decompile the game and view encryption key and modify source.
If I make the game authoritative server, (a lot of work), the lag will be a problem and I will need hundreds of simultaneous games running. As the game is single player with on-line leader boards and score verification. The game is a simple puzzle matching game.

Without giving away to much info. it is very important that the ONLINE Score Board/ leader board is Secure above all else, that the scores being submitted are legitimate.

How to achieve such a thing in a reasonable amount of time?

I have researched every option.

HTTP HTTPS is insecure.
non authoritative server can be cheated.
authoritative server will introduce long development times/latency/and other complications, along with high server cost and maintenance.

What other options are there?