【GAD翻译馆】创建一个服务器
翻译:王成林(麦克斯韦的麦斯威尔 ) 审校:黄秀美(厚德载物)
在这篇文章中我将介绍如何在你的电脑上创建一个服务器,使你的朋友能够加入到你当前开发的游戏中。在阅读本文前你的电脑中需要有一个编译好的非二进制版本的引擎。所以在开始前,你应该从它的资源库中克隆一个已发行的版本(因为这些版本比较稳定)。如果你在编译引擎中出现了困难,请参考这个视频。
在开始前,有必要说一下目前还不能为只用蓝图开发的游戏创建服务器。不过还好,你可以使用编辑器中的“新C++类向导”功能添加一个空白的C++类,从而将一个蓝图项目转换为一个C++项目。另外一定要使用源代码构建编辑器,否则在后面服务器的代码不能成功编译。
创建项目
在使用源代码编译引擎后,打开引擎并创建一个新的第三人称C++项目模板,将其命名为“ServerProject”。然后关闭该项目,在资源管理器中将以下C#文件添加到源文件夹中:
1 2 3 4 5 6 7 8 9 10 11 12 | using UnrealBuildTool; using System.Collections.Generic; [SupportedPlatforms(UnrealPlatformClass.Server)] public class ServerProjectServerTarget : TargetRules { public ServerProjectServerTarget(TargetInfo Target) : base (Target) { Type = TargetType.Server; ExtraModuleNames.Add( "ServerProject" ); } } |
确保将该文件保存为“ServerProjectServer.Target.cs”(红色的文字是一个命名规则,目的是为了让我们知道该文件只和服务器有关,不会影响我们游戏的代码)。
添加完以上文件后,打开你的游戏的解决方案文件并使用以下配置编译游戏:
· 开发编辑器
· 开发服务器
如果你使用的是二进制版本的引擎,在开发服务器配置选项中编译过程将失败。
配置项目的地图
我们将创建一个空白地图(我们将其命名为EntryMap),在其中玩家可以输入服务器的IP地址从而与其建立连接。打开你的项目的设置页面,为项目的“游戏默认地图”(该地图为打包游戏运行时载入的第一张地图)指定EntryMap。记得也要为你的服务器设置默认地图(在我的项目中它的名字为NewMap):
接下来,创建一个新的控件蓝图(我们将其命名为IPWidget)并在它的画布面板中添加一个文本框以及一个按钮。
然后在Join按钮的OnPressed事件中加入以下逻辑:
编译并保存你的蓝图。然后打开你的项目的Entry Map,将以上控件添加到视口中:
现在我们的项目已经完成了,请保存所有内容并打包你的游戏,然后将其发给你的朋友(如果他们没有安装引擎那么他们需要一个安装程序才能玩你的游戏)。
启动服务器
为了启动你的服务器,打开你的项目的二进制文件夹然后找到“ServerProjectServer.exe”。在你的电脑的某处创建一个它的快捷方式,然后在它的属性的目标选项中加入-log标签:
这确保了服务器会在命令提示符中打开,以便我们查看服务器当前的各种信息。为了启动服务器,打开这个快捷方式,会出现如下窗口:
注意服务器正在监听端口7777。为了使玩家能够加入服务器,他们需要输入服务器的IP地址,包括它的监听端口(例如,“xx.xxx.xx.xx:7777”,其中xx是服务器的IP)。如果你使用你的本地电脑作为主机,你需要打开你的路由器的端口,这样玩家才能连接游戏。
最后,这是在几名玩家成功连接后服务器的日志:
【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。