|
发表于 2003-6-20 16:59:24
|
显示全部楼层
|阅读模式
来自 中国–北京–北京–朝阳区
我在craft 的 www.csfans.com 看到的,
很不错的文章。
HLTV服务器命令全解
发稿人:CGA_BADSTAR 来源:CGA
这篇文章是最新发布的HLDS 4.1.1.1/3.1.1.1中的HLTV的自诉文章翻译而来,对简单的HLTV架设和大规模HLTV NET的架设都有详细地介绍。HLTV独特的实时转播方式注定它将会在电子竞技的发展道路上的重要地位,这一点也在世界各国的CS比赛,以及国内的几次大规模CS大赛,浩方平台的几次转播中得以体现。HLTV随着HLDS 4.1.1.1/3.1.1.1的发布也变得更加成熟,困扰大家两年多的闪光弹bug也已经修复,但是国内很多服务器管理员和比赛组织者都不是很了解HLTV的用法或者只是了解最近本的用法,很多很有趣的功能没有实现,基于此,将这篇很详细的README文章介绍给大家。
文章中一些不常用的命令可能会有一些翻译上的错误,欢迎大家指出,谢谢。
1、总览
Half-Lift TV提供了理论上无限制观察者观看在线游戏的可能。他们可以在游戏服务器中跟随任一名玩家的视角。观察者对于游戏者来说是不可见的,也不能以任何方式干扰进行中的游戏。每个观察者可以选择任意玩家的任意视角。为了获得更有趣的观察体验,观察者可以打开自动切换模式,这样镜头将自动切换到以合适的角度来观看精彩的镜头。这样观察者们就能舒服的靠在椅背上不用作任何动作。观察者们还可以用最基本的HL Chat模式来互相沟通。
大多数流行的Half-Life的MOD例如CS,Team Fortress Classic,DOD都支持HLTV,HLTV的提供者拥有对HLTV系统的完全控制权,可以改变观察者人数,添加文字信息,更换HLTV logo等等。播放的画面可以自定义一个延迟时间,默认的是30秒,这样可以确保正在比赛的队伍不可能通过HLTV来得到一些有用的对手信息。建立一个单独的支持100人的HLTV Server是很简单的事情,不需要对默认设置作任何改变。
架设一个庞大的HLTV网络来支持上千人的观看需要为服务器的配置等等准备多一些的时间和经验。
2、观看游戏
为了观看一个HLTV,启动Half-Life(或其他MOD包),进入多人模式,然后进入HLTV提供者提供给你的IPort,或者直接在控制台输入(假设服务器为192.168.0.1:27020)
connect 192.168.0.1:27020
这样的命令,即可进入HLTV服务器观看比赛。
默认的HLTV端口是27020,但是这是可以更改的,通常会包括在给出的IP地址中提供。
你可以用不同的模式来观看游戏:跟随视角,第一人称视角,自由观察,地图总览,地图跟随。最简单的切换视角方法是按“跳跃”键(默认是空格键),另外一种方法是使用按“蹲下”键(默认是Ctrl)激活的观察菜单,在那儿你可以定义自己的观察风格并且开启自动切换模式。循环按下“使用”(默认是E)可以开关画中画模式。
下列HL控制台命令可以在用来自定义观察模式:
spec_autodirector <0|1> - 开启或者关闭自动切换模式
spec_drawcone <0|1> - 在地图总览模式显示你的视角范围
spec_drawnames <0|1> - 在玩家标志下显示玩家的名字
spec_drawstatus <0|1> - 显示游戏信息(时间,地图名称等)
spec_pip <0|1> - 开关画中画功能
spec_menu - 开启观察者菜单
spec_help - 显示帮助屏幕
spec_mode <1-6> [<0-4>] - 设置主显示模式,第二个参数是设置画中画模式。并非所有的组合都有效。
主显示模式:
1、锁定跟随 2、自由跟随
3、自由观察 4、第一人称视角
5、地图总览 6、地图锁定跟随
画中画模式:
0、关闭画中画 1、自由跟随
2、第一人称视角 3、地图总览
4、地图跟随
以上命令中 <>,()包括的为必填项,[]包括的为可选项,下同。
3、基本HLTV架设
HLTV广播系统的核心是HLTV服务器,也称之为HLTV代理。HLTV在控制台窗口运行,类似于HL的专业服务器。为了转播一台指定服务器上的比赛,HLTV代理像一个普通玩家一样连入这台服务器,然后观察者们连入这台HLTV代理,这样游戏数据流就通过HLTV代理转发到所有的观察者客户端。下面这个图示就是一个基本的HLTV配置:
HL Game Server --> HLTV 代理 -->观察者
HLTV代理可以支持的客户端人数取决于服务器的硬件配置和网络条件,理论上来说,一个单独的HLTV可以支持最多255个观察者,但是请注意,平均每个支持了100个观察者的HLTV代理需要2M的带宽才能流畅收看,如果需要支持更多的观察者,网络负荷必须被分部到多HLTV代理上去。
第一个连接到游戏服务器上的HLTV服务器被称为主服务器,在上面可以进行游戏数据流的延时和发包率等综合广播的设置,其他的HLTV代理连入到这台主服务器上作为接替。这样的连接数量和方式是不受限制的,可以串联也可以并连。重要的是他们不要处于同一个网络中,这样才能确保带宽被均衡使用。
--> HLTV 转播服务器 1 --> 观察者
HL Game Server --> HLTV 主服务器 --> HLTV 转播服务器 2 --> 观察者
--> HLTV 转播服务器 3 --> 观察者
4、游戏比赛转播
让我们来看一下最普通的设置,一台HLTV代理在局域网环境中。这是最普通的情况,默认的HLTV设置不需要作任何改动。选择一台专用计算机作为里的HLTV代理并且安装Half-Life专业服务器版软件,它包含了所有的HLTV代理文件。这并不需要你的计算机上安装有Half-Life这个游戏。
启动HLTV应用程序(带有小照相机的HL的小图标)就能看到HLTV的控制台窗口,显示了一些初始化信息后(如果初始化进行了很长时间,可能是HLTV不能解析出一些IP地址,那么请在HLTV启动命令行增加 "-nodns"参数来跳过),控制台就可以接受你的命令了,下面我们用">"来代表命令行提示符,记住你只需要输入">"后面的字符就可以了。首先给你的HLTV代理起一个独特的名字:
>name "My HLTV Proxy"
我们假定你的HLTV Proxy的IP为192.168.0.2,你想观察在192.168.0.3:27015上的游戏,那么键入以下的命令使HLTV代理连入:
>connect 192.168.0.3:27015
过了一会儿HLTV完全连入服务器并且准备提供观察者服务时,用"status"命令可以检查HLTV代理的连接状态:
>status
--- HLTV Status ---
Local IP 192.168.1.2:27020, FPS 72.8, Network In 0.8 Out 0.9
Local Slots 128, Spectators 0, Proxies 0
Source: Server "Half-Life" (192.168.1.3:27015)
Total Slots 128, Spectators 0, Proxies 1
Time 01:02, Game "valve", Map "maps/frenzy.bsp", Players 1
"status"命令可以显示你的IP、每秒刷新的HLTV系统的进出流量、你的HLTV代理提供的观察者数量,这台游戏服务器中所有HLTV广播系统的观察者数量。游戏源可以是游戏服务器,也可以使另一台HLTV代理,甚至一个Demo文件。
5、录制HLTV Demos
HLTV demo文件和普通的Half-Life游戏录像差不多,但是你可以选择任意的视角和视点以及跟随的玩家。回放一个HLTV demo的时候并不需要HLTV服务器,只要启动Half-Life并且在控制台输入" playdemo (demo name)"或者"viewdemo (demoname)"就可以了。录制一个HLTV demo,需要将HLTV代理连入游戏server,并且在控制台输入:
>record (name)
发出这一命令后,所有的游戏数据将被录制下来,demo文件会放在当前的Mod目录下,例如 \cstrike。所有的demo文件将被默认指定为如下格式的文件名:<名称>-<时间>-<地图>.dem,demo文件也记录了一些发往观察者的数据,这意味着,demo文件记录了和观察者同步的游戏信息。
停止录制的命令是"stoprecord"。
有的时候只需要录制HLTV的demo而并不想进行广播的话,可以增加这样一些命令:
>maxclients 0 //不允许观察者客户端
>delay 10 //最低的延迟设置
>rate 10000 //最高的数据速率
>updaterate 20 //基本上行输率
>nomaster 1 //不在master服务器注册
注://后是命令注释,在平常使用中不需要输入
6、大规模广播
建立一个可以支持大规模观察者(>1000人)的HLTV网络是一个艰难且耗时的工作。下列指导将帮助你配置和运行以这样的一个HLTV网络。一条重要的规则是:“要质量,不是只要数量”。相对于使用所有的带宽来说,建立少一点观察者的选择显然更好,这样所有的观察者都不会为lags和超时所困扰。检查你的带宽容量并且计算出你的HLTV服务器能支持多少观察者,平均每个观察者需要2-3K的流量,CPU和内存在目前流行的PC系统中到是不太会成为性能瓶颈。
这个列表给出大致的Internet连接HLTV所需要带宽:
- ISDN 64Kbps : 2个观察者
- ADSL 512Kbps(上行速率) : 20个观察者
- T1 1.5Mbps : 75个观察者
- LAN 10Mbps : 500个观察者
- T3 75Mbps : 4000个观察者
使用"maxclients"命令可以控制HLTV服务器接受的客户端连入数量,确定"maxrate"参数被设为一个合理的数值,例如:3500 kB/sec。更低的数值也是可能的,但是会造成观察者们产生"choke"。命令"maxrate"并不影响HLTV代理服务器之间的带宽限制,仅对观察者客户端有效。为了降低带宽需求,你可以关闭internet HLTV chat("chatmode 0")或者将游戏的上行速率从默认的20降低到10("updaterate 10")。低一些的上行速率可以节省25%的带宽并且这是可接受的,因为在这时,观察这并不需要和真实玩家相同的上行速率。
一个针对大规模广播非常普遍的设置是使用两台分离的HLTV服务器来创建一个私有段和一个公共段。我们假定游戏服务器在一个封闭的局域网中外网无法到达。这确保了最大的安全无法被外界攻击(例如D.O.S攻击)。HLTV主服务器在局域网中启动,并且它的外网地址保密。第二台拥有真实IP地址的HLTV服务器在局域网外启动并且连入HLTV主服务器。这第二台HLTV服务器是公众HLTV发布机,IP和端口公开给观众们,并且所有的转播服务器都连入这台HLTV发布机。这样HLTV主服务器就在安全的局域网环境下工作,并且可以被用来录制demo或者现场放映机。观察者们连入HLTV发布机或者其他转播服务器。这样所有的网络负载就被均衡到了所有的HLTV代理上。
如图:
+---- Private LAN -----+ +------ Public Internet --------+
-> HLTV Proxy 1
HL Server -> HLTV主服务器 -> HLTV发布服务器 -> HLTV Proxy 2
-> HLTV Proxy 3
主服务器和发布服务器的配置文件不同:
master.cfg
nomaster 1 //不在WON主服务器上注册
proxypassword MyPWD //保护密码
publicgame 0 //不显示游戏服务器IP
dispatchmode 0 //不分派观察者
dispatcher.cfg
forcemaster 1 //注册到WON主服务器上
publicgame 0 //不显示游戏服务器IP
dispatchmode 2 //分派所有客户端到其他服务器
hostname MyGame //公开的HLTV服务器名称
如果你在运行3个或者更多的HLTV服务器,一个很好的方案是通过服务器管理工具来使用RCON命令管理他们。在HLTV服务器上开启RCON的方法是设置"adminpassword"选项。同时"proxypassword"可以确保只有经过你授权的HLTV提供者才可以连入你的HLTV网络。否则任何人都可以使用缓慢的HLTV代理连入你的网络打乱你的整个网络的负载均衡。 |
|