代码已上传在论坛QQ群,需要下载的各位请群(文件居多,无法上传GIT)
2T对战平台UI界面请看
请注意:代码虽然开源了,但你至少必须要会懂基本的C++/C#,多线程并发编写,不然玩不起来!!!!!!
请注意:代码虽然开源了,但你至少必须要会懂基本的C++/C#,多线程并发编写,不然玩不起来!!!!!!
请注意:代码虽然开源了,但你至少必须要会懂基本的C++/C#,多线程并发编写,不然玩不起来!!!!!!
重要事情说三遍!!!!!
本项目编译流程:
需具备:最好VS2022 带C++/C#工作负载,
后端服务器用的是C++ spdlog做log 多线程TCP,每次只链接10个Client,可以自己设置数量.每次API请求为加密json数据,需要使用0X7E9FB开头DLL调用解密函数解密,加密/解密Key可以自己设置,项目为Dll1(好像是这个名词,现在没有电脑).2T开头的C++项目为对战平台的简配Match系统.需要配合宝塔使用,Client链接url获取Matchinfo.
主要对战平台客户端使用C#/WPF为主要界面设计,通过创建Json格式经0X7E9FB加密DLL发送给SERVER完成交互.在后端代码中,我仅仅完成对房间创建、玩家进入\退出房间、房间内消息做了事件,更多事件受于甲方跑路停止开发.现由子项目-联合社区对战平台继续完成技术迭代
服务器1号:Windows操作系统,搭配Mincraft_Socket_TCP_Server,2T_Socket_Room_Server项目完成用户登录及其注册、用户匹配
注:受甲方当时选择技术框架问题:多核性能无法打开,请各位自行升级多线程框架以完成多用户并发I/O.
服务器2号:Windows操作系统,搭配smartfoxserver.完成用户Info.
数据库:Mysql,使用前请百度C#/C++连接Mysql数据库字符串配置.
此代码开源原因为:当时框架真的太乱了,我不好继续维护,随后创建Public Community将把第三方对战平台推向对高可用性、高拓展、高性能等类一线平台.
对于后期建议开发者可以向以下方向发展:
第一个:匹配系统
匹配系统是一个对战平台必须具备的功能之一,可以直接影响整个平台用户群体.
此项目的匹配系统写的为DEMO形式,无法完成实时匹配人群数量适配,必须要多人同时在线匹配才能保障运作(在线匹配人数:20+)
在这里我建议各位用:
贝叶斯推断,每秒根据数据库存的玩家Skill,匹配玩家,游戏后结算.只有一个条件概率的朴素贝叶斯,如果有多个条件概率就会构成贝叶斯网络.
代码实现:首先用对手的胜率,和玩家的胜率(先验概率,这个先验概率存在数据库里),列出一个长长的概率推理图,用高斯贝叶斯推断在匹配了对手和玩家的情况下,玩家的胜率(后验概率)。高斯贝叶斯就是假设随机变量是正态分布,用正态分布计算后验概率
技术文档:贝叶斯推断匹配系统
高斯代表玩家水平(Skill)正态,μ平均值 σ不确定性。然后Predict出0.0-1.0 从玩家池里找到两个最接近0.5的 匹配上.
第二个用户系统:
这里可以直接使用steam的WEBAPI,短时间内收集到大量的用户基本信息,可以直接将Steam长ID作为平台的门槛,防止小号捣乱.
最后欢迎技术流进群提出更多意见,搭建遇到问题可以找我,我会全力提供解答.