
真人CS对战平台,随时随地玩占点/爆破/吃鸡!
简介
传统真人CS系统只能互相对射,而且局限在专业场地内,逐渐变成小众运动。本项目开发支持自定义游戏模式的真人CS对战系统,搭配Unity app和服务器,支持占点,爆破,吃鸡等多种模式。
简介:传统真人CS系统只能互相对射,而且局限在专业场地内,逐渐变成小众运动。本项目开发支持自定义游戏模式的真人CS对战系统,搭配Unity app和服务器,支持占点,爆破,吃鸡等多种模式。开源协议
:CC BY-NC 3.0
描述
注:本项目仅适用于安卓手机,鸿蒙手机,苹果手机不适用。
视频链接:
主项目发布视频:
【开源】自制真人CS对战平台,在现实世界玩吃鸡!
联机模式展示(因天气原因只能在室内仿真展示了)
自制真人吃鸡平台,联机自定义地图与自定义模式展示
项目简介
传统的真人CS-般是将用户聚集到体育场馆或者深山老林的专业场地中游玩。存在地点偏僻;玩法单一:流程繁琐,门槛高等诸多限制,普及率不高。我们希望将FPS游戏里已经经过市场检验的趣味玩法融入到真人CS中,以满足青少年群体日益增长的线下社交需求。
举个例子:假如你和你的室友要在你的学校玩,你可以将学校西门设置为红方基地,学校东门设置成蓝方基地,然后将主楼、体育场分别设置为A点和B点。那么你们可以达到在真人CS里体验类似CSGO里的爆破模式的玩法
再举个例子,你可以将你的学校校园设置成一整个大地图,然后玩吃鸡模式,我们的系统就会维护一个逐渐缩小的毒圈,而且这个毒圈将要往哪个方向缩小是程序随机决定的。那么这就达到了在真人CS里玩吃鸡的效果。
别的模式有很多,甚至可以实现出魔兽世界奥特兰克峡谷,战地 2042 的突破模式等,那种特别复杂的机制。我们实现了一套面向对象的基于继承和多态的模式管理代码,只要能想到,就没有做不出来的。
项目有很大的社会意义。首先,项目可以利用自身灵活的优势,盘活社会闲置资源,让真人CS走出专业场地,利用起节假日闲置的校园设施,广场,和过度建造的楼房资源等,让这些本应成为青少年挥洒汗水的场所发挥原有的价值。且可以充分发挥玩家的创造性,玩家可以根据不同的地形自定义游戏内容,达到更好的游玩效果。另外,趣味的玩法有利于引导青少年远离电子游戏,加入体育锻炼,减少近视,提升体质;并且在游戏中提高青少年的团队合作意识。另外,枪战的题材也可对社会尚武精神的培养产生积极作用。(迫真棒读)
项目功能
单机模式
- 枪的操作,如发射,换弹,被击中等信息会实时同步到手机app上。
- 在手机app上显示实时地图,显示实时定位位置。
- 在不联机的情况下可自行组织对战,被击毙后无法发射子弹,可在手机app点击按键来复活。
- 单机模式没有自定义地图和胜负判定功能。
联机模式
- 拥有单机模式的所有功能
- 拥有注册,登录账号等功能。
- 拥有房间管理功能,可创建房间,加入房间,切换队伍等。
- 可以自定义游戏模式,目前可选择:简单模式(即双方对射),夺旗模式,占点模式,吃鸡模式。
- 可自定义游戏地图,选择红蓝双方基地位置,以及目标点位置等。
- 服务器可进行胜负判定,公平公正,拥有战绩记录功能。
原理解析
本项目由以下部分组成:
- 枪械主控板
- 激光接收板(可级联)
- Unity手机app
- 后台服务器
枪械主控板
采用stm32f103c8t6 作为主控芯片,主要完成激光发射,激光接收,换弹等功能。并与手机app通信完成逻辑信息的同步。
该板子直接使用手机USB接口供电即可。并预留了锂电池接口,如果想接电磁铁实现后坐力功能,可以接 12V锂电池供电。
另外,整个板子只有一两个嘉立创扩展库元件,smt价格极低。
激光接收板
采用is0803 载波激光接收芯片,只能接收 200khz载波激光。接收板采用级联形式相互连接,最终连接在主控板上(级联图片见下文)。is0803 的输出信号由 stm32 的 GPIO INPUT处理。
Unity手机app
手机APP的后台程序分为网络管理器、面板管理器、战斗管理器、地图管理器与安卓适配器。手机app面板的显示与隐藏由面板管理器控制,并由战斗管理器提供具体的子弹数、生命值等信息。另外,地图管理器向面板管理器提供瓦片地图进行地图图像显示;安卓适配器通过调用底层的定位api与蓝牙读写api,将经纬度与战斗数据等信息提供给战斗管理器。最后,由网络管理器负责所有与云服务器的通信,完成其他玩家的位置同步和毒圈更新等功能。
游戏后台服务器
项目基于微软.net8.0架构,使用C#语言,遵守面向对象准则设计了服务器平台。服务器负责建立起各个客户端之间的连接,并协助每个用户完成创建与加入房间、对战过程中的逻辑控制等功能。
服务器平台包括网络管理器、用户管理器、房间管理器、数据库管理器等模块。
实物图
这是枪和激光接收器连接的图片,激光接收器连接靠近枪屁股的那个接插件
这是枪和手机,手机连接远离枪屁股的接插件
实地测试
(动态演示请看b站视频)
软件代码
软件代码分成三份,其中嵌入式的如下,完全开源。
Unity的手机app的代码,开源单机模式部分,如下:
手机app联机部分和服务器代码暂时不开源,因为最近形势也不太好,想尝试这套东西能不能跟别人合作创个业。如果能整个技术入股赚点钱就赢麻了。当然我本人对营销和商业兴趣不大,如果没有找到什么合作创业机会,我会直接把app和服务器的代码全部开源出来。
但是,我都会提供编译好的版本,供大家使用:
- 手机app:apk安装包见附件
- 服务器:压缩包在附件,部署教程见附件pdf文档
另外,这两个代码我都是在这本书的基础上学习修改的,这是本非常好的书,如果有兴趣了解Unity联机游戏开发的同学强烈推荐读读。
组装流程
枪
- 首先,如果你是使用的嘉立创经济型smt,需要补充焊接主控板背部的元器件,焊接完成后,将扩展版安装在枪的左壳上,使用螺丝螺母固定,并将扳机和扳机弹簧安装在对应位置,如图:(激光头见下文)
(这个图片说是管制刀具有政策限制,只有打点码才能传上来,就将就看吧,主要注意激光头、扳机和电路板安装位置)
- 然后,将手机夹安装在枪马甲正面上,别忘了手机夹下面的螺母要事先安装好,以免后续拆开重装
-
然后,准备激光头,具体就是找到激光头的 3D打印件,然后使用烙铁将嵌入式螺母嵌入到 3D打印件中,如图。这个需要点手法,参考这个视频:一颗小小的嵌入螺母,让你的DIY设计更优秀_哔哩哔哩_bilibili
-
嵌入后就可以把激光头从前面摁入激光头,大力摁紧,最后拧上螺丝。这是完工后的样子:
- 然后,按照下图将所有元件摞起来,最后使用长螺丝和螺母拧紧。
- 安装完毕,后续需要准备一个连接手机的线,使用xh2.54 4p线与USB OTG线两端剪开自行焊接,线序请参考主控板原理图。如果会使用压线钳,体验更佳,最终效果如图:
(我是使用压线钳做的,如果剪开焊线可能不好控制长度,但长度偏长影响不大)
激光接收器
- 首先将热缩管裁剪出合适的长度
- 然后将热缩管和激光接收板套在绑带的大致位置
- 然后使用热风枪吹热缩管,使其紧缩,完成固定
- 使用xh2.54 4p同向线连接各个激光接收板
- 将激光接收板通过一根 1m长的xh2.54 4p反向线连接到枪上,注意最后连接枪的线必须从激光接收板箭头指向的方向引出!!!!,否则会收不到激光信号
手机app
- 首先安装附件内的apk文件
- 在设置界面打开名为csgiao的app的定位权限,其他权限理论上应该随意,但是锁屏显示权限也推荐打开。
- 安装完毕。
单机模式联合测试
请确认手机app的定位权限放行了。
请确认主控板stm32已经完成了程序的烧录
- 首先将枪插好激光接收板
- 然后将枪插到手机上,如果没问题,枪会上电,能看到枪的LED点亮,激光接收器的LED也会点亮。
- 然后打开手机app
- 如果你的枪正确插在手机上,应该会提示询问是否允许访问stm32 设备,点击允许
- 点击单机模式按钮,进入游戏主界面,理论上,应该地图上的定位位置就是你所在的位置。然后会打印一行字提示你打开USB设备成功。
- 然后你可以尝试操作枪,如发射子弹,换弹,打自己的激光接收器等,子弹和生命值应该会同步到手机app中,并有音效发出。
- 如果USB设备打开失败,先检查枪和手机的连接是否正常,然后可以点击左下角的连接设备按钮,并依次点击初始化-连接-测试按钮进行测试。如果提示未连接枪械之类的,你都可以在左下角的连接设备菜单界面完成重新配置。
- enjoy it
联机模式联合测试
- 按照单机模式的流程打开手机app
- 在开始界面,点击连接服务器,如果自己部署了服务器,将公网ip改成自己的ip地址。
- 注册并登录账号,注意你注册的账号的密码直接瞎取一个 123456789 就行,我目前还不会密码密文存储,所以目前数据库中存的密码就是明文字符串,虽然我不会拿着你的密码干什么龌龊的事情,但是不敢保证没有黑客黑我的服务器,所以有备无患。
- 如果登录成功进入了有AI牢大背景图的主界面,说明你成功了!如果你自己部署了服务器还成功了,别忘了告诉我一声让我高兴一下。
- 然后你可以自定义房间号和房间密码,创建房间,邀请你的朋友加入你的房间。
- 然后你可以选择模式,设计基地位置和游戏地图,地图可以拖动和缩放。如果你不熟悉操作可以看我的视频,有解说。
在下拉框选择模式
这是占点模式的地图示例
这是吃鸡模式的地图示例
- 如果满足开战条件,就可以开战了,如果提示无法开战,一般都是这几个原因:
- 简单模式和吃鸡模式都需要双方队伍都有人才能开战,占点和夺旗模式只要有一个队伍有人就能开战。
- 占点模式需要设置至少一个目标点位置
- 开战时房间内所有人员都需要准备就绪,即打开地图界面(在地图界面只有房主可以设置,房主的设置会同步给所有本房间内的其他玩家)
- 开战时所有人员都需要在己方基地范围内。
- 如果成功开战,enjoy it。对应模式的胜利条件和大家玩fps游戏的常识完全一致,玩就行了。
下图是进入联机模式占点模式对战后的地图:
注意事项
- 注意激光头 3D打印件在选择打印材质的时候,不要选择任何"树脂"材质。因为树脂材质等使用光固化工艺生产的 3D打印件难以埋入嵌入式螺母,特别容易松。经过实测,ABS,PLA等工程塑料是比较好的选择。他们的共同特点是FDM熔融沉积工艺,即用挤出头一层一层从下往上打印的类型,也就是我们最常见到的 3D打印机。
- 手机与枪连接的USB线千万不能随便找一条数据线剪开使用。必须买购物链接里的USB otg线。否则无法通信,甚至无法供电。了解原理请看视频:TODO
- app安装包和编译好的服务器,服务器部署教程等见百度网盘链接
- 嵌入式源码和单机app源码见软件章节的github地址
- 复刻的购物链接见附件
设计图

BOM


评论