Need advice for a server and hosting solution

Hello everyone!

I am planning to develop an indie multiplayer game in Unity 3D and I need the help of experienced game developers to achieve this. To make things more clear, here are the things I have experience with:

  • Unity 3D
  • C#
  • Git
  • HTML
  • CSS
  • JavaScript
  • SQL
  • and a bit of ASP.NET Core MVC

For now, I only have the gameplay idea in my mind and started working on an ER diagram for the database.

My biggest concern is the client-server communication, because this is the first game I will be working on.

I need:

  • Server-side logic app, which I’m planning to be a C# console application, that will simply respond to requests, however, I don’t know if there is some C# NuGet package for example out there that I can use, which takes care of TCP communication?
  • Server Admin Panel - an app that I can use to manage things on the server (start, stop, set in maintenance mode, etc.) and in the database (CRUDs), but I wonder if I should go with a Desktop app or a website?

Best thing would be if there was a package for TCP communication which I would use along with some Desktop app UI platform and make the whole thing a single application which I will use for the server.

I need your opinions on how would you achieve this?

Thanks a lot!

Edit: And yes, which hosting solution would you recommend?

Do you explicitly want to start from scratch with the networking?
There are several useful solutions that offer higher level solutions for multiplayer. Even with those, you will have plenty to do. No need to start on TCP level, really.

Hello and thank you for the answer.

Is it okay to go with creating an API application using ASP.NET Core? I will use this app for fetching data from the DB and I will also need another program for the game logic and loop (I need some code to run on each second).

My concern was whether HTTP is good for games, but I saw some video tutorials demonstrating that approach.

By the way, my game will not require any data being fetched using UDP, as it is not an FPS game.

HTTP can be suitable for various games. Not all need fast updates of course. It is nice however for a server to be able to send data to the clients, so Socket connections have benefits beyond “it’s fast”. But HTTP is very easy to handle.
I don’t have experience running logic in fixed intervals in ASP.NET Core. I guess it will do.
Give it a go and have fun :slight_smile: