All Projects → east-eden → server

east-eden / server

Licence: MIT license
game services based on micro service

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to server

cookiecutter-go
boilerplate, golang project starter tool, support go-zero/go-micro/gin
Stars: ✭ 63 (+50%)
Mutual labels:  go-micro
logicmoo workspace
https://jenkins.logicmoo.org/job/logicmoo_workspace https://logicmoo.org/xwiki/
Stars: ✭ 41 (-2.38%)
Mutual labels:  game-server
spunkybot
Multi-platform administration and RCON tool for Urban Terror
Stars: ✭ 19 (-54.76%)
Mutual labels:  game-server
otservbr-global-archived
Archived, read-only repository. New repository: https://github.com/opentibiabr/otservbr-global
Stars: ✭ 340 (+709.52%)
Mutual labels:  game-server
RentHouseWeb
使用 go+docker+go-micro微服务框架开发的租房网系统,符合RESTful架构风格。
Stars: ✭ 28 (-33.33%)
Mutual labels:  go-micro
topaz
💎 A server emulator for Final Fantasy XI.
Stars: ✭ 46 (+9.52%)
Mutual labels:  game-server
ctf-gameserver
FAUST Gameserver for attack-defense CTFs
Stars: ✭ 38 (-9.52%)
Mutual labels:  game-server
micro-plugins
go-micro plugins, auth(JWT+Casbin)、go-micro服务加入istio服务网格
Stars: ✭ 27 (-35.71%)
Mutual labels:  go-micro
nakama-docs
Documentation for Nakama social and realtime server.
Stars: ✭ 44 (+4.76%)
Mutual labels:  game-server
valheim-k8s
valheim game-server on kubernetes
Stars: ✭ 74 (+76.19%)
Mutual labels:  game-server
advanced-cloud-native-go
Advanced Cloud Native Go - Packt Publishing Video Course
Stars: ✭ 18 (-57.14%)
Mutual labels:  go-micro
gmsec
golang micro service base on gin. golang 微服务集成框架
Stars: ✭ 141 (+235.71%)
Mutual labels:  go-micro
mmo-arch
Base Architecture for creating scalable games using microservices through Angular, Phaser, NestJS, NATS, and MySQL
Stars: ✭ 25 (-40.48%)
Mutual labels:  game-server
magx
Multiplayer game server framework
Stars: ✭ 34 (-19.05%)
Mutual labels:  game-server
libcorpc
Libcorpc is a high performance coroutine base RPC framework
Stars: ✭ 20 (-52.38%)
Mutual labels:  game-server
avacity-2.0
Игровой сервер, частично совместимый с клиентом игры "Аватария"
Stars: ✭ 39 (-7.14%)
Mutual labels:  game-server
server
A voxel based game server.
Stars: ✭ 46 (+9.52%)
Mutual labels:  game-server
mediagui
go / vuejs / vuex powered application
Stars: ✭ 22 (-47.62%)
Mutual labels:  go-micro
Squad
Dockerfile for automated build of a Squad gameserver: https://hub.docker.com/r/cm2network/squad/
Stars: ✭ 21 (-50%)
Mutual labels:  game-server
ARK
ARK is a lightweight, agile, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 411 (+878.57%)
Mutual labels:  game-server

Build Status GoDoc Go Report Card

Introduce

Server is a game server with horizontally-scalable and high-available. It was powered by go-micro and running in docker container. All services are disaster-tolerant and dynamically expandable.

Requirement

  • Golang 1.18 (with generics)
  • MongoDB
  • Consul (in release)
  • Nsq (in release)

Benchmark

Test device: macbook pro 16 2021 with Apple M1 Pro, 16G Mem
Robots number: 6000
Send message frequency: 2 messages per second 
Save Mongodb frequency: 12k per second
  • The machine cpu and memory usage are as follows:

    CPU usage: 15.16% user, 30.77% sys, 54.6% idle

  • The process occupies cpu and memory as follows:

    PID COMMAND %CPU MEM
    86643 gate 111.1 619M+
    86646 game 80.9 751M+
    86662 client_bots 71.3 679M+
    1512 mongod 30.6 160M
    71456 consul 1.9 53M-
    71121 nsqd 0.2 12M
    86656 mail 0.1 38M
  • The MongoDB operations performance are as follows:

    benchmark_mongodb

  • The players' message processing latency are as follows:

    benchmark_prometheus

Getting Started

  • Download - git clone this repo and cd in its root path

  • Start MongoDB - running in docker-compose:

docker-compose run --service-ports -d mongo
  • Start Gate - cd to apps/gate, run following command:
go run main.go
  • Start Game - open another terminal session, cd to apps/game, run following command:
go run main.go
  • Start Combat - open another terminal session, cd to apps/combat, run following command:
go run main.go
  • Start Client - open another terminal session, cd to apps/client, run following command:
go run main.go

now you can communicate with server using (up down left right enter): text mud

License

server is MIT licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].