Title: A Presentation of REGATE
1A Presentation of REGATE
Romain ZeiligerCNRS-GATE 93 Chemin des
Mouilles, 69130Ecully, France.zeiliger_at_gate.cnrs
.fr
Downloading REGATE http//www.gate.cnrs.fr/zeili
ger/regate/regate.htm This presentation
http//www.gate.cnrs.fr/zeiliger/regate/RegateInt
ro.ppt
2Technical Aspects
- Windows 95, 98 and NT platforms
- Internet protocols (TCP/IP)
- One software only used as client or server
3Architecture
server
Liaison Internet (TCP/IP)
Players (clients)
4Server screen sample
5Player screen sample
6REGATE highlights
- Simple
- one software works as server or client !
- standard player interface no interface design !
- Flexible
- script programming
- 12 statements only.
- multi-lingual
- one script encompasses several languages
- each player can interact in his own language
- Efficient
- easy debug using artificial players
7Preparing an Experiment
- A three stages process
- 1-Scripting
- 2-Debugging
- one computer - simulating players
- n computers - using artificial players
- 3-Testing
- n computers - using human players
81- Scripting with REGATE
- Every experiment has to be programmed as a script
- Scripts are object-Event based
- 4 predefined objects SERVER, J1, J2, J3
- 3 players roles
- 12 statements only.
- No predefined message (except START)
- Ex
- Script can be enhanced by specific programming.
9Script structure
Statements section
Data section
10Messaging
START
Regate server
objects
SG
SG
END
END
message
Regate player J1
Regate player J2
statements
11Players and groups
Regate server
Regate player J1
Regate player J2
roles
Regate player J1
Regate player J2
Regate player J2
Regate player J1
12Roles
Regate server
Send to every J1
J2
J1
J1
J1
roles
13Variables
- Each object (SERVER, J1, J2, J3) has its own
variables - Messages can transport variables from the
SERVER to any player and vv.
Regate server
Regate server
definition
transport
OFFRE1OK,offre1
SG,d
Regate player
14Advanced statement example
Send to every J1 message RESJEU1
If session parameter is 1
Variable s and variable gj (with jplayer number)
15Player interface
Script
Player screen
16Multi-lingual features
All texts in english for all players
Multi-lingual experiments
Each player select his own language
172- Debugging the scripts in simulation mode
Script window
Simulated players screens
Goal check the programs syntax and logic
183- Debugging the scripts with artificial players
Running the server with artificial players option
Regate server
Artificial J1
Artificial J2
Defining input variables range for artificial
values
Artificial J1
Artificial J1
Goal check the experiment implementation in
context
19Before running the experiment
Defining the data to be recorded
Defining the experiment session plan
Defining the data to be displayed on the server
20Running the experiment
Regate.exe SERVER
IP N 156.18.56.107
Experiment progress
Regate.exe CLIENT 156.18.56.107
Regate.exe CLIENT 156.18.56.107
Regate.exe CLIENT 156.18.56.107
Feedback
Regate.exe CLIENT 156.18.56.107
21Limitations future work
- Limitations
- integers only
- 16 players
- limited statement set
- one group restriction in some cases
- Future work
- overcome limitations
- improve recovery on errors
- improve script language (extended to Microsoft VB
?) - improve server and player interface
- going HTTP ?
22REGATE use
- 31 scripts in library
- Ultimatum bargaining games
- Public goods
- Principal agents
- Others (ex bank panic ...)
- Experiments in
- GATE, Université Lumière, Lyon.
- GRESE, Université de Franche-Comté, Besançon.
- BETA, Université Louis Pasteur, Strasbourg.
- Humbolt Universitat, Berlin.
- University of Karlsruhe.
- Pittsburg University.
- Purdue University, West Lafayette.
- CIRANO, Université de Montreal.
23REGATE statement set
Advanced
- timer(Tend,Twarning,TextEnd,TextWarning)
- pause(delay_in_milliseconds)
- even(avar)
- gains(AVERAGE,avar,gainrow,validrounds,taux)
- random(avar,max)
- gains(AVERAGE,inVar,gainRow,LastRounds,Taux)
- publicdisplay(ttt var ttt)
- table(nrow,ncol,labelrow1,labelrow2,...)
- tableupdate(a11,a12,a13,...)
- traces(thetext var and etc )
- feedback(label1,label2,label3,...)
- feedbackupdate(var1,var2,var3...)
Basics
- tell(thetext)
- tell(Txx,thetext)
- tell(-)
- tell()
- ask(OK)
- ask(NUM,invar,max)
- ask(NSB,invar,max,min,echoexpression)
- ask(TEX,invar)
- ask(ALT,invar,label1,label2,value1,value2)
- ask(TRI,inVar,Label1,Label2,Label3,value1,value2,v
alue3) - send(SERVER,message,var1,var2,...)
- send(Jx,message,var1,var2,...)
- set(avarvalue)
- (avarvalue)any_statement