UnityMMO资源整合服务器部署
基于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主页。
- Skynet是非常了不起的开源框架,很多网络游戏都在使用,所以我也将其加入到学习计划当中了。Skynet只支持Linux服务器,所以我们需要安装虚拟机,作者大鹏使用的CentOS7,我们也安装CentOS7虚拟机来作为服务器。
- 安装虚拟机的教程这里跳过不讲,CSDN上有非常多非常详细的教程,按照步骤操作即可。
- 安装好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 Servercd skynetexport PLAT=linuxmake
等待编译完成……
这个时候编译程序报错,发现权限不够,解决方法很简单,授权即可:
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 < ./UnityMMOAccount.sql #还原数据库
mysql -u root -p < ./UnityMMOGame.sql #还原数据库
我们再切换到之前创建数据库的终端,查询数据:
数据库已经有数据了,切换另外一个终端,cd到Server文件夹,输入命令:
./run.sh
如图,服务器终于跑起来了!
小结
这一篇的流程大体如下:
主要的难点在于部署服务器,不过遇到的问题都可以搜索到解决方案,可能还有一些遗漏的地方,请大家做补充。
更新计划
作者的话
如果喜欢我的文章可以点赞支持一下,谢谢鼓励!如果有什么疑问可以给我留言,有错漏的地方请批评指证!
如果有技术难题需要讨论,可以加入开发者联盟:566189328(付费群)为您提供有限的技术支持,以及,心灵鸡汤!
当然,不需要技术支持也欢迎加入进来,随时可以请我喝咖啡、茶和果汁!( ̄┰ ̄*)
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主世界
UnityMMO资源整合服务器部署相关推荐
- Tomcat 动态资源服务器部署及应用
Tomcat 动态资源服务器部署及应用 Java 2 EE 计数体系包含如 Serverlet , JSP , JMX 等等. 以OpenJDK为例,当前比较常用的有1.6.0.1.7.0.1.8.0 ...
- F5 Networks数据中心资源整合解决方案
数据中心一直是重要的企业资产,也是IT用以保护.优化和发展业务的战略性重点机构.但是,传统数据中心正在消耗大量的成本.能源和空间,而且日益膨胀.同时,传统数据中心的应用部署都采用烟囱式架构,每一个应用 ...
- 网站服务器部署注意事项,服务器部署改云部署注意事项
服务器部署改云部署注意事项 内容精选 换一换 使用华为云提供的公共镜像制作私有镜像时,您需先购买云主机等云资源时镜像选择公共镜像.云服务器类型建议统一选择"s3 (通用计算型)", ...
- 服务器部署docker
服务器部署docker docker简介## 可以把docker是一个容器,可以让开发者将自己的项目部署到这个容器中,最常用的场景是将自己的后端项目部署到服务器的时候会将其打入docker镜像中,可以 ...
- linux部署tomcat项目404_一个tomcat下部署多个项目或一个服务器部署多个tomcat
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] ♪ 点击上方绿标 收听一个tomcat下部署多个项目或一个服务器部署多个tomcat 最近需要把两个项目同时部署到服务器上,于是研究了一下 ...
- 一步步实现SDDC--多角色服务器部署
实验摘要: 1>创建一台虚拟机 2>虚拟机安装VMware Tools(针对Windows操作系统) 正文: 通过之前的两篇文字,相信各位已经了解ESXI服务器的部署和基本配置. 在今天的 ...
- HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)
这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...
- Linux服务器部署常用命令
Linux命令大全 前言 在日常开发中我们会做一些服务器部署的工作,对于开发来说,运维部署并不是我们的专项:有些命令不是经常使用,很快就会忘记:在这总结一下日常部署时常用的一些运维命令. 文件操作 t ...
- java服务器项目,java项目服务器部署
java项目服务器部署 内容精选 换一换 硬件要求如表1所示.操作系统要求如表2所示.如果是全新安装操作系统,可选择"Minimal Install"安装方式并勾选Developm ...
- 搭建前后端分离主流项目完整步骤——在线教育系统(阿里云服务器部署上线)
前言: 需要源码评论或私我 项目技术栈如下图所示: 本次博客分前后端+部署服务器三个步骤来写 先来看看实现效果: 在线教育系统完整三步骤 前言: 一.后端技术栈 1.ssm+mysql: (1)map ...
最新文章
- WCF+Nhibernate 序列化的问题。
- 前端总线,外频及单位GT/s,MHz区别
- 阿里重组AI实验室的背后主因,马云也无奈
- JavaScript 兼容新旧版chrome和firefox的桌面通知
- 从coding走向管理
- mysql开启binlog启动慢_mysql的binlog和slow_log慢日志
- [ERROR] org.testng.TestNGException:Cannot find class in classpath:
- python交叉编译的配置 脚本怎么写_如何写一个简单的脚本并配置
- 图像处理基础系列-01
- 计算机主机爆炸,刚装的PC:开机使用突然爆炸!竟是电源惹的祸
- python列表解析,生成表达式(一分钟读懂)
- JDK中的SPI和Spring中的SPI
- 精灵五笔 优化指南【原】
- ARPG游戏设计制作随笔
- UART BootROM
- Maven 开 发 规 范
- 这是你们要的临时接收短信的虚拟手机号
- UVA - 10286
- CodeM美团2018初赛A轮 题目一
- Python math.degrees() 方法