OperationTrident游戏开发总结

项目回顾

这是我第一次参加游戏制作,再次之前没有任何游戏制作基础,也没有使用过c#这门语言,但是在短短40天内完成了一款多人PvE FPS游戏的网络模块,还是挺满意的(过程中也切实体会到了游戏制作的血与泪)

服务端整体架构

因为只是一个mini game,所以搭建的也是最基础的单进程服务端结构。一个进程包括了从数据接收读取的逻辑层,再到将每个数据包抽象成为Player的数据的中间层,最后书写业务代码的逻辑层。

这里写图片描述

该简易的后台架构主要使用到的技术如下图:

这里写图片描述

本来按照该架构,针对客户端发过来的每条信息(Message, 用协议封装),都需要在客户端

客户端网络架构

这里写图片描述

该客户端架构主要使用到的技术如下图:

这里写图片描述

简单总结

本次实训中遇到最大的困难就是前后端解耦的问题。其他几个做客户端开发的同学几乎没有做过网络游戏,在开发游戏的时候都是按照原本开发单机的模式来开发。前几次做同步的时候没办法只能一行一行读前端的代码来帮他们做同步,但是后来我们参考了一下Photon的设计,设计了一个NetSyncController,用来管理需要进行状态同步的脚本,抽象为客户端开发人员只需要思考需要同步哪些变量,当变量改变时采取什么操作这样的问题,而不需要接触Send, Receive之类的函数。

再然后,我们又利用原有的底层和反射机制,开发了一个上层可用的房间内部广播的RPC,开发出来之后很多同步都直接使用RPC进行同步,对于前后端解耦还是很有帮助的。

因为也是第一次做,并不太清楚如何做帧同步,状态同步。实际上我们这次做成了一个服务器只进行广播的由客户端运算的虚伪的“状态同步”,整体架构还是有很多不合理的地方。不过做这样一个小项目还是可以满足需求的。

游戏Github地址:
客户端:https://github.com/HighFlyingFlounder/OperationTrident/
服务端:https://github.com/HighFlyingFlounder/OperationTrident-BackEnd
游戏试玩视频:https://m.bilibili.com/video/av26779709.html?from=timeline

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值