## Rule Game Server Documentation

### Designing an experiment

If you are a researcher designing new experiments, these are documents for you.

- About the initial board settings and the control flow
- About the balancing algorithm, used to assign players to trial lists.
- Preparing an experiment:
- What's new in Game Server 2.* (slides for a presentation, PDF)
- What's new in Game Server 2.* (same in HTML)
- Standard Operating Procedures: Preparing and running an experiment with the Rule Game Server
- About the data files
- About the syntax of rule set files
- Bucket expression arithmetic: more about the expressions used to compute the accepting bucket number(s)
- Try out your arithmetic expressions!
- Notes on Rule Game Server parameter sets
- Using custom colors and shapes in Game Server 2.*
- Using the random board generator with a post-processing script to create predefined initial boards.
- Adding a plan or a rule set to the MLC or APP launch pages

Online tools for experiment designers:

- The clear tables tool. You can use it after you have modified an existing rule set file, and want to make sure that the server reloads it right away.
- The experiment plan validation tool. Use it to check the syntax of your rules, etc.

### Processing experimental results

Read here about the data saved by the Rule Game Server, and how to use them

- The Analyze Transcripts tool

### For the ML team

- The Captive Game Server
- Board display tool (for Shubham and the rest of the ML team)

### Client-server interaction

If you are designing a TypeScript/JavaScript front end GUI app to run in a web browser, or an Android app, these documents discuss how the front end app is to talk to the Rule Game Server

- [Obsolete]: Web API: First Batch (for research API, without player name and SQL databasse). This also includes HTML play (old version), an HTML-GUI interface for the first batch API.
- Web API: Second Batch (in use for the main public-facing API). This page also includes:
  - HTML play (second batch),
  - GetImageServlet (since ver. 3.0)
- Java API documentation

### Managing the Game Server

- SOP: Maintaining and deploying server code and server data files

### Old proposals

- Proposal: wildcard syntax for a wider object space (2021-04-01) -- an early proposal, mostly superseded by subsequent ones
- Proposal: image-and-property-based description of objects (2021-04-13) -- mostly implemented
- Proposal: code snippets (2021-05-20) -- still outstanding

## Github repositories

- Rule-Game-server - server code
- Rule-Game - client code. (To see this page, you must be an authorized user at Lupyan Lab; otherwise, you'll just see Error 404)
- Rule-Game-game-data - experiment control files (trial lists, shapes, etc). (To see this page, you must be an authorized user at Lupyan Lab; otherwise, you'll just see Error 404)
- ruleGameHumanDataAnalysis - ask Aria for access and details.

## The front-end (GUI) tools, from Kevin

- Board builder (dev)
- GUI play (prod), with

  exp= | Show intro
  workerId= | Skip intro

- GUI play (dev)
- GUI play (dev), with exp=, workerId= Show intro Skip intro
- GUI play (dev 2020-12-28), with exp=, workerId=