admin管理员组

文章数量:1619729

2019年01月20日草稿

0x00 项目思路

注:作者不是专业的游戏开发者,只是按照自己思路进行此项目开发,如有实际更好的方案欢迎指出共同进步。目的如下:

  1. 让读者熟悉MQTT使用方法
  2. 验证PVP网游帧同步方式
  3. 为AI人机算法作铺垫
    此项目只用了3天左右的时间,得利于MQTT和Unity3D这两个很适合快速原型开发的好东西。

0x01 准备工作

  1. 消息中间件使用MQTT
  2. 逻辑服务端使用Java编程
  3. 游戏客户端使用Unity3D/C#开发
  4. 游戏场景和人物模型可以去某宝几块钱买到,或者使用Unity3D自带资源

0x02 搭建MQTT服务器

这里使用EMQ作为MQTT服务器 官网 http://www.emqtt/
下载对应系统的版本,bin目录下命令行启动即可
EMQ 服务启动:

emqttd start

EMQ 服务停止:

emqttd stop

EMQ 2.0 消息服务器默认占用的 TCP 端口包括:

端口号说明
18831883 MQTT 协议端口
8883MQTT/SSL 端口
8083MQTT/WebSocket 端口
8080HTTP API 端口
18083Dashboard 管理控制台端口

启动好后浏览器打开 http://localhost:18083/ 可进入后台控制面板,默认登录用户名: admin, 密码: public
里面有个Websocket客户端工具方便调试

0x03 Unity3D客户端连接MQTT服务器

Unity3D用C#来开发,引用mqtt的客户端dll库即可,这里用的是M2Mqtt.dll

在unity项目目录下的Assets目录下新建 Plugins 文件夹,并将生成的 M2Mqtt.dll 和 M2Mqtt.pdb连个文件放入其中即可完成导入。

需要注意的是由于Unity Mono的.NET版本问题上文提供的dll库用不了,详情可参考《vs2017导入m2mqtt.dll使用mqtt协议开发unity3d客户端》
这里提供一个Unity3D可用的M2Mqtt库 点击下载 M2Mqtt_Unity3D

C# MQTT客户端编程可参考我的另一篇文章:《MQTT协议 C#客户端》

0x04 Java服务端连接MQTT服务器

0x05 客户端连接管理

php登录、session持久化同步

服务器管理连接,Redis管理连接

0x06 自定义消息通信协议

0x07 登录并获取用户信息

网页+mqtt形式

0x08 房间组队逻辑实现

红蓝队

0x09 队友和全体消息逻辑实现

0x10 人物行走同步逻辑实现

本文标签: 英雄联盟MQTTUnity3d