-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
2729 lines (2043 loc) · 106 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[15.3.0]
* Fixed bison3 build problems. Supported Ubuntu 14.04.
[15.2.2]
* Fixed a bug of the backpass detection. If kick and catch are taken
simultaneously by same team players but the before kicker also
belongs to the same team, the backpass violation is detected.
[15.2.1]
* Fixed a bug of the backpass detection. Two or more players from
different teams kick the ball in the same game cycle, the backpass
violation is never detected.
[15.2.0]
* Fixed an issue with the CatchRef which did not allow a goalie to
catch the ball, after having intercepted it from an opponent,
dribbled to its own area and catch it. Regardless of the
interception position, this should never lead to a foul being
called. Thanks go to Fernando Almeida for reporting the problem
and providing the patch.
* Changed the defalut value of server::log_date_format from
"%Y%m%d%H%M-" to "%Y%m%d%H%M%S-".
* Fixed a defect of boost detection.
[15.1.0]
* Fixed a defect of boost detection by updating autoconf macros.
* Fixed a bug of referee's player clearance operation after fouls.
* Fixed a defect of zero division in Quantize method.
[15.0.1]
* Fixed a defect of clang specification. Now, directive names or
ID strings are limited within 8 characters.
[15.0.0]
* New parameters:
- server::red_card_probability (default value: 0.0)
* Changed parameters:
- server::drop_ball_time (200 -> 100)
- server::golden_goal (true -> false)
* Improvement of the offside referee. The automatic referee checks
whether offside position players actually touched to the ball or
not, or whether offside position players intended to approach the
ball by kick/tackle command and their position is located within
server::offside_active_area from the ball.
* Improvement of the catch model.
- If goalie fails to catch the ball beyond the fuzzy catchable
area, the ball has no effect. (same as the previous model)
- If goalie fails to catch the ball within a fuzzy catchable area,
the ball is accelerated to the catch command direction. It is
similar to the ball bouncing from the wall that the normal
vector's direction is same as the catch command direction.
* Improvement of the foul model. In the previous foul model, players
never get the red card immediately even if they intentionally
perform a foul action. As a result, players can perform an
intentional foul safely if they have no yellow card. Now,
the server::red_card_probability variable is used to determine
whether a player get the red card if it performs an intentional
foul, or whether a players get the yellow card if it performs a
dangerous tackle. If red_card_probability is 0.01 and player's
foul_detect_probability is 0.5, the actual red card probability
becomes 0.005.
* Removing automatic player clearance during stoppage time. For
example, left side players can approach to the ball during the
playmode offside_l, but they are kept away from the ball before
the playmode is changed to freekick_r.
* allowed '+' as a team name character.
* Fixed a build problem caused by boost::filesystem3.
[14.0.3]
* Fixed a bug of the overtime handling when server::golden_goal is
false. Thanks go to Thomas Gabel for reporting the problem.
[14.0.2]
* Fixed a problem of automatic heterogeneous player assignment. Now,
the player type ID of unchanged player is never broadcasted.
* Fixed a compilation problem on gcc-4.4.1. Thanks go to Ke Shi for
reporting the problem.
[14.0.1]
* Fixed an incorrect catch model implementation. Thanks go to Bruno
Vinicius for reporting the problem. The following pseudo code
shows a corrected trade-off rule of the catch model:
// catchable_area_l_stretch is the heterogeneous parameter,
// currenlty within [1.0,1.3]
double this_catchable_are_delta
= server::catchable_area_l * ( catchable_area_l_stretch - 1.0 );
double this_catchable_area_l_max = server::catchable_area_l
+ this_catchable_are_delta;
double this_catchable_area_l_min = server::catchable_area_l
- this_catchable_are_delta;
if ( ball_pos is inside the MINIMAL catch area )
{
// the MINIMAL catch area has a length of
// this_catchable_area_l_min and width server::catchable_area_w
//
// goalie catches the ball with probability
// server::catch_probability (which is 1.0 by default)
}
else if ( ball_pos is beyond the MAXIMAL (stretched) area )
{
// the MAXIMAL catch area has a length of
// this_catchable_area_l_max and width server::catchable_area_w
//
// goalie definitely misses the ball
}
else
{
double ball_relative_x = ( ball_pos - goalie_pos )
.rotate( -(goalie_body + catch_dir) ).x;
double catch_prob
= server::catch_probability
- server::catch_probability
* ( ball_relative_x - this_catchable_area_l_min )
/ ( this_catchable_area_l_max - this_catchable_area_l_min );
// goalie catches the ball with probability catch_prob
// it holds: catch_prob is in [0.0,1.0]
}
[14.0.0]
* New parameters:
- server::tackle_rand_factor (default value: 2.0)
- server::foul_detect_probability (default value: 0.5)
- server::foul_exponent (default value: 10.0)
- server::foul_cycles (default value: 5)
- server::golden_goal (default value: true)
- player::kick_power_rate_delta_min (default value: 0.0)
- player::kick_power_rate_delta_max (default value: 0.0)
- player::foul_detect_probability_delta_factor (default value: 0.0)
- player::catchable_area_l_stretch_min (default value: 1.0)
- player::catchable_area_l_stretch_max (default value: 1.3)
* Changed parameters:
- server::stamina_capacity (148600.0 -> 130600.0)
- server::dash_angle_step (90.0 -> 45.0)
- server::side_dash_rate (0.25 -> 0.4)
- server::back_dash_rate (0.5 -> 0.6)
* Improvement of the dash model. The new server::dash_angle_step
value enables players to dash into eight directions. The value of
server::side_dash_rate and server::back_dash_rate are increased to
enable more acceleration in sideward/backward dashes.
* Improvement of the stamina model. The stamina capacity value is
changed from 148600.0 to 130600.0.
* Increasing tackle noise. server::tackle_rand_factor parameter is
introduced and, consequently, each heterogeneous player type has
an independent tackle_rand parameter. With this parameter, the
noise of tackle effect is increased more than kicking noise. Each
heterogeneous tackle_rand value is caluculated as follows:
tackle_rand = kick_rand * server::tackle_rand_factor
* Introducing fouls for dangerous tackle situations. If players
perform a tackle command under specific conditions and the referee
detects it, then the playmode is changed to
foul_charge_[lr]
where l or r is the side of the tackling player. After wait
cycles, the play mode is changed to "free_kick_[lr]" or
"indirect_free_kick_[lr]", where l or r is the side of ball
handling player. When foul occurs in penalty areas,
- if the side of penalty area is same as the penalized player's
side, indirect free kick is awarded to the other team at the
position where foul occurs.
- else, the ball is moved to the outside of penalty
area and free kick is awarded to the other team.
Currently, the dangerous conditions are defined as follows:
- The ball handling player exists between the tackling player
and the ball.
- The ball handling player's body angle is directed to the
opposite side of the tackling player.
- The ball handling player is performing dash command.
- Finally, the foul is determined randomly using
foul_detect_probability of each heterogeneous player type.
* Introducing intentional foul option. Now, intentional foul playing
and yellow/red cards are introduced. The tackle command is
extended by an additional boolean parameter, i.e.
(tackle DIR {true|false})
which indicates that the player is willing to foul his
opponent. If the boolean parameter is omitted, the false value is
used by default.
Details:
a) if foul flag is false:
normal tackle behavior, i.e. tackling for the ball
b) if foul flag is true AND ball not in kick range of opponent:
normal tackle behavior
c) if foul flag is true AND ball IS in kick range of opponent:
c1) tackle the ball, but apply a higher tackle exponent
(server::foul_exponent = 10)
c2) if the foul succeeds (with probability determined in c1):
the foul-playing player does *not* have to remain idle
for server::tackle_cycles cycles. but instead the opponent
player (the player to which the foul has been applied) must
remain idle (lie on the ground) for server::foul_cycles
cycles.
c3) if the foul succeeded:
the referee detects the foul with probability
foul_detect_probability.
=> free kick for other team
c4) if the referee detected the foul AND the dangerous
conditions specified in the previous section are met:
=> yellow card to the player AND free kick for other team
c5) if the referee detected the foul AND the dangerous
conditions are met AND the ball is in the penalty area
where its side is same as the penalized player's side
=> yellow card to the player AND indirect free kick for
other team
c6) if player has two yellow cards:
=> red card to the player AND the player is disconnected
from the Soccer Server
* Red and Yellow cards. If an intentional and dangerous foul is
detected, the referee penalizes the player and sends the yellow/red
card message toclients. The message format is similar to playmode
messages. Side and uniform number information of penalized player
are appended to the card message:
(referee TIME yellow_card_[lr]_[1-11])
or
(referee TIME red_card_[lr]_[1-11])
* Foul information in sensory messages.
- Players can receive their idling cycles caused by intentional
foul and their card status every cycle by sense_body
message. These information are appended after the previous
format and are sent only to v14 or later clients.
(sense_body TIME ....
...
(foul (charged CYCLE) (card {none|yellow|red})))
CYCLES is the number of cycles the current idling will last
for, with 0 indicating that the player isn't idling.
As well as sense_body message, players can receive all players'
foul information by fullstate message:
(fullstate TIME ...
...
((p {l|r} <unum> [g] <player_type_id>)
<pos.x> <pos.y> <vel.x> <vel.y> <body_angle> <neck_angle>
[ <point_dist> <point_dir>]
(<stamina> <effort> <recovery> <capacity>)
[t|k|f] [y|r])
...
The character 'f'(indicates player is lying on the ground),
'y'(indicates yellow card) or'r '(indicates red card) are
appended to each player information.
- Coaches can receive all players' idling and card status by
see_global message. These information are sent only to v14 or
later clients. As well as player's fullstate message, 'f', 'y'
or 'r' are appended to each player information as follows:
((p "TEAM" UNUM[ goalie]) X Y VX VY BODY NECK[ ARM][ {t|k|f}][ {y|r}])
- New player state flags, FOUL_CHARGED, YELLOW_CARD and RED_CARD,
are introduced to record/send players' status to game log or
monitor clients.
* Introducing heterogeneous goalie. Online coaches now can change
the player type of goalie. The 'catchable_area_l_stretch' variable
is added to each heterogeneous player type. The value is
caluculated as follows:
double delta = random( player::catchable_area_l_stretch_min,
player::catchable_area_l_stretch_max );
catchable_area_l_stretch = delta;
As a trade-off, such a goalie would have a reduced catch success
reliability according to:
double default_catchable_area_l = server::catchable_area_l;
double this_catchable_area_l = default_catchable_area_l * catchable_area_l_stretch;
if ( ball_pos is inside the default catch area )
{
// goalie catches the ball with probability server::catch_probability
}
else if ( ball_pos is beyond the stretched area )
{
// goalie definitely misses the ball
}
else
{
double ball_relative_x = ( ball_pos - goalie_pos ).rotate( -(goalie_body + catch_dir) ).x;
double catch_prob
= server::catch_probability
- server::catch_probability * ( ball_relative_x - server::catchable_area_l )
/ ( this_catchable_area_l - default_catchable_area_l );
// goalie catches the ball with probability catch_prob
}
And, now, the information of goalie's player type id is sent to
players with fullstate message. If players connect as v14 or later
client, they can receive the following player information in the
fullstate message:
(p {l|r} <unum> [g] <player_type_id>)
* Introducing heterogeneous kick power rate. The variable of
'kick_power_rate' and 'foul_detect_probability' are added to each
heterogeneous player type. These values are calculated as follows:
delta = random( player::kick_power_rate_delta_min,
player::kick_power_rate_delta_max )
kick_power_rate = server::kick_power_rate + delta
foul_detect_probability = server::foul_detect_probability
+ player::foul_detect_probability_delta_fact * delta
In this trade-off, we assume that a player who is rather strong
(and, thus, can shoot very strongly), is not very smart (and, thus,
cannot very well deceive the referee when doing a foul).
Since the introduction of foul is a new feature to be added, we do
*not* change the kick power rate actually in v14 in order to
provide a migration period to teams. So, the above parameters are
set to 0. These parameters will be changed in v15 or later.
* Golden goal option. The new switch option, 'server::golden_goal',
determines when the game finishes in extra halves. If
server::golden_goal is true and the goal is scored in extra
halves, the game finishes immediately. If server::golden_goal is
false, the game is continued during all extra halves even if the
goal is scored. This option is introduced to enable more flexible
competition scheme.
[13.2.2]
* Fixed a bug of the player clearance from the ball.
* Fixed a bug of the back passer update in the referee module.
* Fixed a bug that offense side players are cleared from the ball
in back_pass_? and catch_fault_? playmode.
[13.2.1]
* Added the missing comma in CSVSaver. Thanks go to Andreas
Hechenblaickner for reporting the problem.
[13.2.0]
* Changed parameters:
- server::synch_see_offset (30 -> 0)
- server::pen_max_extra_kicks (10 -> 5)
- server::pen_before_setup_wait (30 -> 10)
- server::pen_ready_wait (50 -> 10)
- server::pen_setup_wait (100 -> 70)
- server::pen_taken_wait (200 -> 150)
* Fixed a timer bug of the penalty kick referee.
[13.1.1]
* Fixed a bug of the indirect free kick referee.
* Fixed incorrect online coach names for result savers. Thanks
go to Andreas Hechenblaickner for reporting the problem.
* Fixed gcc-4.4 compilation problems. Thanks go to Hedayat Vatankhah
providing the patch.
[13.1.0]
* Fixed a defect of a new dash model. Now, a dash direction is
discretized before calculating a dash power effectiveness.
For example, if server::dash_angle_step is 90, the command
"(dash 100 40)" is equivalent to "(dash 100 0)" and the command
"(dash 100 46)" is equivalent to "(dash 100 90)". Thanks go to
Holger Endert for reporting the problem.
* On Cygwin, replaced the player command parser generated by
flex/bison with the hand-coded parser, in order to avoid the
defect of Cygwin's flex/bison.
* The configure script supported the FLEX environment variable, that
can specify a certain flex command location.
[13.0.2]
* Fixed a ball catcher bug that causes a strange penalty shoot outs
play. Thanks go to Ke Shi for reporting the problem.
[13.0.1]
* Fixed build problems with bison 2.4
* Fixed defects on FreeBSD and MacOSX.
* Supported cygwin.
* Changed the default configuration file location on Windows. Now,
configuration files are generated under the rcssserver's working
folder.
* Fixed defects of the directory creation. Now, rcssserver can
create a nested directory for configuration files or log files.
* Fixed defects of the team graphic broadcasting. Now, team graphic
messages are sent to all monitors connected after coaches.
* Now, an offline coach receive an error messag if an offline
coach tries to connect without coach mode.
* Added a header line to the first CSVSaver output.
[13.0.0]
* RCSSBase is now integrated into RCSSServer. It is not necessary
for you to install RCSSBase before the RCSSServer installation.
* New parameters:
- server::stamina_capacity (default value: 148600.0)
- server::max_dash_angle (default value: 180.0)
- server::min_dash_angle (default value: -180.0)
- server::dash_angle_step (default value: 90.0)
- server::side_dash_rate (default value: 0.25)
- server::back_dash_rate (default value: 0.5)
- server::max_dash_power (default value: 100.0)
- server::min_dash_power (default value: -100.0)
* Changed parameters:
- server::stamina_max (4000 -> 8000)
- server::max_back_tackle_power (50.0 -> 0.0)
- server::extra_half_time (300 -> 100)
- server::player_speed_max (1.2 -> 1.05)
- server::player_speed_max_min (0.8 -> 0.75)
- server::extra_stamina (0.0 -> 50.0)
- player::player_decay_delta_min (-0.05 -> -0.1)
- player::extra_stamina_delta_max (100.0 -> 50.0)
- player::effort_mix_delta_factor (-0.002 -> -0.004)
- player::effort_man_delta_factor (-0.002 -> -0.004)
- player::new_dash_power_rate_delta_min (-0.0005 -> -0.0012)
- player::new_dash_power_rate_delta_max (0.0015 -> 0.0008)
* Changed a stamina model. The new parameter
server::stamina_capacity defines the maximum recovery capacity for
each player. When player's stamina is recovered during the game,
his stamina capacity is also consumed. If the player's stamina
capacity becomes 0, his stamina is never recovered and he can use
only his extra stamina. The recovery policy of the stamina
capacity is as follows:
- normal halves
The stamina capacity is reset to the initial value just after
the kick off as well as the other stamina related variables.
- extra halves and penalty shootouts
The stamina capacity is reset to the initial value just after
normal halves if the game is not over, but is never recovered
at the half time and before the penalty shootouts.
If server::stamina_capacity is set to a negative value, players
have an infinite stamina capacity. This setting makes the new
stamina model completely same as the old stamina model.
* Changed a dash model. Players can now add the dash direction as
the second argument of his dash command:
`(dash <power> <dir>)'
The dash direction is relative to player's body angle (or reverse
side angle if dash power is negative value) and is restricted
within [server::min_dash_angle,server::max_dash_angle]. The dash
power effectiveness is affected by the magnitude of dash
angle. Players can dash in direction of their body (or reverse
side angle if dash power is negative) using 100% of power, in
backward with server::back_dash_rate(0.5) of power and in sideward
with server::side_dash_rate(0.25) of power. The dash power
effectiveness will increase between sides and body direction from
server::side_dash_rate(0.25) to 1.0 and between sides and backward
from server::side_dash_rate(0.25) to server::back_dash_rate(0.5).
dir_rate = ( fabs( dir ) > 90.0
? back_dash_rate - ( back_dash_rate - side_dash_rate )
* ( 1.0 - ( fabs( dir ) - 90.0 ) / 90.0 )
: side_dash_rate + ( 1.0 - side_dash_rate )
* ( 1.0 - fabs( dir ) / 90.0 ) );
Please note that server::min_dash_power will be set to 0 in the
future simulator (v14 or later). This means the negative dash
power will be forbidden completely.
In order to balance with older binaries and to enable flexible
settings, server::dash_angle_step parameter has been
introduced. This parameter defines the discreteness of player's
dash direction. If server::dash_angle_step is 90.0, players can
dash only in four directions (forward, backward and two
sidewards).
* Changed heterogeneous player parameters. Now, heterogeneous
players' dash speed become slower.
* Forbad a backward tackle. Now, server::max_back_tackle_power is
set to 0. This means the tackle command directed to 180.0 degree
has no effect.
* Changed an overtime length. Now, the default overtime length
is set to 1000 cycles.
* Supported a protocol version 13.
- All new parameters are sent to v.13 or later clients.
- server::extra_half_time parameter is now sent to v.13 or later
clients.
- Version 13+ players and coaches can see players' kicking state.
When players can see another players team, they can also see if
that player is kicking via a `k' flag as follows:
`((p "<TEAMNAME>" <UNUM>) <DIST> <DIR> <DISTCHG> <DIRCHG>
<BDIR> <HDIR> [<POINTDIR>] [{t|k}])'
`((p "<TEAMNAME>") <DIST> <DIR> [<POINTDIR>] [{t|k}])'
Coach visuals now can indicate if a player is kicking via a `k'
flag as follows:
`((p "<TEAMNAME>" <UNUM>) <X> <Y> <VEL_X> <VEL_Y> <ANGLE>
<NECK_ANGLE> [<ARM_DIR>] [{t|k}])'
If an observed player is tackling, the kicking flag is always
overwritten by the tackle flag.
Please note that the kicking state can be seen within one cycle
just after kicking.
- The stamina capacity information is added to sense_body message
as follows:
`(stamina <STAMINA> <EFFORT> <CAPACITY>)`
* Supported a monitor protocol version 4 and a game log format
version 5. In these versions, players' stamina capacity
information are contained in each player data. Now, these versions
are used by default.
* Now, stoppage time information is recorded in the text log(.rcl)
files.
* Supported the environment variable RCSS_CONF_DIR. With this
variable, you can specify the default location of configuration
files.
[12.1.5]
* Fixed build problems with boost::system.
[12.1.4]
* Fixed library dependencies and a problem in 64bit platforms.
Thanks go to Hedayat Vatankhah for providing the patches.
[12.1.3]
* This release is the version for the final round of RoboCup2008.
* Added new parameter, server::extra_half_time(default: 300). This
parameter changes the length of each extra half. Please note that,
at least in this release, rcssserver never send
server::extra_half_time to v.12 or older clients via the
server_param message.
[12.1.2]
* Fixed gcc 4.3 compilation problems. Thanks go to Hedayat Vatankhah
for providing the patch.
* Fixed gcc 4.4 warnings.
[12.1.1]
* Fixed an endless loop bug in the collision check with goal
posts. Thanks go to Alexander Burger for reporting the
problem.
* Fixed defects of the back pass rule.
- Now, the back pass rule does not apply if goalie catches the
ball after his own kick but the previous ball kicker is an
opponent player and both kicks are performed within the same
play_on period.
- Now, the back pass rule applies if a teammate player holds the
ball and kicks the ball just after goalie's catch in the same
cycle.
- Fixed a defect of timer count when trainer changes the playmode.
[12.1.0]
* Slightly changed the game log format version 4. Now, players'
pointing points are recorded by the global value of left-hand
coordinate system.
* The size of team_graphic image can be smaller than 256x64. Any xpm
graphic that the size is 8*m x 8*n (0<m<=32,0<n<=8) is acceptable.
* Now, team_graphic messages are always recorded in the game log
file as msg info.
* Now, the game date and result are recorded at the end of the game
log file as msg info.
* Fixed a defect of log file flushing.
* Disabled the stdoutsaver by default. Instead, the rcsoccersim
script will try to load the stdoutsaver module.
* Fixed an incorrect result message of penalty shootouts in
stdoutsaver.
[12.0.1]
* Fixed a change_view command bug in the synchronous mode. Thanks go
to Tobias Springenbergr for reporting the problem and providing
the patch.
[12.0.0]
* Supported the monitor protocol version 3 and the game log format
version 4. Now, these are used by default.
* Fixed a build problem on some platforms.
[12.0.0_pre-20080210]
* New parameter:
- server::synch_see_offset (default value: 30)
* Renamed parameter:
- server::min_tackle_power -> server::max_back_tackle_power
(default value: 50.0)
* Changed parameters:
- server::tackle_power_rate (0.0135 -> 0.027)
- server::tackle_back_dist (0.5 -> 0.0)
- server::tackle_width (1.0 -> 1.25)
* New command:
- "(synch_see)"
All version players can use this command. If the command is
accepted, rcssserver sent a reply message, "(ok synch_see)".
This command is used for a synchronous mode describing below.
* Changed a see message timer. There are 2 modes for all players,
the asynchronous mode and the synchronous mode. The asynchronous
mode is completely same as v.11 or older timer and is a default
mode for all players including v.12 players. If players send the
"(synch_see)" command, they enter to the synchronous mode and
cannot return to the asynchronous mode. v.11 or older players
also can use this command and the synchronous mode.
In the synchronous mode, the "low" view quality cannot be used and
the following view width are available:
| mode | view width(degree) | see frequency |
| narrow | 60 | every cycle |
| normal | 120 | every 2 cycles |
| wide | 180 | every 3 cycles |
In all view modes, rcssserver send see messages at
server::synch_see_offset(30) ms from the beginning of the cycle.
Each view width can be calculated as follows:
narrow: 60 = visible_angle(90) * send_step(150) / sim_step(100)
normal: 120 = narrow * 2
wide: 130 = narrow * 3
* Changed a tackle model for v.12 players based on the Thomas
Gabel's proposal. Now, the argument of the tackle command sent by
v.12 players means the ball acceleration angle relative to the
player's body angle. Effective power for tackle(angle) is
calculated as follows:
eff_power = ( max_back_tackle_power
+ ( max_tackle_power - max_back_tackle_power )
* ( 1 - fabs( angle )/PI ) )
* tackle_power_rate
* Changed a tackle power restriction rule for the v.11 or older
players as follows:
power = max( -max_back_tackle_power,
min( max_tackle_power, power ) )
This means a tackle power is restricted within [-50,100] in the
default settings. Note that a backwards tackle might be completely
forbidden (max_back_tackle_power is set to 0) in the v.13 or later
simulator.
* Added a tackle power reduction according to the ball position as
follows:
eff_power *= 1 - 0.5*( fabs( player_2_ball.th() )/PI
* Changed a kick noise model. This change is motivated by the Mehrab
Norouzitallab's proposal. Now, the maximum kick noise is directly
proportional to the kick power, the ball distance, the ball
direction and the ball speed. When the kick power is 0, the kick
noise becomes always 0.
pos_rate = 0.5 + 0.25*( dir_diff/PI + dist_2_bal/kickable_margin )
For tackle: pos_rate = 0.5 + 0.5*( 1.0 - tackle_prob )
speed_rate = 0.5
+ 0.5*( ball_speed / (ball_speed_max*ball_decay) )
max_rand = kick_rand
* ( power / max_power )
* ( pos_rate + speed_rate )
kick_noise = polar2vector( rand( 0, max_rand ),
rand(-PI,PI) )
* Added an automatic version check for configuration files. If
configuration files do not contain a version parameter that is
same as the rcssserver's release version, rcssserver will exit
with error messages.
* (Not fixed yet) Supported the monitor protocol version 3 and the
game log format version 4. From these versions, data is
represented by human readable text messages. The default version
of game log format is still 3 in 12.0.0_pre-20080210 because the
format has not been fixed yet and the implementation has not been
completed yet.
* (Test version) Introduced a new catch model based on the
Sebastian Marian's proposal. The catch probability is set to
unreliable catches. If ball is not within the goalie's reliable
catch area, the catch probability is calculated according to the
ball position and the goalie's catch command might be failed.
Note that this rule is not actually used in the default
settings of v.12 server. If you try to test this rule, you need
to change the server::catchable_area_l(default value: 1.2)
parameter to the value greater than
server::reliable_catch_area_l(default value: 1.2). And
server::min_catch_probability(default value: 1) also need to be
change to [0, 1]. RCSSServer can read these parameter from
server.conf, but does not send them to clients.
[12.0.0_pre-20071217]
* Supported a protocl version 12. Now, players and coaches can
connect as a version 12 client. In the version 12 protocol,
- Players can change view width only to normal or wide and cannot
change the view quality. Instead of them, players can receive
see messeage at the begining of every cycle if their view width
is normal. If players' view width is wide, see message is
received once every two cycles. The new message arrival order is
as follows:
sense_body (-> fullstate) -> hear -> see
- The new variation of change_view command is supported. Now,
player can send the following format change_view command:
(change_view <ViewWidth>)
If version 11 or older players send this format command, their
view quality is set to high.
- Collision information is added to the sense_body message. The
following format message is appended to the end of sense_body:
(collision {none|[(ball)][(player)][(post)]})
For example, version 12 players may receive the following
message.
(sense_body 0 (view_mode high normal) (stamina 4000 1)
(speed 0 0) (head_angle 0) (kick 0) (dash 0) (turn 0) (say 0)
(turn_neck 0) (catch 0) (move 0) (change_view 0)
(arm (movable 0) (expires 0) (target 0 0) (count 0))
(focus (target none) (count 0)) (tackle (expires 0) (count 0))
(collision (ball) (player)))
* New parameters:
- server::extra_stamina (default value: 0.0)
- server::max_tackle_power (default value: 100.0)
- server::min_tackle_power (default value: 0.0)
- server::player_speed_max_min (default value: 0.8)
- server::max_monitors (default value: -1)
- player::allow_mult_default_type (default value: false)
* Changed parameters:
- server::ball_speed_max (2.7 -> 3.0)
- server::catchable_area_l (2.0 -> 1.2)
- server::kick_rand (0 -> 0.1)
- server::tackle_power_rate (0.027 -> 0.0135)
- player::player_types (7 -> 18)
- player::pt_max (3 -> 1)
- player::kick_rand_delta_factor (0.5 -> 1)
- player::kickable_margin_delta_max (0.2 -> 0.1)2
- player::kickable_margin_delta_min (0 -> -0.1)
- player::new_dash_power_rate_delta_max (0.002 -> 0.0015)
- player::new_dash_power_rate_delta_min (0 -> -0.0005)
- player::new_stamina_inc_max_delta_factor (-10000 -> -6000)
- player::player_decay_delta_max (0.2 -> 0.1)
- player::player_decay_delta_min (0 -> -0.05)
* Now, the player's maximum dash speed is restricted within
server::player_speed_max_min(0.8) and
server::palyer_speed_max(1.2). In the heterogeneous player
generation procedure, if the generated player type can run faster
than server::player_speed_max or cannot run faster than
server::player_speed_max_min, rcssserver rejects that type and try
to regenerate another one.
* The default value of player::player_types parameter is changed to
18, and the default value of player::pt_max paremter is changed to
1. Now, the restriction of player::pt_max is also applied to the
default player type. This means that all field players have to be
changed to the non-default type because the type of goalie cannot
be changed. If server::allow_mult_default_type is false and teams
use the default player type more than player::pt_max, rcssserver
automatically assign the heterogeneous player type to field
players just before the playmode is changed to kick-off.
* Added a new restriction to the player substitution. Now, the
online coach can substitute a same player type within
player::pt_max times. This restriction is not applied to the
default player type. If player::pt_max is 1, each player type
except the default type can be used only once.
* Slightly changed a noise model for movable objects. The new
formula is as follows:
double maxrnd = rand_param * speed;
PVector noise = polar2vector( drand( 0.0, maxrnd ),
drand( -PI, PI ) );
* Changed a kick noise model. Now, the current ball speed affects
the maximum kick noise value. Note that the maximum kick noise
value has no effects if player's kick_rand parameter is 0.
double maxrnd = kick_rand
* kick_power / max_power
* ( 1.0
+ 0.25*(dir_diff/PI + dist_2_ball/kickable_margin)
+ 0.5*(ball_speed/(ball_speed_max * ball_decay)) )
PVector kick_noise = polar2vector( drand( 0.0, maxrnd ),
drand( -PI, PI ) );
* The tackle power sent by player's command is restricted within
server::min_tackle_power and server::max_tackle_power. This means
the backward tackle is forbidden now.
* Changed a back pass rule. Now, an indirect free kick is taken
after the back pass at the location where the back pass
occured. Note that an indirect free kick can be started within
penalty areas.
* Changed a catch fault rule. Now, direct free kick is taken after
the catch fault.
* Now, goalie cannot catch the ball just after his kick. In such a
case, back_pass_[lr] is taken.
* Now, player's stamina, effort and recovery are never recovered at
the half time in the extra halves.
* Now, rcssserver accepts some coach commands from monitor clients
if coach mode is enabled.
* If server::max_monitor is a positive value, the total number of
monitor clients that can connect to the rcssserver is restricted
within that number. If server::max_monitor is a negative
value(default), there is no restriction.
[11.1.2]
* Fixed a bug in the offside referee.
[11.1.1]
* Fixed a bug related to the boost::random.
* Fixed a bug in the offside referee.
* Fixed a problem in the module path string configuration.
[11.1.0]
* Just updated a minor version number. Official relasese for the
RoboCup2007.
[11.0.5]
* Supported a client protocol version 10 and 11. There are no
difference between version 9 and 10. If the clients connect as a
version 11 client, server_param message contains new parameters,
'ball_stuck_area' and 'coach_msg_file'. And, if the file specified
by 'coach_msg_file' exists, version 11 coaches receive the external
message contained by the 'coach_msg_file'.
* Changed the format of the external message format for the coach
client. Now,included data is sent by the following format:
(include <BYTES> <DATA>)
e.g.
(include 4 test)
(include 26 ((name LEFT) 5 3 1 1 12 2))
(include 30 ((team LEFT) (team RIGHT) 2 1))
<BYTES> means the byte size of <DATA>. So, We can also send a binary
data to the coaches.
* Fixed first two problems in the penalty kick(#1720067). Thanks go
to Ralf Berger for reporting the problem and providing the patch.
* Fixed third problem in #1720067. Now, if the defending team player
kicks the ball, penalty_foul() is called immediately and the score
is awarded to the taker team. Thanks go to Ralf Berger for
reporting the problem.
* Fiexed a penalty kick bug that the goalie can catch the ball
anywhere.
* Fixed a rule about goalie catch fault and back pass. Now, if the
goalie catches the ball outside the penalty area, catch_fault_[lr]
is called and an indirect free kick is awarded to the opposite
team at the ball caught point after CATCH_FAULT_WAIT(30) cycles.
* Fixed bugs in the gzip compressor/decompressor reset operation.
[11.0.4]
* Fixed a defect in the random number generation.
[11.0.3]
* Fixed a goal kick rule. Now, any opposite side players must not
kick or touch the ball while goal kick mode. If opposite side
players kick or touch the ball before the ball goes out of the
penalty area, referee awards a goal kick again.
* Fixed a bug about trainer initialization.
[11.0.2]
* Fixed a defect of game logging.
[11.0.1]
* Fixed a problem of boost::uniform_real on some platform.
[11.0.0]
* Supported 64-bits OS.
* Added automatic drop ball for the ball stuck situation. New
server parameter 'ball_stuck_area' has been introduced. If
playmode is play_on and ball is within ball_stuck_area distance
for 'drop_ball_time' cycles, referee will drop the ball at the
current ball position.
* Added new server parameter 'coach_msg_file'. If this option is
given, data conatined by the specified file is sent to coaches as
one of the initial messages. Coaches must connect as the client
version 11 or later.
* Fixed trainer's hear message format.
* Fixed a goal kick bug. Now, any player cannot dribble while goal
kick modes.
[10.0.7]
* Fixed defect introduced by fixing defect #1235909
[10.0.6]
* Fixed defect #1235909 bug in parsing of unquoted player say messages.
Thanks go to Ma Jie and Yang Fan for reporting this bug.
* Fixed defect #1235911 in parsing 'and' conditionals within CLang. Thanks
go to Sina Iravanian for reporting this bug.
[10.0.5]
* Fixed build/install issue which cause libraries not to be found
* Fixed configure bug which cause configure to hang on rpm macro expansion
[10.0.4]
* Fixed defect #1222134 in which the kickable area used to decide possession
in KeepawayRef was too small. Also changed the number of consecutive
cycles in which a taker must touch the ball to declare a turnover from 5
to 4.
* Fixed compilation problems on with gcc 3.4. Thanks go to Alexander
Ferrein for providing a patch.
* Fixed gcc 4.0 build problems
* Fixed crash on exit when using libcsvsaver
[10.0.3]
* Fixed defect #1182281 which resulted in linking problem with playerparam