您当前的位置: 首页 >  服务器

CloudHu1989

暂无认证

  • 6浏览

    0关注

    89博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

UnityMMO资源整合&服务器部署

CloudHu1989 发布时间:2019-08-12 18:24:53 ,浏览量:6

基于Unity2019最新ECS架构开发MMO游戏笔记10
  • 新的开始
      • 开始之前的准备工作:
    • Skynet服务器部署
      • 编译Skynet
      • 安装Mysql数据库并导入Server/data/里的两个数据库文件
      • 小结
  • 更新计划
    • 作者的话
  • ECS系列目录
    • ECS官方示例1:ForEach
    • ECS官方案例2:IJobForEach
    • ECS官方案例3:IJobChunk
    • ECS官方案例4:SubScene
    • ECS官方案例5:SpawnFromMonoBehaviour
    • ECS官方案例6:SpawnFromEntity
    • ECS官方案例7:SpawnAndRemove
    • ECS进阶:FixedTimestepWorkaround
    • ECS进阶:Boids
    • ECS进阶:场景切换器
    • ECS进阶:MegaCity0
    • ECS进阶:MegaCity1
    • UnityMMO资源整合&服务器部署
    • UnityMMO选人流程
    • UnityMMO主世界

新的开始

官方ECS案例结束了,但是我们对ECS的研究才刚刚入门,对于实际项目的应用还比较匮乏。之前我就在Github上搜索了与ECS相关的项目,精选了其中几个与Unity相关的,最终刷选出大鹏开发并开源的UnityMMO项目。 接下来的笔记将以UnityMMO项目为基石继续下去,并进行大胆拓展,最终会变得不可思议起来! 这里是大鹏的开发笔记,感兴趣的朋友可以先了解一下,我们将深入这个项目进行学习。

开始之前的准备工作:

0下载Unity编辑器(2019.1.4f1 or 更新的版本),if(已经下载了)continue; 1大鹏将项目代码和资源拆分成两部分,所以我们需要分别下载,然后再整合。 命令行下载UnityMMO,打开Git Shell输入: git clone https://github.com/liuhaopen/UnityMMO.git --recurse 下载完成后,继续输入: git clone https://github.com/liuhaopen/UnityMMO-Resource.git --recurse or 点击UnityMMO和UnityMMO-Resource分别下载Zip压缩包 if(已经下载了)continue; 2如果下载的是压缩包,需要先将两个压缩包分别进行解压。然后打开UnityMMO-Resource并把Assets/AssetBundleRes及其meta文件复制到UnityMMO项目的Assets目录里,接下来将UnityMMO添加到Unity Hub项目中; 3用Unity Hub打开大鹏的开源项目:UnityMMO,等待Unity进行编译工作; 4打开项目后,我们发现还需要下载Third Person Controller - Basic Locomotion FREE插件,这个简单,直接在资源商店找到下载导入即可,然后在Assets/XLuaFramework下找到main场景,打开该场景。

Skynet服务器部署

运行main场景后,我们发现这个项目需要连接服务器,毕竟MMO大型多人在线游戏,如下图所示: 在这里插入图片描述 所以我们需要部署服务器,这个大鹏也说明了,他使用的是云风大神开源的skynet服务器框架,详情点击skynet主页。

  1. Skynet是非常了不起的开源框架,很多网络游戏都在使用,所以我也将其加入到学习计划当中了。Skynet只支持Linux服务器,所以我们需要安装虚拟机,作者大鹏使用的CentOS7,我们也安装CentOS7虚拟机来作为服务器。
  2. 安装虚拟机的教程这里跳过不讲,CSDN上有非常多非常详细的教程,按照步骤操作即可。
  3. 安装好CentOS7后,我们需要在CentOS7系统上编译Skynet,可以直接在CentOS7上克隆Skynet的源码,也可以直接将UnityMMO下的Server文件夹发送到CentOS7上。

第3步操作有非常多的实现方式,但是长远考虑,本地操作是不足以取的,毕竟以后有了真正的服务器,还是需要进行远程部署。所以我选择Cmder,这个命令行工具可以让我们在Windows系统下使用Linux命令,不仅如此,速度非常快,得到了众多程序员的一致好评。我们在Cmder官网进行下载,安装后用管理员的身份打开Cmder命令窗口输入:

  scp -r localPath root@serverIP:/root/Server/

将localPath替换成你电脑上Server文件夹所在的本地路径,把serverIP替换成CentOS7服务器的IP地址,回车即可。 需要注意的是Server端的代码其实还依赖本地端Lua/Config、Lua/Common/Util以及Lua/Proto,因此在进行第3步之前,我们需要将这三个文件夹都拷贝到Server文件夹下。 上传完毕后,我们可以开始编译Skynet了。

编译Skynet

我们在CentOS7的命令行终端上输入以下命令:

  cd Server
  cd skynet
  export PLAT=linux
  make

等待编译完成…… 在这里插入图片描述 这个时候编译程序报错,发现权限不够,解决方法很简单,授权即可:

chmod -R 777 Server

这步操作需要cd回到root(或Server文件夹的父节点),更改权限后,先查看一下,如图: 在这里插入图片描述 好了该有的权限都有了,重复最开始的操作即可,但是很快又遇到错误了,如图: 在这里插入图片描述 这个问题很好解决,安装readline 的开发库即可,命令如下:

yum -y install readline-devel

yum install libtermcap-devel ncurses-devel libevent-devel readline-devel

编译成功后,可以打开另外一个终端试试下面两条命令:

./skynet examples/config	# Launch first skynet node  (Gate server) and a skynet-master (see config for standalone option)
./3rd/lua/lua examples/client.lua 	# Launch a client, and try to input hello.

如果都可以运行的话,就没什么问题了,按Ctrl+C可以关闭运行的程序。

安装Mysql数据库并导入Server/data/里的两个数据库文件

安装的部分参考博主猜不透的安装教程即可。 这里说下导入数据库文件,首先在需要在Mysql数据库中创建UnityMMOAccount和UnityMMOGame两个数据库,命令如下:

create database UnityMMOAccount;
create database UnityMMOGame;
show databases; //查看数据库

在这里插入图片描述 这时数据库中已经有这两个库了,我们需要打开另外一个终端,然后cd到Server/data/下,如图: 在这里插入图片描述 接下来在继续输入命令如下:

mysql -u root -p             
关注
打赏
1664096582
查看更多评论
0.1458s