Open lukeoftheshire opened 2 years ago
There are 4 settings that control how much time participants have for each test:
'beginner_seconds': 95,
'intermediate_seconds': 30,
'advanced_seconds': 25,
'expert_seconds': 15,
However, there is no code that can change the difficulty during the game itself that I can see and mode
itself is a seperate setting that appears to only control which of these seconds keys is used. Additionally, neither the mode
variable nor the actual time allotted is stored in the ActivityEvent data.
I think we should consider removing these 5 variables and replacing them with a single time_allotted
or similar variable. Additionally, I think it's important to store the time in static data in case either the time or the difficulty setting is later changed.
Once this is resolved, the page at https://docs.lamp.digital/data_science/data_types/activity_types should be updated to reflect any changes.
Currently the code for Jewels has a few problems. It is essentially undocumented, which makes it difficult to figure out what each function does. In addition to this:
How the number of jewels increase from level to level is extremely esoteric - as near as I can tell:
bonus_point_count
setting. By defaultbonus_point_count
is 50. The running bonus total divided bybonus_point_count
is floored and stored aslevel
(a confusing name as it is NOT the same as the current game level).level
is exactly equal to the current game level, the game level is not changed. Otherwise, the game level increases by one (meaning a negative score still increases the game level)level
is greater than 1,level
-1, divided by thex_changes_in_level_count
then multiplied byx_diamond_count
(from settings) is used to determine how many extra jewels should be added. Because of this, scoring a lot of bonus points or having a lowbonus_point_count
setting can lead to a big spike in Jewels from one level to another. It is basically impossible to predict how many jewels will be added from trial to trial. Iflevel
is less than or equal to 1, nothing happens.This seems like a very complicated way to handle this - it feels like an attempt to make a leveled test that adjusts for user performance but the fact that diamond count increases unpredictably to a max of 25, cannot decrease, and the level value does not necessarily increase work against this. Should we consider: a steady increase of one level each time and increasing diamond count by the same amount each trial?
shape_count
setting overrides thevariant
setting when determining how many jewel shapes are shown in the first trial - so the first trial for Jewels B is always actually a "Jewels A" trial with one shape.diamond_count
is 25 or less for the first trial, so if it is set to 50, for example, the first trial has 50 jewels, and then the second has 25