readme.txt

NetGameLight:
A simple one process implementation of the Window Game.

To run a window game you must start the application (Console) with the proper parameters.
Below we enumerate all the necessary parameters.
1. game type: {SYMMETRIC, ASYMMETRIC, ONE_SHOT}
2. experiment type: {GAME, BGAME, BGAME_ALL_A, BGAME_ALL_B, WINDOW_GAME, ALL_WINDOW_GAME}
3. number of blended games: <int>
4. game id: <int>
5. duration of the game: <int>
6. duration of pregame: <int>
7. capacity in packets for each round: <int>
8. variable capacity: 0 for false, 1 for true
9. penalty model: {HYBRID, GENTLE, SEVERE}
10. queue policy: {DROPTAIL, RED, CHOKE, CHOKEPLUS, MAXMIN, GREEDYPLUS, PRINCEM, PRINCEG, PRINCEBASIC}
11. number of players: <int>
12. flow's policy: {AIMD}
13. players' parameter a or players' window: <int>
14. players' parameter b: <double>
15. last player's parameter a: <int>
16. last player's parameter b: <double>
17. seed of function Random(seed): if negative Random(), if positive Random(seed).

explanation for each parameter:

1. {SYMMETRIC} to run a window game where we seek for the parameters a and b which all players must adopt
   such that the window game to be on a symmetric NE. Warning!!! All application parameters are meaningful!!!
   {ASYMMETRIC} to run a window game where we seek for both symmetric and asymmetric equilibria. Players
   start with ramdomized values for a or b and in each round seek for the best value between a fixed minimum 
   and a fixed maximum value. WARNING!!! Only one of parameters 13,14 can be chosen correspondingly to b or a variation. 
   Parameters 15,16 are inactive. 
   {ONE_SHOT} to run a window game where players choose a window size and play only one round. 
   WARNING!!! Only parameters 1,2,3,4,7,10,11,13,17 are active!!!
2. {GAME, BGAME, BGAME_ALL_A, BGAME_ALL_B} options are available only for SYMMETRIC game and corresponds to 
   a game for one set of parameters (a,b), a blended game where we export the average statistics of some GAMEs,
   a blended game for many sets with different values for a, a blended game for many sets with different values for
   b.
   For ASYMMETRIC game only {BGAME_ALL_A, BGAME_ALL_B} options are available. Choosing a BGAME_ALL_A game the 
   simulator runs automatically games for every hardcoded value of a.
   For ONE_SHOT game only {WINDOW_GAME, ALL_WINDOW_GAME} option are available. With WINDOW_GAME we play 
   a set of window games with every flow having a fixed window with size equal to parameter 13, except from one 
   flow which has different window in every game. The last flow's window differs between two fixed values.
   With ALL_WINDOW_GAME the simulator runs many WINDOW_GAMEs each of them with different window values for 
   the standard group of players (expept one player who test all possible window sizes in every single game).
3. Number of individual games that must be played to export the statistics for a single game. A number of blended
   games greater than 20 gives better accuracy to the derived results.
4. Just an id number to differentiate games when a set of them run in a batch.
5. Number of rounds for a SYMMETRIC or an ASYMMETRIC game.
6. Number of pregame rounds for the above games. Gives a steady state of the game 
   before statistics start counting.
7. Total capacity of the common link.
8. Variable capacity to prevent synchronization.
9. TCP's loss recovery simulation.
10. type of queue policy on the router.
11. number of players participating in the game.
12. flow's congestion avoidance algorithm.
13. value of parameter {a} for {SYMMETRIC, ASYMMETRIC} games and size of window for {ONE_SHOT} game.
14. value of parameter {b} for {SYMMETRIC, ASYMMETRIC} games. 
15. value of parameter {a} for last flow of a {SYMMETRIC} game.
16. value of parameter {b} for last flow of a {SYMMETRIC} game.   

example 1. Given the parameters: SYMMETRIC BGAME 20 1 2000 200 100 1 HYBRID DROPTAIL 10 AIMD 1 0.5 2 0.6 -1 
the simulator will start a SYMMETRIC blended(20) game with 2000 rounds, 200 pregame rounds, 100 packets variable
capacity, hybrid penalty, queue policy:DROPTAIL, participation of 10 flows, 9 of 10 flows play with {a,b}={1,0.5}
and one flow play with {a,b}={2,0.6}.

example 2. Given the parameters: ONE_SHOT ALL_WINDOW_GAME 30 1 1000 500 300 1 HYBRID DROPTAIL 20 AIMD 1 0.5 2 0.6 -1 
the simulator will start a set of ONE_SHOT blended (30) games with 300 packets capacity, 20 flows participating,
Droptail queue policy and flows' window size changing automatically for every game, irrespectively of 
parameter 13 to 16.






