empiricaly / empirica

Open source project to tackle the problem of long development cycles required to produce software to conduct multi-participant and real-time human experiments online.
https://empirica.ly/
Apache License 2.0
43 stars 8 forks source link

Players get 'no game found' if there is a batch (or batches) with different treatments #543

Open ChillyWillyGH opened 3 months ago

ChillyWillyGH commented 3 months ago

Is there an existing issue for this?

What happened?

This can be recreated with the initial demo application (from empirica create test-app)

Create a batch with two games - one of each treatment. Or you can create two separate batches with one game each. The key here is that you're running two different treatments at the same time.

Join players into the games - you will see one of the treatments get 'overbooked' (yellow icons).

Complete the intro step for players - when the game starts, the overbooked players are dropped (no more games).

Clearing the users in the users page of the admin screen does fix this. But we don't want to have to do that every time.

Steps To Reproduce

empirica create test-app cd test-app empirica

Go to admin panel, create a batch with two games, each with a different treatment (one solo, one two player).

Create 3 player tabs and join the game (enter player identifier). You should see a player (or two) overbooked (yellow icon).

Complete the Intro step by clicking next on each user.

Players who were overbooked will not go to the other game, they will just be dropped with 'no more games'.

Empirica Version

Version: v1.10.0
SHA:     5467a49
Build:   208
Branch:  main
Time:    2024-03-31T02:18:22Z

Client:  1.10.0
Server:  1.10.0

What OS are you seeing the problem on?

macOS, Linux

What browser are you seeing the problem on?

Chrome

Relevant log output

No response

Anything else?

No response

Code of Conduct

npaton commented 3 months ago

I believe this is the expected behavior. Whether it's right behavior is up for debate. I am not an expert at statistics or experiment randomization. The 2 behavior at play are:

I am very much open to discussion on this. We should probably be able to introduce some configuration options to the default assignment logic. You can always override the default logic, but that is a non-trivial amount of effort, and common scenarios, such as the ones described in this ticket, might be better served by simply changing a setting. We can also discuss what the defaults should be.

CC @amaatouq @malsobay @JamesPHoughton