All Projects → gfandada → Gserver

gfandada / Gserver

Licence: apache-2.0
通用的实时流golang框架,可以方便的创建游戏服务/聊天服务等

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Gserver

Openkore
A free/open source client and automation tool for Ragnarok Online
Stars: ✭ 956 (+482.93%)
Mutual labels:  game, mmorpg
Azerothcore Wotlk
Complete Open Source and Modular solution for MMO
Stars: ✭ 1,330 (+710.98%)
Mutual labels:  game, mmorpg
Ao Server
Server for Argentum Online
Stars: ✭ 32 (-80.49%)
Mutual labels:  game, mmorpg
Game
⚔️ An online JavaScript 2D Medieval RPG.
Stars: ✭ 388 (+136.59%)
Mutual labels:  game, mmorpg
Tap Tap Adventure
Tap Tap Adventure is a massively online 2D MMORPG set in the medieval times with twists.
Stars: ✭ 123 (-25%)
Mutual labels:  game, mmorpg
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+299.39%)
Mutual labels:  game, mmorpg
Westward
A collaborative MMORPG made in Javascript
Stars: ✭ 66 (-59.76%)
Mutual labels:  game, mmorpg
endurox-go
Application Server for Go (ASG)
Stars: ✭ 32 (-80.49%)
Mutual labels:  real-time, cluster
Rpg
Online Role Playing Game (based on Laravel)
Stars: ✭ 121 (-26.22%)
Mutual labels:  game, mmorpg
Mir2x
open source MMORPG game
Stars: ✭ 118 (-28.05%)
Mutual labels:  game, mmorpg
Mmorpg
springboot编写的轻量级高性能mmorpg手游服务端框架,基本功能逐渐完善中。
Stars: ✭ 309 (+88.41%)
Mutual labels:  game, mmorpg
Rhisis
Rhisis is an experimental FlyFF MMORPG emulator built with C# 9 and .NET 5
Stars: ✭ 132 (-19.51%)
Mutual labels:  game, mmorpg
Noahgameframe
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
Stars: ✭ 3,258 (+1886.59%)
Mutual labels:  game, mmorpg
Gonet
go分布式服务器,基于内存mmo
Stars: ✭ 804 (+390.24%)
Mutual labels:  game, cluster
Megaglest Source
MegaGlest real-time strategy game engine (cross-platform, 3-d)
Stars: ✭ 259 (+57.93%)
Mutual labels:  game, real-time
Forgottenserver
A free and open-source MMORPG server emulator written in C++
Stars: ✭ 1,024 (+524.39%)
Mutual labels:  game, mmorpg
Otxserver
OTX Server from:
Stars: ✭ 187 (+14.02%)
Mutual labels:  game, mmorpg
Stendhal
Stendhal is a fun friendly and free multiplayer online adventure game with an old school feel.
Stars: ✭ 194 (+18.29%)
Mutual labels:  game, mmorpg
Openmmo
OpenMMO - Groundwork
Stars: ✭ 115 (-29.88%)
Mutual labels:  game, mmorpg
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (-20.73%)
Mutual labels:  game, mmorpg

gserver

This project aims to provide a solution for real-time message flow.
You can create GameServer or others, with gserver.
The communication protocol of GateWay has supported Tcp and Websocket.
DEMO is here. (tcp-gateway and mobagame-service)
LICENSE is here.

Installation

golang version 1.9.2
go get github.com/golang/protobuf/proto
go get github.com/gorilla/websocket
go get github.com/cihub/seelog
go get github.com/koding/multiconfig
go get github.com/garyburd/redigo/redis
go get github.com/HuKeping/rbtree
go get github.com/tealeg/xlsx
go get google.golang.org/grpc
go get github.com/go-sql-driver/mysql

TODO

current version is v0.8.3
next version-v0.9.0 will focus on:
1.optimize safe -- ING
2.optimize microservice
3.add inner logger -- ING
4.add tcp gateway -- DONE
5.add game util package(aoi,space,entity....) -- ING

CONF

更全的配置请查看demo工程
{
	"MaxConnNum": 2048, // 最大连接数:多余的连接将不会响应
	"PendingNum": 100,  // gateway->client异步ipc队列上限
	"MaxMsgLen": 1024,  // client<->gateway message上限:单位byte
	"MinMsgLen": 0,     // client<->gateway message下限:单位byte
	"ReadDeadline":60,  // gateway->client读超时:单位s
	"WriteDeadline":60, // gateway->client写超时:单位s
	"ServerAddress": "localhost:9527", // gateway地址
	"MaxHeader":1024,   // header上限(for websocket):单位byte
	"HttpTimeout": 10,  // http-get超时(for websocket):单位s
	"CertFile": "",     // for ssl
	"KeyFile": "",      // for ssl
	"Rpm":100,          // client->gateway流量上限:每分钟收到的报文数量上限
	"AsyncMQ":64,       // service->gateway异步ipc队列上限
	"GateWayIds":1999   // gateway本地路由id段(当前路由规则是简单的id分段规则)
}

Message

client->gateway
	----------------------------
	| len | seq | id | message |
	----------------------------
	len:seq + id + message,占用2个字节(uint16)
	seq:从1自增的序列号,占用4个字节(uint32)
	id:协议号,占用2个字节(uint16)
	message:业务数据,占用len-6字节,可以使用任意编码:pb/json等,本框架内置了pb2编码器

gateway->client
	----------------------
	| len | id | message |
	----------------------
	len:id + message的长度,占用2个字节(uint16)
	id:协议号,占用两个字节(uint16)
	message:业务数据,占用len-2字节,可以使用任意编码:pb/json等,本框架内置了pb2编码器
	
gateway<->service(base pb3)
	type Data_Frame struct {
		Type    Data_FrameType
		Message []byte
	}

dataflow

image

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].