CSGO-RealTimeMap开发记录
介绍
CSGO-RealTimeMap是一个致力于将CSGO服务器内的信息实时显示到网页上的一个无数据库项目,灵感来源自Minecraft的插件dynmap。
插件分为两部分:游戏服务器的sourcemod插件和服务器本地的网站。
项目开源地址:GitHub。
开发日期:2020-12-3至2021-01-01。
技术栈
flask 做网页显示。
websocket 实现前端与数据的同步。
sourcemod 实现游戏内数据向网站的同步。
最初版演示见B站视频。
功能目标
- 易于部署&维护的插件/网站结构
- 网页上平滑的玩家移动
- 丰富的图标显示:玩家朝向、所持武器、所属阵营等
- 详细的服务器内信息:玩家在线时间、击杀情况等
- 在线聊天系统
开发记录
2020-12-5
feature
更新了道具效果的显示:
更多的关键帧,现在关键帧增加到了10,网页上人物移动的显示效果更加流畅
bug
- 内存不释放,怀疑是道具的记录引起的
- 程序运行日志未删除
2020-12-6
bug fix& feature 1.
解决内存不释放的问题,采用garbage collector主动释放内存。 >
python中的dict删除某个元素之后并不会直接释放内存,需要用gc.collect()
来主动释放
2. 实现服务器到网页的聊天信息显示(server2web) 3.
实现网页到服务器的聊天信息显示(web2server)
bug 1. 人物移动在网页上显示越来越滞后
2020-12-7
feature 1. 增加诱饵弹的道具显示效果 2.
重构网站的消息机制,构造消息队列MessageQueue
用于系统化的处理从服务器到网站的数据
3. 关键帧减少为5,否则会有明显数据滞后问题
游戏服务器向网站发消息
网站向服务器发消息
MessageQueue
结构
1 |
|
CSGO-RealTimeMap开发记录
https://blog.scubot.com/article/c038/