The RoboCup Soccer Simulator documentation

Soccer Server 足球服务器(下)

Heterogeneous Players 异构球员

在 rcssserver 版本 7 中,引入了异构球员。对于异构球员,服务器在启动时生成 player::player_types 随机球员类型。根据 player.conf 文件中定义的权衡,不同的球员类型具有不同的能力。一场比赛的两支球队使用相同的球员类型。类型 0 是默认类型,并且始终相同。如果 player::random_seed 不为 0,则可以根据给定的种子值生成固定的一组异构玩家参数。下表显示了异类玩家的差异:

Table The parameter differences of heterogeneous players 异构球员区别参数表
Parameter Description
PlayerSpeedMax maximum speed
StaminaIncMax Amount of stamina recovered in one step
PlayerDecay Player speed decay rate
InertiaMoment Player inertia force when moving
DashPowerRate Dash acceleration rate
PlayerSize Player size
KickableMargin Kickable area radius
KickRand The amount of noise added to the kick
ExtraStamina Extra stamina available when stamina is exhausted
EffortMax Maximum value of the player’s effort amount
EffortMin The minimum amount of effort for the player
CatchAreaLengthStretch Streach Length to Catch
KickPowerRate Kick Power Rate
FoulDetectProbability Probability that the referee will take the foul

当球员和教练连接到服务器时,他们可以收到有关可用球员类型的信息。在线教练可以在第一次开球前无限次更改球员类型,并在其他非 play_on 比赛模式下使用 change_player_type 命令更改球员类型 player::subs_max 次(参见命令)。

在线教练可以在 player::pt_max 次内替换相同的球员类型。此限制也适用于默认球员类型。这意味着必须将所有外场球员更改为非默认类型。在版本 16 中,守门员仍然可以被指定为默认类型。但是,如果 server::allow_mult_default_type 为 false,并且球队使用默认球员类型多于 player::pt_max,则 rcssserver 会在比赛模式更改为开球之前自动将异类球员类型分配给场上球员。如果 player::pt_max 为 1,则除默认类型外的每个播放器类型只能使用一次。

每当一名球员被其他球员类型取代时,其耐力、恢复和努力都会重置为相应球员类型的初始(最大值)值。

为每场比赛提供的异构球员参数是不同的。因此,每个agent不一定具有实施策略所需的参数。无论情况如何,您都需要一种方法来选择异类玩家的最佳组合。

Parameter for substitutions and heterogeneous player types
Parameter in player.conf Value
player_types 18
subs_max 3
pt_max 1

Referee Model 裁判模型

自动裁判向玩家发送消息,让玩家了解游戏的实际游戏模式。自动裁判的规则和行为在Sec. Kick-Off描述。玩家收到裁判消息作为听到消息。一名球员可以在任何情况下听到裁判信息,而与该球员从其他球员那里听到的信息数量无关。

Play Modes and referee messages 比赛模式和裁判的消息

比赛模式的改变由裁判宣布。此外,还有一些裁判信息会宣布诸如进球或犯规之类的事件。如果您查看服务器源代码,您会注意到一些当前未使用的附加比赛模式。比赛模式和裁判消息都使用 (referee String) 来宣布,其中 String 是相应的播放模式或消息字符串。

Table: Play Modes 游戏模式表
Play Mode tc subsequent play mode
后续的比赛模式
comment
注释
before_kick_off 0 kickoffSide 前后半场开始前
play_on 正常比赛
time_over End of the game
kickoffSide 比赛开始 (after pressing the Kick Off button)
kickinSide
freekickSide 【任意球】
cornerkickSide 当球越过球门线,没有进球并且最后一次被防守队员触及时。
goalkickSide play_on 一旦球离开禁区,比赛模式就会改变
goal_Side currently unused
drop_ball 0 play_on
offside_Side 30 freekickSide 越位球员,在队友击球时更接近对方球门,无论是在球前,还是在对方最后一名球员前。 越位规则防止球员在对方球门前集中,因为没有球员可以站在对方球门附近等待球得分,并且在接近对方球门附近送出长传的可能性是有限的。这样,防守者可以远离自己的目标,在比赛中更多地参与。
penaltykickSide 【点球大战】当比赛以6,000个循环和加时赛的平局结束时,将通过点球决出胜负。
foulchargeSide 【犯规冲锋】Pushing the opposing player
backpassSide 【回传犯规】如果队友将球传给守门员,则不允许守门员在自己的禁区内接球。如果守门员犯错,对方将在触球点获得间接任意球。
freekick_faultSide 【任意球犯规】球员在任意球后不得将球踢给自己。如果一名球员在任意球后将球踢给自己,则在第二次任意球发生时将任意球判给对方球队。
indirectfree_kickSide 在直接任意球中,球员可以将球直接射向球门,但间接任意球不能而且必须将球传给队友。
illegaldefenseSide

其中 Side 是字符 l 或 r,OSide 表示对手的一方。 tc 是直到宣布后续游戏模式的时间(以周期数计)。

Table: Referee Messages 裁判消息表
Message tc subsequent play mode comment
goal_Side_n 50 kickoffOSide announce the n th goal for a team
foul_Side 0 freekickOSide announce a foul
goaliecatch_ballSide 0 freekickOSide
time_up_without_a_team 0 time_over sent if there was no opponent until the end of the second half
time_up 0 time_over sent once the game is over (if the time is ≥ second half and the scores for each team are different)
half_time 0 before_kick_off
time_extended 0 before_kick_off

Illegal Defense Referee 非法防守裁判

从服务器版本 16 开始,增加了一个新的裁判模块来控制防守球员的数量。我们在 server_param 中有四个新变量来改变这个裁判的参数。

server::illegal_defense_duration = 20

该参数决定了在判罚任意球之前非法防守情况必须保持的循环数。

server::illegal_defense_number = 0

此参数确定在非法防御情况倒计时开始之前需要在指定区域内的玩家数量。如果该值设置为 0,裁判永远不会检测到非法防守情况。

server::illegal_defense_dist_x = 16.5

该参数决定了检测防守球员时与球场球门线的距离。

server::illegal_defense_width = 40.32

该参数决定了与水平对称线的水平距离,用于检测防守球员。

规则

如果在由illegal_defense_dist_xillegal_defense_width的矩形内存在防守球员,他们将被标记为非法状态。如果被标记球员的数量大于或等于illegal_defense_number 并且这种情况持续了illegal_defense_duration ,那么进攻球队的比赛模式将更改为 freekick[lr]

当球队的球员是最晚开球的球员时,球队被视为进攻球队。如果两支球队在同一个循环中踢球,则两支球队都不会被视为进攻,倒计时会重置。上述规则也适用于铲球动作。比赛模式的改变不会影响非法防守情况的循环。

Copyright@Njupt-Apollo-2d-2021 all right reserved,powered by Gitbook该文件最新修订时间: 2022-02-26 09:05:41

results matching ""

    No results matching ""