Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

additional solo game configuration and integration with prolific #951

Open
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

sgfost
Copy link
Contributor

@sgfost sgfost commented Aug 19, 2024

multiple solo game configurations implemented with a game type identifier used to switch between different treatments, event sets, initial parameters, etc.

workflow:

prolific -> qualtrics -> portofmars.asu.edu/study/prolific (which redirects to a page that steps through the 2 games) -> back to prolific with a completion code

TODO:

  • resolve "lose X resources" not being applied bug [CANT REPLICATE!]
  • swap out one of the conflicting resource-affecting cards so that they can't both be in play after murphy's law
  • add better splash screen instructions (requires rolling treatments before the splash screen)
  • admin form for studies (@saachibm)
  • easy export for participantId, paymentAmount csv (can just copy paste from text box in admin page)
  • BUG: treatment selection may not be random?

resolves virtualcommons/planning#75

@sgfost sgfost marked this pull request as ready for review August 27, 2024 00:34
this allows for multiple configurations for the solo game (game params,
treatment sets, event card sets)

* add prolificId to User
TODO: define each of the event cards for the prolific configuration
* adjust starting sys health and resources for prolific configs to 15
  and 10 respectively
add defaults to `SoloMarsEventCard` fields to cut down on unnecessary
repetition
TODO: separate page, splash, gameover, etc..
TODO: implement the client flow in ProlificStudy.vue

participants enter via /study/prolific url and a user
account/participant record is set up for them. They are then redirected
to a page that takes them through the process of completing the required
games

studyId in the /study/prolific params must match an existing study which
can be created via the cli:

npm run cli study create -i <studyId> -c <completionCode> -d <desc>
this requires rolling the treatment when the participant is created
instead of when a game is built

* swapped out two resource-affecting event cards to avoid conflict
* squashed migrations
this is a more reliable way to keep track of the games that a
participant played, using the User relation involves some guesswork
things went haywire without a hard refresh because events, treatment
params, etc. remained the same object reference
@sgfost
Copy link
Contributor Author

sgfost commented Oct 19, 2024

This is mostly straightforward but seeing if you want to give any input here before merging @alee

The qualtrics -> pom -> prolific trip seems to be working so we're going to shoot for a pilot study whenever $ hits the prolific account

previously, system health would get subtracted at the start of each
round after the first, which led to the last round acting as a freebie

this maintains virtually the same gameplay and data recording, with the
exception of the final round

resolves virtualcommons#970
…eover

If initialization was slow enough, the investment command could be
queued before the round was fully set up, which caused compounding
inconsistencies. We can use the canInvest flag to prevent this

After moving system health deduction to the end of the round, the game
would end before persisting the round if caused by the natural system
health deduction. Now a persist cmd is queued up before the end cmd
relying on db defaults is problematic when changes are made
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant