NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

GitHub - Danie1Lin/Distributed-Golang-Game-Server: A Distributed Game Server Made With Golang

At first, I just want to learn Golang.I started to think about which is the best way? Because the concurrency mechanisms of Golang is very powerful, I choose online game to verify if I can use Golang to make a efficient game server.For me, this is the first time I make this such hard project. Unity, Golang, and C# are the three things I need to master at a time. I am glad I have a passion for this project, and I do not give up.



Tech/framework used



- golang - gRPC - Kubernetes - Protobuf



CrossPlatform - Messages packet use protobuf. It is lightweight, fast and crossplatform. - Autoscaling- The controller is written in go-client. You can wire the strategy to autoscale dedicated server. - Lightweight: The image of dedicated server is less that 40MB.



Architecture



Agent :



Match players to create their own rooms or join others' rooms. You can also control the amount and load balance of the gameplay server. Agent will create a new pod to run the gameplay server if it has more connections than it should.



Gameplay Server



- After players are successfully matched, these players will receive the gameplay server's IP and token. The player can then start playing.



Packet Validating



ODE is a branch master that simulates the physics on the server. Unfortunately, it is too expensive for me to maintain the server. I designed a way for clients to validate their packets and to simulate physics separately to reduce the server's heavy load. I am now able to attack each other. Game Servers An A Lot Of Fun I will design the next steps:



- The validation component to prevent players from cheating - The interface connecting to a physics simulation



Server : Two Ways to Run a Server:



- Run distributed server with Kubernete cluster. - Use Kops for AWS to install Kubernete. - Create cluster. Edit setupEnv.sh with your settings and bash setupEnv.sh run main.go type=agent on your local computer (Must depend on where you installed Kops).



- Run Standalone Server on Local Machine - InstallMongodb - Edit setupEnv.sh(DONT_USE_KUBE=true) with your setting. Bash setupEnv.sh and run main.go—type=standalone from your local machine



Client:



Download this project. - This project can be run in Unity Editor by opening the Prestart.scene and selecting the first scene. - If you want to test with mutliplayer you can try build Andorid apk because it is likely to be builded successfully.



How to use?



I would be delighted to help you modify this project to create your own game. These steps can be followed to make it happen.


Website: https://gametolia.com/
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.