网站公告 | 全新unity3d 完整学习路线,最强课程配套、服务!详情点击
查看: 2984|回复: 1
收起左侧

[已翻译] 创建一个服务器

[复制链接]

[已翻译] 创建一个服务器[复制链接]

是顾及啊 发表于 2018-3-8 13:42:38 [显示全部楼层] |只看大图 回帖奖励 |倒序浏览 |阅读模式 回复:  1 浏览:  2984

翻译:王成林(麦克斯韦的麦斯威尔 ) 审校:黄秀美(厚德载物)
DSC0000.jpg
在这篇文章中我将介绍如何在你的电脑上创建一个服务器,使你的朋友能够加入到你当前开发的游戏中。在阅读本文前你的电脑中需要有一个编译好的非二进制版本的引擎。所以在开始前,你应该从它的资源库中克隆一个已发行的版本(因为这些版本比较稳定)。如果你在编译引擎中出现了困难,请参考这个视频
在开始前,有必要说一下目前还不能为只用蓝图开发的游戏创建服务器。不过还好,你可以使用编辑器中的“新C++类向导”功能添加一个空白的C++类,从而将一个蓝图项目转换为一个C++项目。另外一定要使用源代码构建编辑器,否则在后面服务器的代码不能成功编译。

创建项目
在使用源代码编译引擎后,打开引擎并创建一个新的第三人称C++项目模板,将其命名为“ServerProject”。然后关闭该项目,在资源管理器中将以下C#文件添加到源文件夹中:
[size=1em]
[size=1em]
[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”(红色的文字是一个命名规则,目的是为了让我们知道该文件只和服务器有关,不会影响我们游戏的代码)。
添加完以上文件后,打开你的游戏的解决方案文件并使用以下配置编译游戏:
·       开发编辑器
·       开发服务器
DSC0001.jpg
如果你使用的是二进制版本的引擎,在开发服务器配置选项中编译过程将失败。
配置项目的地图
我们将创建一个空白地图(我们将其命名为EntryMap),在其中玩家可以输入服务器的IP地址从而与其建立连接。打开你的项目的设置页面,为项目的“游戏默认地图”(该地图为打包游戏运行时载入的第一张地图)指定EntryMap。记得也要为你的服务器设置默认地图(在我的项目中它的名字为NewMap):
DSC0002.jpg
接下来,创建一个新的控件蓝图(我们将其命名为IPWidget)并在它的画布面板中添加一个文本框以及一个按钮。
DSC0003.jpg
然后在Join按钮的OnPressed事件中加入以下逻辑:
DSC0004.jpg
编译并保存你的蓝图。然后打开你的项目的Entry Map,将以上控件添加到视口中:
DSC0005.jpg
现在我们的项目已经完成了,请保存所有内容并打包你的游戏,然后将其发给你的朋友(如果他们没有安装引擎那么他们需要一个安装程序才能玩你的游戏)。

启动服务器
为了启动你的服务器,打开你的项目的二进制文件夹然后找到“ServerProjectServer.exe”。在你的电脑的某处创建一个它的快捷方式,然后在它的属性的目标选项中加入-log标签:
DSC0006.png
这确保了服务器会在命令提示符中打开,以便我们查看服务器当前的各种信息。为了启动服务器,打开这个快捷方式,会出现如下窗口:
DSC0007.jpg
注意服务器正在监听端口7777。为了使玩家能够加入服务器,他们需要输入服务器的IP地址,包括它的监听端口(例如,“xx.xxx.xx.xx:7777”,其中xx是服务器的IP)。如果你使用你的本地电脑作为主机,你需要打开你的路由器的端口,这样玩家才能连接游戏
最后,这是在几名玩家成功连接后服务器的日志:
DSC0008.jpg

【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器

创建一个服务器
+1
2979°C
1
  • kensniper
过: 他们
因分享而快乐,学习以自强!
kensniper 发表于 2018-3-14 18:43:13 显示全部楼层
楼主,这个服务器,测试过承载量吗?
因分享而快乐,学习以自强!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

VR/AR版块|Unity3d|Unreal4|新手报道|小黑屋|站点地图|沪ICP备14023207号-9|【泰斗社区】-专注互联网游戏和应用的开发者平台 ( 浙ICP 备 13006852号-15 )|网站地图

© 2001-2013 Comsenz Inc.  Powered by Discuz! X3.4

1
QQ