FMCorz / moodle-block_xp

A gamification plugin for Moodle allowing students to gain experience points and level up.
https://levelup.plus/?ref=github
150 stars 41 forks source link

The same rules for all courses and xp related with level #89

Closed sergeytolkachyov closed 5 years ago

sergeytolkachyov commented 5 years ago

2 ideas:

  1. It should be nice to have same rules for xp counting for all courses. Now I must do the same work in all my courses for each other block. Or may be rules should json import/export?

  2. I'm using algorithm for xp point counting. For ex, I set rule for text begining - 30xp. For text ending - 70xp. But if for 1st, 2nd or other low level I can take 1-2 tests and 1-2 lectures for getting new level, for top levels it must be ~50-100 tests (digits for ex.) and as many lectures.

In level rules you can use a multiplier for each level. So viewing the course module at the first level gives us 10xp, and at level 5 it's already 50. Otherwise, you'll have to create a huge amount of tasks for the top levels.

FMCorz commented 5 years ago

Thanks for your suggestions.

1/ In the admin you can set default rules, when the block is added to a course those default rules will be populated by default. However, we are aware that it would be useful to reset a course to its defaults, as well as reset all courses to the admin defaults.

2/ I'm not sure I follow you. What are text beginning and ending?

The point of using a modifier in the Levels definition is to increase the difficulty as a student progresses. If increasing the difficulty is not desired, you can remove the multiplier and use a constant amount of points required for each level.

sergeytolkachyov commented 5 years ago
  1. Saw it. Was not attentive. Thanks.
  2. This is default settings: In rules I set xp points for all lecture events. The sum is about 100 per 1 lecture.

    Level | Points | Course Element Weight (Rules) | How many elements need to complete level 1 | 0 | 0 | 0 2 | 120 | 100 | 2100xp=200 (Cool, we got 2nd level) 3 | 276 | 100 | 1 (200xp+100xp=300xp - we got 3 level) 4 | 479 | 100 | 2100=200 (300xp+200xp=500xp - we got 4 level) 5 | 743 | 100 | 3100=300 (500+300=800 - we got 5 level) 6 | 1086 | 100 | 3100=300 (800+300=1100 - we got 6 level) 7 | 1532 | 100 | 5100=500 (1100+500=1600 - we got 7 level) 8 | 2112 | 100 | 6100=600 (1600+600=2200 - we got 8 level) 9 | 2866 | 100 | 7100=700 (2200+700=2900 - we got 9 level) 10 | 3846 | 100| 10100=1000 (2900+1000=3900 - we got 10 level)

The number of course elements required to obtain the next level increases to higher levels of the game. When I tried to increase distance between levels (set coefficient to 1.5) I got 8993 xp point on 10 level. And if at the default settings I needed 39 course elements to get the 10 level, now their number will increase incommensurably. And I wanted to try a system of 40 or 100 levels...

I'm talking about introducing for the rules an incremental coefficient that would depend on the level calculation factor. So for a single rule (viewing a course item, for example), I also indicate the base amount of experience points and at the 1st level I get 50xp for the event, and at level 8 - more for the same action. This will increase the weight of the action at higher levels and the student will not die, passing a huge number of lectures and tests to get level 40 :) Alternatively, you can use this coefficient setting for each rule per level.

I work in a music school and teach solfeggio and music history. In these courses only 34 lessons per year, which means 28-30 lectures and 10-15 tests. For the year students will not have time to work 39 elements qualitatively to get the 10 level in the current scenario. Complicating the adjustment of the level system would bring the unit closer to the gaming systems and simplify life at high levels.

FMCorz commented 5 years ago

I'm thinking that your definition of the levels is the culprit rather than how much users earn at a certain level. Whether you earn more points by doing something, or need less to get to a level, the result is the same.

Have you considered the following setups:

Level count: 40
Base points: 5
Coefficient: 1

The above leads to needing exactly 3900 points to get to the highest level. Students will quickly progress through the lower levels, then each other ones will become harder, the last one requiring two lectures to go through.

Or

Level count: 39
Use algorithm: No

Level 1: 100
Level 2: 100
Level 3: 100
...
Level 39: 100

Where each levels require exactly the same amount of points.

It neither of these work, perhaps you can come up with your own scale by manually entering the required amounts for each.

What do you think?

FMCorz commented 5 years ago

Closing as inactive.