一年多前撸过1个小霸王插件,不过因为是单机版无奈联机,交互性不够。刚好最近看到qq堂下线的新闻,为了补救之前的遗憾,利用假期工夫参考这品种炸弹人模式开发了一个能够局域网联机对战的moba游戏,给大家工作之余提供一个可能和小伙伴一起愉悦身心的工具,间接晋升大家应用vscode的开发效率。
次要目标 使vscode放松身心、晋升效率、加强算法程度的能力进一步加强
装置
在vscode 插件市场搜寻alphabe-war点击装置即可
启动
装置胜利后点击左侧G图标,进入游戏列表界面
该界面有栏形成
- ROOM LIST 为房间界面展现以后局域网中正在期待开始的游戏,鼠标hover到该栏有 + 按钮创立游戏。第一次创立须要先输出玩家名称
- AI SCRIPT LIST 为操作脚本界面,能够自在编辑脚本管制玩家行为
创立游戏
在ROOM LIST点击 + 创立后,进入房间界面
- 玩家进入且全副为筹备状态,房主点击开始游戏启动(游戏界面图上面附有一张动静的gif,能够稍等加载看动态效果)
操作形式
- 手动模式 该模式通过上、下、左、右管制方向,空格管制埋雷;
- 脚本模式 通过编写js脚本管制玩家进行游戏。目前提供了以后游戏所有存在对象的以后状态和5种行为操作玩家游戏
游戏指标
两方队伍通过毁灭字符怪或者对方获取字符,率先抢到HELLO WORLD 所有字符的一方获胜,游戏右侧为以后状态栏。别离展现 Team1和Team2的指标字符,和玩家以后获取的字符。
游戏对象
- 字符怪 被炸后掉落一个字符,每15秒在地图空白点中随机新增两个
- 一般怪 每15秒在地图新增1个,碰撞能够杀死玩家,获取字符后可变成字符怪
墙
- 一般墙 能够炸碎
- 硬墙 不能炸碎
- 挪动墙 能够挪动,用来格挡怪物或者挡住敌方玩家
- 工夫墙 倒计时,玩家被怪物碰撞后回到出世点位
- 道具
雷长度加强 获取后爆炸加强 - 玩家 玩家分为两队,能够通过埋雷毁灭字符怪、拾取字符。玩家死亡会掉落一个字符,且回到出世点位,限度5秒后
渲染形式
游戏提供两种展现形式,可按爱好切换
- 中文字符【默认】
- ascii模式
技术架构
该插件次要分为服务端和客户端两局部。游戏主逻辑在服务端中运行,定时将以后游戏数据发送给客户端渲染。
服务端: 寄生于vscode中,通过webscoket与客户端做数据交互。也能够独自做成node服务部署。
客户端: 客户端通过vscode的webview加载本地html的形式运行,通过canvas的一些简略的api渲染没有依赖任何引擎,服务端+客户端+赞叹码图片整个插件打包只有900多k。
TODO 目前梳理的一些待欠缺的点,后续有工夫再加,或者有人感兴趣的话把代码丢进去一起保护
- 地图编辑性能 没有地图编辑性能,只有一张固定的图,比拟干燥。间接通过数组批改地图效率也较低
- AI模式 目前脚本1秒钟调用一次,对单次行为调用没有做限度
- 游戏道具欠缺 道具过于繁多,目前只有一个加强雷的长度的道具
- 游戏渲染优化 比方玩家或者怪物死掉后,无替换只有地位变动,比拟僵硬
- 断线重连 目前没有做断线重连,一方敞开后无奈再次进入
- 服务端客户端数据交互方式优化
发散
vscode 齐全能够作为一个休闲娱乐的平台来应用,比方一些棋牌,益智的小游戏齐全能够移植到其中。有趣味的小伙伴,能够试试整合比方五子棋、象棋、地主+局域网联机,能够将工作中一些碎片化工夫与共事增进交换,一起放松身心,缩短职业生涯。
反馈
如果发现了任何的bug或者有任何倡议, 请提交 issues to 到GitHub Repo https://github.com/gamedilong/alphabet-war. 或者能够间接邮件到 1104238614@qq.com