# py-ming **Repository Path**: nxzxwxm/py-ming ## Basic Information - **Project Name**: py-ming - **Description**: 重构my-py - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-12-30 - **Last Updated**: 2025-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 玩家进入游戏流程分析 1. 游戏服务器都是需要创建房间,所以前端在进入单人游戏时的过程为: 进入游戏->创建房间->进入房间 2.多人游戏 统一改造成玩家进入游戏时发送房间列表过去.服务器默认创建一定数量的房间. 在一定算法的基础上来动态增加房间 | 所以不存在直接进入游戏的情况 玩家进入肯定是带着房间号的,房间也是提前创建好了的, 有随机匹配选项也是服务器计算好 给到房间号过来 | 房间存在私有和公有区分 | | 玩家进入房间 分有无房间号 有:有可能是上一条协议自己创建的,也可能是别的玩家给的自己输入的 无:没有 这时系统可根据游戏对应处理是创建一个新游戏还是找一个目前有人在玩的游戏给他 # 玩家模型 serviceServer中读取的为User,里边处理的为数据库中的基础数据 但是User中继承GameUser,里边存有游戏服中的常用数据 在GameServer中拿到的User时,通过继承下来的GameUser中的初始化来初始化一些数据 # python 依赖库 pip install websocket websockets websocket-server websocket-client protobuf rich schedule redis -i https://pypi.tuna.tsinghua.edu.cn/simple # 数据库为 redis 在 main.py 中有配置 我是因为要在外网看 redis 所以我把 redis 绑定服务器的内网 IP main.py 中 dbip 也连着内网 IP 服务本身就要绑定服务器的内网 IP C 端在外边连接外网 IP # 关于 protobuf 前端的protojs文件通过npm 安装 pbjs工具生成 npm install pbjs -g(全局) 后端的pbpy文件通过proto文件下的protoc.exe生成 可以直接使用proto2js.bat proto2py.bat 两脚本生成。具体过程可以查看脚本内容