gameserver

module
v0.0.0-...-0031cb3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2025 License: Apache-2.0

README

gameserver

基于nanoserver直接改造的的mmrpg server, 小部分代码雷同

启动

导入docs/jsmx.sql到mysql,修改configs/config.toml配置,然后分别运行cmd/master、gate、game、web start_server.sh启动所有服务, 内置html demo: http://localhost:12307/static/client/

目前问题:

1.hero 推送消息在同屏数据量大时消息会堵塞,nano作者在agent.push内会丢弃超过agentWriteBacklog(16)缓冲区的数据,我加了个消息合并发送的方式,
目前测试使用的是json序列化,生产如果是mmrpg类建议改为bytes

2.game服务器重启entity数据都丢失了,无法做到重启用户无感知,可以参考goworld方式将entity全部序列化到文件,重启时载入

3.目前实现的视野刷新问题,如果同屏1万人在线,那么服务器的视野刷新处理计算非常高, 不适合大量同屏的处理

4.目前的game主要实现的是aoi 同步等逻辑,业务功能模块可以再新加一个node进程来实现,更新重启也不会影响用户

无缝大地图实现逻辑:

代码分支: feature/cell

动态将scene分割成 n 个 区域(cell)只做横向切割。
每个game进程内每个scene只能管理一个cell, 由master的 CellManager 服务器分配管理,
每启动一个cell, 将scene 重新按宽度均匀分布切割为多1个cell,cell内将数据重新迁移分布。
cell边界通过Real->Ghost切换来实现无缝的逻辑。
建议每次启动新的cell时需要间隔小段时间等待数据迁移完成再启动下一个。

image

Directories

Path Synopsis
cmd
game command
gate command
master command
web command
db
internal
web
pkg
algoutil
Package algoutil contain some scaffold algo
Package algoutil contain some scaffold algo
aoi
env
mtm
参考 https://yq.aliyun.com/articles/178898?utm_content=m_29337
参考 https://yq.aliyun.com/articles/178898?utm_content=m_29337
mysqlx
支持mysql json类型解析
支持mysql json类型解析
set
tools
astar_prepare command
exportmysql command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL