sky44 / gogame

Golang实现异步游戏框架(多核高并发),强伸缩,可扩展 ,含子游戏框架及机器人管理,业务非侵入式

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Golang实现异步游戏框架(多核高并发),强伸缩,可扩展,含子游戏框架及机器人管理,业务非侵入式
│
│  main.go                     主函数入口
│  README.md                   文档说明
│  
├─comm                        【通用函数】
│  └─utils
│          freevalues.go
│          ini.go
│          Orderedmap.go
│          Semaphore.go
│          Timestamp.go
│          utils.go
│ 
│          
├─core                        【核心组件(业务层、网络层)】
│  │
│  │                           业务层
│  │
│  │  mailbox.go               邮槽管理器(Slot容器)
│  │
│  ├─slot                      邮槽(Proc启动器,EventLoopThread)
│  │      slot.go
│  ├─cell                      业务处理单元
│  │      events.go            业务事件(网络读写/自定义)
│  │      proc.go              业务处理器(EventLoop)
│  │      worker.go            业务接口
│  │        
│  ├─conn                      网络层
│  │  │  
│  │  │  Session.go            会话
│  │  │  SessionID.go          会话ID
│  │  │  SessionMgr.go         会话管理
│  │  │  
│  │  ├─tcp                    TCP网络
│  │  │  │  Acceptor.go        服务端接受器
│  │  │  │  Connector.go       客户端连接器
│  │  │  │  TCPConnection.go   TCP连接对象
│  │  │  │  
│  │  │  ├─tcpclient           TCP客户端
│  │  │  │      TCPClient.go
│  │  │  │      
│  │  │  └─tcpserver           TCP服务端
│  │  │          TCPServer.go
│  │  │          
│  │  └─transmit               TCP流传输接口(读写解析)
│  │      │  channel.go        TCP流协议读写
│  │      │  
│  │      ├─tcp_channel        TCP协议读写接口
│  │      │      Channel.go    TCP协议读写(默认)
│  │      │      ReadWrite.go
│  │      │      
│  │      └─ws_channel         websocket协议读写接口
│  │              Channel.go   websocket协议读写(默认)
│  │              ReadWrite.go
│  │              
│  ├─msq                       消息队列(待完善)
│  │      BlockChanMsq.go      阻塞chan
│  │      BlockListMsq.go      阻塞list
│  │      BlockVecMsq.go       阻塞vector
│  │      FreeChanMsq.go       非阻塞chan
│  │      FreeListMsq.go       非阻塞list
│  │      FreeVecMsq.go        非阻塞vector
│  │      msq.go               消息队列接口
│  │      
│  ├─timer                     定时器
│  │      ScopedTimer.go       局部定时器,线程安全
│  │      TimerWheel.go        时间轮盘
│  │      
│  ├─timerv2                   定时器(基于跳表实现)
│  │       cron_test.go
│  │       hashwheel.go
│  │       safetimer.go
│  │       safetimer_test.go
│  │       timer.go
│  │
│  └─callback                  回调定义
│         Callback.go
│
│
├─server                      【业务层网络】
│  │
│  ├─stream                    TCP流协议读写解析
│  │  │  checksum.go           业务消息校验
│  │  │  msg.go                业务消息定义
│  │  │  
│  │  ├─tcp_stream             TCP协议读写实现
│  │  │      Channel.go
│  │  │      
│  │  └─ws_stream              websocket协议读写实现
│  │          Channel.go
│  │          
│  ├─tcp_client                TCP客户端
│  │      tcpclient.go
│  │      
│  └─tcp_server                TCP服务端
│          tcpserver.go
│          
│
├─public                      【游戏业务公共部分】
│  │
│  ├─define                    公共定义
│  │      define.go
│  │      
│  └─iface                     接口
│      │  idesk.go             桌子接口
│      │  idesk_delegate.go    游戏桌子接口      --子游戏桌子逻辑继承使用
│      │  iplayer.go           玩家接口
│      │  ireplay_record.go    子游戏机器人接口  --子游戏机器人继承使用
│      │  irobot_delegate.go   游戏记录/回放
│      │  
│      └─impl                  实现
│              desk.go         桌子类
│              desk_mgr.go     桌子管理类
│              player.go       玩家类
│              player_mgr.go   玩家管理类
│              robot.go        机器人类
│              robot_mgr.go    机器人管理类
│              
├─service                      服务组件(桌子)             - 异步主服务(网络业务、自定义业务)
│      sentry.go               对应每张桌子业务消息入口
│      smain.go                对应每张桌子业务逻辑处理   - 子游戏框架实现
│
├─db                           服务组件(db/redis)         - 异步数据服务(mysql/mongodb/redis数据库及缓存处理)
│      sentry.go               对应每个数据库任务消息入口
│      smain.go                对应每个数据库业务逻辑处理 - 子游戏框架实现
│            
└─sub                          各个子游戏模块             - 子游戏开发实现
    └─game_dragon_tiger
            desk.go            子游戏桌子类
            robot.go           子游戏机器人类
            

About

Golang实现异步游戏框架(多核高并发),强伸缩,可扩展 ,含子游戏框架及机器人管理,业务非侵入式


Languages

Language:Go 100.0%