Replies: 5 comments 5 replies
-
I don't think this is possible, since:
I would also like to point to the following section of the FAQ: https://wiki.openstreetmap.org/wiki/StreetComplete/FAQ#Gamification
There are a few issues here:
|
Beta Was this translation helpful? Give feedback.
-
this does not change your points but SC has some: for website, statistics, photo hosting and to list SC versions that are so buggy that they should stop being used (anything else?) though edits are directly between OSM servers and given user |
Beta Was this translation helpful? Give feedback.
-
|
I changed this to a discussion because it's mostly a collection of ideas. Thanks for the input! I agree that the gamification aspect of the app is maybe not made... that, hmm, professional as real games. It's not the focus, though, the focus is primarily to be a very low barrier of entry way to contribute something to OSM. The gamification there is should basically mostly just introduce the user to OSM in general. Anyway, as the previous commenters noted, I can not forbid anyone to create a leaderboard himself. Also, did you know there was an OpenStreetMap "game" with a very similar concept as StreetComplete before? Already in 2013, it won many innovation awards, was mentioned in the newspaper and all. Kort. I didn't, when I got the idea for my app, because nobody used it and hence it was quite unknown. I think the main reason why it failed to gain traction was the indirect way of editing - that each contribution required some other user to also answer any given question the same. So, in the end, basically no edits were made with the app at all. |
Beta Was this translation helpful? Give feedback.
-
|
I do like the idea of non-linear progression, specifically for achievements. This might help making achivements less spammy: #6493. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for the discussion! 1. leaderboardThank you for the explanations, I see now it's impractical if not illegal/unethical to ban others from creating leaderboards. It can at least be policy of this project not to have a leaderboard within the application. I think there's still merit to the idea of showing one self's rank as percentage of total/country/city contributions rather than numerical order, to further discourage competition: maybe you've made 20% of city contributions, you don't know if you're 1st or 2nd, but you're going to care less because you can take pride in your % of contributions, giving you a feeling of ownership of the output more than caring about placement. It requires some thought and maybe shouldn't be part of this discussion, in favour of the more impactful non-linear progression 2. non-linear progressionI understand gamification is not the point, my feelings won't be hurt if none of these suggestions are implemented :) . As I said, "I loved the app", I think it's a fantastic way to introduce users to OSM contributions. But it sounds like some level system would be appreciated. I would like to put more emphasis on rewarding certain types of quests more than others, and changing those weights once a week or so. This helps maintain a feeling of purpose and motivation, and might nudge you into doing quests. you normally wouldn't do otherwise. This can be done client-side with a deterministic PRNG, or just a linear cycle. It doesn't need server-side infrastructure: even if a user tries to log in from a different device, they can recalculate it from their own OSM contributions because they include dates. I don't know if the app is downloading and caching all of their own contributions on startup, if not maybe this is not that easy to implement. Another complicating factor is that if new quest types are added or removed, there needs to be a checkpoint at that date where the PRNG will work differently before and after or it might change how much score each of the previous contributions provided. This adds some development overhead, but it is possible. Alternatively, the contribution score can be added to the OSM contribution as metadata (I don't know if this is acceptable), but this leads to a very easy "hack" where someone edits their metadata. The good news is we don't need to use this score in the leaderboard or % calculation, it can be completely local to the user, so if they make the edit then they're just ruining their own fun and it doesn't affect anyone else. 3. cross-checkingI wasn't aware of Kort! Forcing contributions to only be valued once they're checked when the user base is small has some problems in terms of usability. I think the approach of cross-checking only a small percentage of contributions and providing punishment retroactively would work better, but I also understand this wouldn't be easy to implement in SC. If metadata is allowed in OSM contributions, and it can be queried, then I think we could do it without a central system, and consider those cross-check contributions when calculating one's own score/%. But it sounds like it's not worth implementing this until it becomes a problem. It might also be possible without metadata, but might be intensive for the requester: for each of your contributions in the last 10 days, see if any more recent contributions have been made for the same quest id (I don't know what the data looks like, but I assume each quest has some form of identifier by location and type, as "what is this changing in OSM"), and if there's more than 2 of them, compare and adapt score. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Use case
I loved the app for the first day I used it, I found it as an alternative to pokemon go that might provide value to my local community, and makes me look at the outside world more than my phone screen.
Unfortunately after the first 2 days, it's rare that I think of opening it, as I don't typically contribute to OSM, and I just don't get the "happy" feeling or the incentive to go out for a walk with the app open.
Proposed Solution
I've read the gamification proposals I could find, and am aware of the problems presented, but I think there are solutions, so let me start with one that helps address competition-induced quality decay:
1. never have a public leaderboard
Outright have a policy that says "it is not permitted to create a public leaderboard, or publicly distribute instructions for creating one".
The app currently shows you your rank in country and global, which I think is nice, if maybe not already too much. It would help to add some kind of visualizations to show how much of an impact a contribution has. I don't have a clear idea here, but perhaps "(# your contributions) / (# global contributions)", so that you see that number grow very fast at first, and then slow down, incentivizing new users to give a few more contributions. This leads to the next item.
2. non-linear "level-up"
Right now the number of contributions you've given is very prominent and always visible. This number increases linearly, 1:1 with contributions. Past ~100 contributions, this doesn't give much of a feeling of enjoyment to casual users, in fact makes you feel less interested in continuing because of clearly diminishing returns of each contribution.
What games do well is hiding the fact that a single action has negligible impact, by giving you a feeling of progression, and some goals to strive for. Right now the app gives you a link to OSM-related resources every 10 contributions or so, which is an incentive, but I don't know how effective it is. These are resources that don't feel earned, and it's good to spread them, but maybe more by some kind of daily tips, or specific to one "type" of quest, e.g. 10 bike-related quests highlights the relevant resource, then +15 for the next one.
If there was a concept of exponential or non-linear "level" instead, where each contribution functions like "experience" (exp) would in a pokemon game, I think I'd find the app much more fun and use it more often.
In pokemon games, level is essentially
k * exp**(1/3), the cube root.kis a value to tweak based on what feels nicer in the given context. 1 exp could be 1 contribution, and the app would already be much more interesting for people like me, showing the level in the top left corner, and a progression bar showing percentage (only!) to next level, hiding total contributions in a stat screen, as a less relevant number.But we could explore a few more options, e.g. certain types of more needed (or more difficult) quests give different amounts of exp. Quests that you do less often might provide more exp, incentivizing variety. Some quest types might be highlighted for the day or week, giving more exp points, and synchronized among users in that area (or globally), so we all learn more about them and can have meaningful discussions in communities about details.
This last one adds a bit of competition, because if e.g. a curb height quest is highlighted, and there's only so many curbs in the city, you're competing with other streetcompleters (street competers?) to get them before they're taken by someone else, and we need the experience to be cooperative instead, which the next point should help with.
Maybe leaning more directly into the pokemon style to capture that audience would be good (or not), e.g. starting at level 5, and getting progressively closer to level 100. Assigning quest groups as pokemon-like groups (grass -> nature, ground -> streets, psychic -> accessibility). Or starting out with limited (less complex) types of quests, and progressively unlocking harder ones on level up.
3. cross-checking between users
If competition makes you want to lower quality to see the number go up, we can address that by making the number go down disproportionately if the quality goes down.
The basic system would be that a random sample (~1%) of recently (~3 days) completed quests show up for a sample (~50%) of users anyway, and once completed by at least 4 different users (with at least e.g. level 5), some central system compares the results, and if exactly one is an anomaly, it punishes that user.
There's a lot of details to think about here, but iterating is possible.
it's a tricky balance to get punishment right. There will be false positives (of low quality), and you don't want the user to feel that the whole thing is unfair and rigged, but you also don't want to give such a small punishment that they're ok just taking it, like too many people I know do with parking tickets. The main punishment would be removing some portion of exp, but if high-frequency offenses, a ban from OSM/the app would make sense.
In my cursory overview, I didn't see any server code, so I understand that central system might not be easy to add, and concurrency is something to deal with, but it would definitely increase trust in the output of this app regardless of gamification, but also allow some more healthy competition to be used for the greater good.
summary
I'm a (mostly web) developer and am happy to help, but I've never used gradle or kotlin in anger.
Beta Was this translation helpful? Give feedback.
All reactions