这个项目目前由于各种原因已经结束了,最终没能做到上架那一步,不过RTS的所有坑都踩了一遍。本人是RTS游戏爱好者,这篇文章先泛泛谈一下关键技术问题的遇到的大坑。后面有空再补上细节和代码。
一、最重要的问题是网络同步,没有之一
对于RTS,最重要的就是网络同步问题,无法回避,影响全局,甚至决定成败。
0)网游?局域网游戏?
这个问题必须首先回答,如果你选择了网游,首先扪心自问:有没有足够的启动资金。
如果没有足够的启动资金,而又决定做网游RTS,那么这条道路是极其艰辛的,具体看下面。
1)状态同步/帧同步/指令帧同步/网络状态指令帧同步的选择
同步方式:本地玩家的数据和对战玩家的数据以怎样的形式进行同步。
①状态同步:每隔一段时间,如100ms,将所有玩家的所有单位的所有数据(坦克、兵、飞机的坐标、血量、状态和其他一些参数)同步(设置为同一个数据)。
那么这个大家都认同的数据从哪里来?如果是局域网游戏,并且不care反作弊,那么选择其中一个玩家作为主机,其余玩家每次同步从主机这里取数据完成同步就OK.
具体实现:说起来挺复杂,但是在Unity 上有个叫做Mirror(镜像)的插件,只要在主机端添加添加几个组件,设置为主机ÿ