Developed with Unreal Engine 5.1.0
本工程以射击游戏为模版,做了个延迟补偿的实现演示,如果不知道什么是延迟补偿,建议观看下边的科普篇,想要理解工程源码所实现的算法,可以看硬核篇。
科普篇: 科普向:竞技游戏的延迟与延迟补偿
硬核篇: 硬核向:延迟补偿具体实现算法
已打包好的游戏
链接:百度网盘 请输入提取码 提取码:w7ak
源码:https://github.com/gdxwkzw/LagCompensationDemo.git
WASD移动,左键开枪,按住左Alt键出现光标,松开左Alt键光标消失
~键呼出控制台
常用命令:
open 127.0.0.1 连接本地服务器
open ip:端口 连接专属服务器
exit 退出游戏
以下内容改编自在虚幻引擎中设置专用服务器 | 虚幻引擎5.1文档
-
打开 Server 文件夹,然后找到 [ProjectName]Server.exe。这里,假设它叫做TestProjectServer.exe。
-
右键点击 服务器快捷方式,然后打开其 属性。在其 目标 字段的末尾添加 "-log",然后点击 应用(Apply)。
这样,当我们运行专用服务器时,它将在命令提示符工具中显示日志。
-
双击 快捷方式,启动专用服务器。将打开 命令提示符 窗口,显示输出日志。如果服务器启动成功,你会在底部看到说明启动关卡所需时间的输出。
-
转到 Client 文件夹,然后双击 TestProject.exe。这会在新窗口中启动游戏,并且直接自动跳转到预备地图。可以按~键,然后输入open 127.0.0.1并回车,这样会跳转到服务器的地图。
-
使用 ALT+Tab 离开游戏窗口,然后运行 TestProject.exe,启动游戏的第二个实例。然后继续按上述输入open指令,跳到服务器的地图,如果成功,你将在你启动的窗口中看到玩家。你还可以检查服务器日志,以便查看两个玩家连接到服务器的确认信息。
祝贺你!本地服务器连接成功!
一块钱开服务器测游戏攻略:百度网盘 请输入提取码 提取码:7x6a
延迟补偿算法实现的代码都写在LagCompensationComponent.h和LagCompensationComponent.cpp里,挂在角色上,代码上LagCompensationCharacter.h中有定义,也可从Content/Blueprints/BP_LagCompensationCharacter的组件栏里看到,调用在Weapon.cpp的ServerFireWithLagCompensation()这个RPC函数中。
打开 工程目录/Config/DefaultEngine.ini
最下面有一行
PktLag = 500
可修改这个值来改变测试的延迟