# Towards Adaptive Gamification: A Method Using Dynamic Player Profile and a Case Study
## 5 Adaptive Method Evaluation
### Results  
Once how the bot simulates a real user has been stated, we will consider three methods in function of whether the value of \(PR^{(t)}\) is fixed or variable along the time (_A_--_constant player rating; B_--_random dynamic player rating; and C_--_our method: dynamic player rating)_, assuming that the bot has previously answered the HEXAD questionnaire (fixing \(PR^{(0)}\)). Moreover, we define how the error is computed to compare the three methods. For each method, we analyze two cases (accurate answers, inaccurate answers). 1. **Method A**--Constant \(PR^{(0)}\): a constant player rating, \(PR^{(t+1)}=PR^{(0)}\), is assigned at any time. In this case, we use Equation (9) to calculate \(U^{(t+1)}\) once and always use its maximal component. We calculate the error as follows. Since \(PR^{(t+1)}=PR^{(0)}\), the distance is simply calculated as \(Err=|RPT_{0}-PR^{(0)}|\). Note that if the user has accurately answered the questionnaire, we have \(Err=0\);
2. **Method B**--Random dynamic \(PR^{(t)}\): a dynamic player rating \(PR^{(t+1)}\) is randomly chosen at each time \(t\) and then, the game element selected to be shown is also the maximal component of \(U^{(t+1)}_{i}\). Note that this method is equivalent to picking a random game element. In this method, we compute the error as the average distance between \(RPT_{0}\) and a random point \(p\in\{(x_{1},\ldots,x_{7})\in[0,1]^{7}:\sum_{i=1}^{7}x_{i}=1\}\) using the average distance of random points in a unit hypercube (average distance of random points in a unit hypercube, [[https://martin-thoma.com/curse-of-dimensionality/](https://martin-thoma.com/curse-of-dimensionality/)]([https://martin-thoma.com/curse-of-dimensionality/](https://martin-thoma.com/curse-of-dimensionality/)), accessed on 1 November 2021). 3. **Method C**--Our method, dynamic \(PR^{(t)}\): a dynamic player rating \(PR^{(t+1)}\) is computed according the \(s^{(t)}_{i}\) defined by Equation (6). The bot then simulates \(\tau^{(t)}_{i}\), \(n^{(t)}_{i}\), and \(o^{(t)}_{i}\) using \(\top^{(t)}_{i}\) and \(\Theta^{(t)}_{i}\). The game element selected to be shown is a weighted random choice of \(U^{(t+1)}\) (see step 3 in Figure 2). In this method, we calculate the error \(Err\) based on the distances between \(PR^{(t)}\) and \(RPT_{0}\) for all \(t\) from 1 to \(n\_iter\): \[Err=\frac{1}{n\_iter}\sum_{t=1}^{n\_iter}|RPT_{0}-PR^{(t)}|\] (12)  
Experiments were performed using the gamification software described in Figure 8 and run on a Windows 10, Intel Core i7 processor with 8 GB RAM. Table 3 shows the mean errors (i.e., the distance between \(PR^{(t)}\) and the real player profile \(RPT_{0}\)) and the standard deviation (SD) obtained by the three methods: (A) constant player ratings; (B) random dynamic player ratings; and (C) our method dynamic player ratings. In the simulations, the initial setup of a bot consists of its \(RPT_{0}\) \"real\" player type, i.e., what define its playing behavior, and its approximated player type \(PR^{0}\), i.e., the results of its player type questionnaire. We analyzed the three methods on two cases (accurate and inaccurate answers). Moreover, we define the worst and the best scenarios in all methods. The _worst scenario_ is defined by the bot that produces the biggest error in method C. Similarly, the _best scenario_ is defined by the bot that produces the smallest error in method C. Then, Table 3 also depicts the errors obtained by those bots in methods A, B and C that started the simulation using the same \(RTP_{0}\) and \(PR^{0}\) as the bots in the best and the worst scenarios of C. In method \(A\), as we take into account \(PR^{(t)}=PR^{(0)}=RPT_{0}\), accurate answers are the ideal case (\(Err=0\)). However, with inaccurate ones the mean error grows to 0.0311.