经营模拟类游戏服务器源码-Unity射击游戏源码_游戏服务器开源引擎GoWorld教程-(一)安装与运行

GoWorld是一个分布式开源Go语言游戏服务器引擎。 它采用了近年来流行的Entity/Space(实体/空间)的逻辑具体结构,适用于MMORPG、RTS、射击等类型的游戏。 在逻辑层中,Entity(实体)用于表示场景中的玩家、怪物、NPC等对象,Space(空间)用于表示游戏中的场景。 实体可以在不同场景之间跳转。 这种表示方式使得游戏的网络通信方式更加统一,并且可以在框架层做更多的功能。 顶层逻辑不需要关心数据同步,可以提升游戏开发效率。 GoWorld采用分发器作为中间转发层,使得整个服务器结构非常简单,且易于扩展。

文/罗佩玉

自2017年发布第一个版本以来,GoWorld的作者Seis在Github上获得了数千个Star。 笔者目前正在寻找用Go语言开发游戏服务器的可行性经营模拟类游戏服务器源码,借鉴GoWorld的思路,趁机写一篇教程。 本教程将通过一个小例子来讲解如何使用GoWorld,稍后会分析源码。

github地址:github.com/xiaonanln/go world GoWorld结构图

下图是goworld的结构图,可以看出它会启动三类进程。 其中调度程序和门是固定程序,只有游戏需要我们自己编写。

客户端连接到gate,负责接收和转发网络消息; 调度程序负责消息分发; 游戏是游戏逻辑所在以及实体/空间活动所在。

安装

学习引擎的前两个步骤必须是先安装它,然后运行它。

有些Go库需要连接互联网才能下载,但它是Google出品的语言,国内互联网无法顺利访问,所以需要一些方法来安装Go应用程序。 这里会详细写centos下的安装过程,其他系统的安装过程类似。

安装GoWorld项目后经营模拟类游戏服务器源码,可以使用命令行goworld xxxx进行操作,例如使用goworld start Examples/chatroom_demo启动聊天服务器。

1.安装go语言

百胜安装去

2.设置go的路径并添加执行路径

vim ~/.bashrc

添加两行(假设go语言安装在默认的/root/go中)

导出 GOPATH=/root/go

导出 PATH=$PATH:/root/go/bin/

3、安装goworld所需的依赖包

位于等前面的依赖包可以用 go get -d 来安装,非常方便。

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

去获取-d

经营模拟类游戏服务器源码-Unity射击游戏源码_游戏服务器开源引擎GoWorld教程-(一)安装与运行

去获取-d

去获取-d

去获取-d

去弄

4、手动安装依赖包sys/unix

一些依赖包所在,国内网络很难访问,所以很难用go get来安装。 由于大多数软件包都可以在 github 上找到源代码,因此您可以下载代码,然后自动安装。 具体命令:

cd /root/go/src/http://golang.org/x

克隆

cd 系统/unix

去安装

5.安装goworld

去获取-d

cd /root/go/src/http://github.com/xiaonanln/goworld

去安装

如果在安装goworld的过程中提示超时或缺少依赖包,只需按照之前的方法安装依赖包,将缺少的包安装即可。 只有安装了所有依赖包才能顺利安装GoWorld。

6. 测试

经营模拟类游戏服务器源码-Unity射击游戏源码_游戏服务器开源引擎GoWorld教程-(一)安装与运行

安装成功后,执行goworld命令,应该看到如下图所示的提示,说明安装成功。

运行聊天室示例

GoWorld提供了两个例子,聊天室是最简单的,我们来尝试运行一下。 聊天室示例位于 goworld 目录下的 example/chatroom_demo 中。 它只包含4个go文件(如下图所示),以后可以模仿示例编译自己的游戏逻辑。

1.安装依赖包

由于聊天室示例使用了一些软件包,因此需要安装它们。

#使用go get手动安装以下包

去获取-d

去获取-d github.com/xtaci/kcp-go

#手动安装crypto/blowfish包

cd /root/go/src/http://golang.org/x

克隆

cd 加密/河豚

去安装

当然,你也可以在后续的编译过程中查看错误信息,看看缺少哪些以及需要安装哪些。

2. 编译

进入goworld目录(cd /root/go/src/http://github.com/xiaonanln/goworld),执行以下build命令进行编译。

goworld 构建示例/chatroom_demo

执行成功后,您应该在example/chatroom_demo目录下看到一个名为chatroom_demo的二进制文件,它是编译后形成的可执行文件。

3. 跑步

执行start命令运行示例。

goworld 启动示例/chatroom_demo

服务器启动后,应该可以看到如下图所示的提示,表明调度程序、游戏和门都已打开。

如果执行status命令,可以查看服务器的运行状态,可以看到当前有3个进程打开。

goworld 状态示例/chatroom_demo

如果执行stop命令,则可以关闭服务器。

goworld停止示例/chatroom_demo

至此,游戏服务器已经成功运行。 由于聊天程序的客户端是用cocos编译的,所以本文不打算介绍cocos相关的内容。 读者可以安装cocos并自行测试。 下一篇文章将介绍第二个示例如何运行,包括客户端和服务器的构建。 第二个例子稍微复杂一点,是一款射击游戏,使用Unity作为客户端。

推荐一些资料

经营模拟类游戏服务器源码-Unity射击游戏源码_游戏服务器开源引擎GoWorld教程-(一)安装与运行

“同步”也是网络游戏开发的核心话题。 球员的位置和轮换需要与其他球员同步。 但由于网络条件不好,会出现不同步、卡顿的情况。 作者直播的《网络游戏同步算法》揭示了做好同步的方法,欢迎收听。

网络游戏同步算法

作者编写的《Unity3D网络游戏实战(第二版)》是一本专门介绍如何开发多人网络游戏的实用书籍。 它将教你如何构建网络框架和制作小项目。

系列文章

罗培宇:游戏服务器开源引擎GoWorld教程-(一)安装与运行

罗培宇:游戏服务器开源引擎GoWorld教程-(二)Unity实例双端联调

罗培宇:游戏服务器开源引擎GoWorld教程-(三)手写聊天室

罗培宇:游戏服务器开源引擎GoWorld教程——(四)制作多频道聊天室

罗培宇:游戏服务器开源引擎GoWorld教程-(五)登录、注册与存储

罗培宇:游戏服务器开源引擎GoWorld教程-(六)移动同步与AOI

罗培宇:游戏服务器开源引擎GoWorld教程-(七)源码分析、启动流程及热更新

罗培宇:游戏服务器开源引擎GoWorld教程-(八)之门源码分析

罗培宇:游戏服务器开源引擎GoWorld教程——(九)源码分析的Dispatcher

罗培宇:游戏服务器开源引擎GoWorld教程-(十)源码分析之实体

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 游戏源码 经营模拟类游戏服务器源码-Unity射击游戏源码_游戏服务器开源引擎GoWorld教程-(一)安装与运行 https://www.wkzy.net/game/169210.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务