Networking 多人在线游戏之如何测试

From Epic Wiki

NOTE : WIP, don't delete for this moment, please. Thanks :) 文档编写过程中

概述

Unreal Engine中开发网络游戏极为容易,但将C/S同置于一个项目,也许对于很多熟悉编写独立C/S的开发者来说比较不适应。将通过本教程介绍常见的几种多人游戏测试方法。 示例项目:Blueprint Third Person Template

服务器类型

在次之前先简单介绍UE4中两种服务器类型:

  • Listen-Server :Listen-Server 表示玩家
  • Dedicated-Server :与我们常见的无异


新建项目并运行测试

Ue4 network how to test 01.png

编辑器(PIE)中运行

点击Play右侧的小三角,现在我们主要关注:

Ue4 network how to test 02.png

Numbers of Clients : 当我们指定的客户端数量超过1个时,就表示我们想运行多人游戏了,这里最大数量是64,也就是最多支持64人。 Run Dedicated Server: 勾选表示运行独立服务器,不选择则运行Listen Server

Ue4 network how to test 03.png

点击Play就可以了看到立即实例化两个角色出来了。

Ue4 network how to test 04.png

Ue4 network how to test 05.png

其他: 根据需要,可以点击Advanced,模拟客户端的窗口的位置与大小。

Ue4 network how to test 06.png

虽然PIE测试很简单,但有些情况下PIE并不能满足我们的需求,比如说我们在测试另一个玩家开火的声音,或者看另一个玩家蹲下被爆头的效果等等至少需要两个人才能完成测试的条件下,PIE就难以满足。

Ue4 network how to test 07.png

以Launch方式运行

首先抱歉的是,我不知道该如何命名这个运行方式。

在你的编辑器也就是UE4Editor.exe目录下创建 分别运行客户端、服务端的快捷方式, 右击快捷方式, 加上参数,客户端很简单:127.0.0.1 -game - 示例: C:\UnrealEngine\4.2.1\Engine\Binaries\Win64\UE4Editor.exe D:\Project\Unreal\4.2\MyTPS\127.0.0.1 -game

服务端 : Listen Server: Example_Map?listen -game - 示例: C:\UnrealEngine\4.2.1\Engine\Binaries\Win64\UE4Editor.exe D:\Project\Unreal\4.2\MyTPS\MyTPS.uproject Example_Map?listen -game

Dedicated Server : <MapName> -server -log - 示例: Map5D -server -log

为什么要使用这种方式运行? 这是最接近编译结果的方式,你可以多人联机测试


以发布方式运行

发布游戏,我们需要打包游戏资源,编译游戏代码。如果你是刚刚开始学习UE4,这边的资料可能 有些繁杂。

UE4是开源的,就目前而言也是不成熟的,大部分情况下我们使用编译过的编辑器来工作, 不成熟导致我们在从编译好的编辑器下打包游戏时,只有DebugGame/Development/Shipping三 个选项,但没有编译客户端还是服务器的概念。

所以想要以发布的方式运行多人游戏,在本文里只介绍使用Listen Server,如果对如何打包 Dedicated Server感兴趣,可以看看我的另外一篇博文: Unreal Engine 4 Packaging与Cooking游戏项目

总结

联系我: