基于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 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


如图,服务器终于跑起来了!

小结

这一篇的流程大体如下:

git
scp
make
mysql
./run.sh
下载客户端
整合客户端资源
安装CentOS7
上传服务器
编译Skynet
部署数据库
运行服务器

主要的难点在于部署服务器,不过遇到的问题都可以搜索到解决方案,可能还有一些遗漏的地方,请大家做补充。

更新计划

Mon 12Mon 19Mon 261. ForEach 2. IJobForEach 3. IJobChunk 4. SubScene 5. SpawnFromMonoBehaviour 6. SpawnFromEntity 7. SpawnAndRemove 休息修正更新计划参加表哥婚礼进阶:FixedTimestepWorkaround进阶:BoidExample初级:SceneSwitcher我是休息时间 资源整合 部署服务器 启动流程 登录流程 游戏主世界 待计划 待计划 待计划 待计划 待计划 我是休息时间 待计划 待计划 待计划 待计划 待计划 我是休息时间 读取Excel自动生成Entity 读取Excel自动生成Component读取数据库自动生成Entity读取数据库自动生成ComponentESC LuaFrameWork Skynet DOTS 官方示例学习笔记-----休息-----基于ECS架构开发MMO学习笔记LuaFrameWork学习笔记-----休息-----基于Skynet架构开发服务器学习笔记制作代码自动生成工具总结基于Unity2019最新ECS架构开发MMO游戏笔记

作者的话

如果喜欢我的文章可以点赞支持一下,谢谢鼓励!如果有什么疑问可以给我留言,有错漏的地方请批评指证!
如果有技术难题需要讨论,可以加入开发者联盟: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资源整合服务器部署相关推荐

  1. Tomcat 动态资源服务器部署及应用

    Tomcat 动态资源服务器部署及应用 Java 2 EE 计数体系包含如 Serverlet , JSP , JMX 等等. 以OpenJDK为例,当前比较常用的有1.6.0.1.7.0.1.8.0 ...

  2. F5 Networks数据中心资源整合解决方案

    数据中心一直是重要的企业资产,也是IT用以保护.优化和发展业务的战略性重点机构.但是,传统数据中心正在消耗大量的成本.能源和空间,而且日益膨胀.同时,传统数据中心的应用部署都采用烟囱式架构,每一个应用 ...

  3. 网站服务器部署注意事项,服务器部署改云部署注意事项

    服务器部署改云部署注意事项 内容精选 换一换 使用华为云提供的公共镜像制作私有镜像时,您需先购买云主机等云资源时镜像选择公共镜像.云服务器类型建议统一选择"s3 (通用计算型)", ...

  4. 服务器部署docker

    服务器部署docker docker简介## 可以把docker是一个容器,可以让开发者将自己的项目部署到这个容器中,最常用的场景是将自己的后端项目部署到服务器的时候会将其打入docker镜像中,可以 ...

  5. linux部署tomcat项目404_一个tomcat下部署多个项目或一个服务器部署多个tomcat

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] ♪ 点击上方绿标 收听一个tomcat下部署多个项目或一个服务器部署多个tomcat 最近需要把两个项目同时部署到服务器上,于是研究了一下 ...

  6. 一步步实现SDDC--多角色服务器部署

    实验摘要: 1>创建一台虚拟机 2>虚拟机安装VMware Tools(针对Windows操作系统) 正文: 通过之前的两篇文字,相信各位已经了解ESXI服务器的部署和基本配置. 在今天的 ...

  7. HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

    这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...

  8. Linux服务器部署常用命令

    Linux命令大全 前言 在日常开发中我们会做一些服务器部署的工作,对于开发来说,运维部署并不是我们的专项:有些命令不是经常使用,很快就会忘记:在这总结一下日常部署时常用的一些运维命令. 文件操作 t ...

  9. java服务器项目,java项目服务器部署

    java项目服务器部署 内容精选 换一换 硬件要求如表1所示.操作系统要求如表2所示.如果是全新安装操作系统,可选择"Minimal Install"安装方式并勾选Developm ...

  10. 搭建前后端分离主流项目完整步骤——在线教育系统(阿里云服务器部署上线)

    前言: 需要源码评论或私我 项目技术栈如下图所示: 本次博客分前后端+部署服务器三个步骤来写 先来看看实现效果: 在线教育系统完整三步骤 前言: 一.后端技术栈 1.ssm+mysql: (1)map ...

最新文章

  1. WCF+Nhibernate 序列化的问题。
  2. 前端总线,外频及单位GT/s,MHz区别
  3. 阿里重组AI实验室的背后主因,马云也无奈
  4. JavaScript 兼容新旧版chrome和firefox的桌面通知
  5. 从coding走向管理
  6. mysql开启binlog启动慢_mysql的binlog和slow_log慢日志
  7. [ERROR] org.testng.TestNGException:Cannot find class in classpath:
  8. python交叉编译的配置 脚本怎么写_如何写一个简单的脚本并配置
  9. 图像处理基础系列-01
  10. 计算机主机爆炸,刚装的PC:开机使用突然爆炸!竟是电源惹的祸
  11. python列表解析,生成表达式(一分钟读懂)
  12. JDK中的SPI和Spring中的SPI
  13. 精灵五笔 优化指南【原】
  14. ARPG游戏设计制作随笔
  15. UART BootROM
  16. Maven 开 发 规 范
  17. 这是你们要的临时接收短信的虚拟手机号
  18. UVA - 10286
  19. CodeM美团2018初赛A轮 题目一
  20. Python math.degrees() 方法

热门文章

  1. PDF文件怎么压缩大小
  2. Cortex-M3/M4内核处理器一次中断事件可能产生两次中断问题
  3. log4j2关闭debug日志
  4. xp系统无法访问服务器共享打印机,XP系统无法访问共享打印机解决方案
  5. JAVA怎么给Excel加分页符_Excel插入分页符的方法和步骤
  6. 北航软件工程考研经验总结
  7. spring boot与kafka
  8. android data/app下的文件被误删,系统恢复,怎样恢复被误删除的文件
  9. Intellij IDEA如何恢复删除的文件或文件夹
  10. 内核input子系统之input_event数据上报过程