35%===--------
目标
开发一款多人联机的坦克世界大战游戏
参考
计划
🚧局域网联机模式
- 计划对UnityNetWork进行包装,
基于UnityNetWork实现局域网联机
- 一号计划废弃,重新计划为:
- 服务器使用UDP广播,客户端接收UDP后选择与其建立连接
- 服务器关于数据库部分在局域网中不需要,可以根据是否是局域网联机而选择忽视这一部分
😱目前困境: 不会使用UDP广播,具体是指不会UDP接收广播,没有找到相关资料
🏆登录注册
- 🔗简单的在Mysql中建立用户表
操傻逼Navcat过期了,图片稍后补上
建立 账户表
玩家表
- 账户表仅仅记录玩家账号和密码
- 玩家表记录玩家账号和游戏内的信息
- 🔗简单的登录注册
使用SQL语句添加账户
数据
此处简单的防止SQL注入,使用敏感字符剔除的方式,对用户输入的字符中检测SQL命令,有SQL命令判断为敏感字符需要重写输入
- 🔗异地登录踢出到登录界面
🏆游戏大厅与游戏房间
游戏大厅里可以有很多房间
注意:客户端不包含任何逻辑!!
客户端仅仅获取服务器的信息进行显示
- 🔗计划展示拥有的坦克在此页面
用户可以拖动该视图对坦克进行观看
🏆基本游戏逻辑
游戏以击败所有敌方单位为目标,通过攻击方式摧毁地方单位,获得本局比赛胜利
游戏所有运算均在服务端进行,比如炮弹命中后扣血
🏆物理
- 🔗😱 Unity的物理交互有点傻逼,通过挤压碰撞体可以使得物体弹飞
方案:
- 将墙壁摩擦设置为0
- 不使用Unity的物理引擎
- 使用速度驱动+物理检测
- 斜坡检测
- 模拟重力+抛物线模型
- 🔗😱 坦克之间的碰撞同样如此
🏆移动逻辑
在当前的的移动逻辑中 前 后 坦克可以产生位移
左右均为旋转坦克,但是炮台也随坦克
😱此操作太傻逼,不符合传统坦克移动违和感太强,计划左右旋转炮台不产生位移
方案:
- 炮台正面位置为摄相机正方向
- 旋转坦克身时,炮台自动复位
🏆视角
目前视角注视坦克,相机只注视坦克前方
😱计划修改为视角随鼠标移动,相机注视屏幕中心
- 视角可变
- 光标位置非常奇怪
- 不是固定在屏幕中心
- 大概是在坦克炮台的正前方
🏆攻击方式
攻击详细方案见 4-物理检测 | AncientElement (gitee.io)
目前只有火炮攻击,通过火炮对敌方造成伤害
- 🔗😱攻击按键变化为鼠标左键
🏆特效
- 🔗爆炸效果
- 🔗燃烧效果
😱游戏内UI
- 🔗用户单位信息
- 🔗用户单位游戏内信息
- 🔗敌我对抗信息
- 🔗小地图信息
- 🔗交战信息
- 🔗资源道具信息
- 🔗游戏系统帧率、延迟信息
UI优化
😱目前UI皆为白板,非常难看
说实话不想拼面板,没有好看的UI,拼UI是最低端最傻逼的事情
尝试使用雷火UX简化流程
目前进度
登录注册模块
使用MySql数据库,服务器使用C#语言编写
游戏大厅
游戏中
–
–