Jump to content
  • Advertisement

MTO

Sign in to follow this  
  • entries
    2
  • comments
    2
  • views
    170

Some tech blabla

Sign in to follow this  
Salmakis

937 views

I made a few Projects with networking and stuff, also on work i have alot to do with sockets and network streams, so i think and hope i picked a good setup for my task.

Client Side

The Client is made with Unity by using its onboard Tilemap and Sprite system.

I decided for unity because i wanted to be able to reuse code from the server, specially the network code and some stuff.

Server Side

Authentication is managed via an extra Authserver that accepts Rest API calls on an HTTPS address, after authentication is done, the client will connect to a World server, the address of this server and some kind of token to identify the client is in the response of the API call.

The Authentication server is written in C# by using .net Core 3 and ASP core

The world server is also written in C# with .net Core 3 but without ASP, it shares some database code with the auth server but its an own process.

Database

the database is curently RethinkDB a Document oriented database that i used for some projects and anyhow like alot, i will see how it performs for that task.

But i layered all database code to an Interface, so i could replace the database to any other DBMS, specially if its also document oriented it should be very easy to implement.

The communication between the client and the world server is done with LiteNetLib, because its works on .net core and also in Unity.

currently the netcode is not so well layered of the game or server code, but switching to another network library should also be possible as long as i can write and read bytes from/to the stream.

I dont use any object serialisation for the netcode, because im just not a big fan of all that metadata coming through with serialized objects.

Full authorative Servers

Any player action is executed on the server, so if a player losts connection he cant do anything.

If example a player wants to move from A to B, then just a message preamble and a position is being transferred, and the answer is that the Player Entity is now moving from A to B, if this is even possible.

Same with buy, sell and any other player Actions.

World Servers

Each world server represents a Game world that can be imagined as a continent or a big Island

If you travel to another continent (by ship) then you technically connect to another world server.

 

here some image that i just made in mspaint:

image.png.e60673c8d5327d09f8659aa790af8f1d.png

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!