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

Synchronize quests between devices (pair/group social mapping mode) #2083

Closed
smichel17 opened this issue Sep 8, 2020 · 6 comments
Closed
Labels
wontfix idea rejected because it is out of scope or because required work is not matching expected benefits

Comments

@smichel17
Copy link
Member

Use case

A small number of times, I've tried going mapping (technically: surveying) with someone else. This is awkward because StreetComplete is not optimized for multiple people mapping the same area at the same time, mostly as a result of:

  1. Changes someone else makes on their device take a long time to be reflected on my device.
  2. If I accidentally answer a quest that my friend already answered, StreetComplete will invalidate its cache, and needs to re-download many quests.

So far, the solutions I have tried are:

  • Each person maps one side of the street. This works pretty well, but is less social than I would like, and there can be some awkwardness at the ends of streets (eg, a house on the corner — who should map it?) since you can't see whether the other person mapped it already.
  • Just use a single phone. More social, but if the other person is not familiar with StreetComplete/OSM already, there is a lot of passing the phone so they can look at the different options available in the dialogue. Not a great introduction to mapping.

Proposed Solution

I think the smallest feature necessary to make this work would be a way to synchronize quests between two devices, so when my friend answers a quest, it immediately disappears from my phone (and displays the next quest, if one exists). This could be done peer-to-peer, over bluetooth or wifi, or with a central server as a middle-man, whichever is easier.

I can also think of several enhancements for later — showing the other person's location and which quest they are answering; supporting more than two people… — but the simplest version of this feature is already complicated enough, so let's start there.

@matkoniecz
Copy link
Member

matkoniecz commented Sep 8, 2020

So far, the solutions I have tried are:

Other possibility is to have distinct sets of quests - one person with building related, one with road related

@westnordost
Copy link
Member

westnordost commented Sep 8, 2020

I think the smallest feature necessary to make this work would be a way to synchronize quests between two devices, so when my friend answers a quest, it immediately disappears from my phone

This is not trivial to do (at all). StreetComplete would basically need to learn to communicate with nearby devices via bluetooth or something (if no central server is used), there must be a protocol for synchronizing this information and the map view must be reloaded every time your friend solves a quest (which will lead to visible pauses while using it) plus cases would need to be handled where you are currently answering a quest when it then should vanish because it was answered by your friend. A very rough estimation of this feature would be no less than 3 weeks of implementation time, probably more. This is simply not worth the time.

@matkoniecz offered a far simpler solution that is also available right now (and always has been).

@westnordost westnordost added the wontfix idea rejected because it is out of scope or because required work is not matching expected benefits label Sep 8, 2020
@smichel17
Copy link
Member Author

I will try @matkoniecz's suggestion the next time I do this. I suspect it will have a problem, where there is a vast imbalance of quests in my rural neighborhood (many more houses than streets or anything else, and the house quests are often dependent upon one another so they cannot be easily split between devices).

the map view must be reloaded every time your friend solves a quest (which will lead to visible pauses while using it)

How is this handled when I answer a quest, myself? Is the pause "hidden" by animations, or is there a way to do incremental updates?

This is not trivial to do (at all) […] simply not worth the time

I agree it would be very complicated (and I acknowledged this in the last sentence of my post). However, I think it would probably be worth the time, because features that make pair/group mapping more enjoyable make it easier to get new people involved. I will let you argue my point for me 😆 — from #866 (comment):

Once a user cleared his area of the quests, they are not coming back. So that means that to keep a steady amount of edits, new users must join or quests be added (or both) constantly. Unlike satellite-imagery-based tools like JOSM and iD, where users once enthused about OpenStreetMap will just continue to map other areas if their first area of interest is complete, this is going to happen much less for StreetComplete

That said, I think there are plenty of other, easier issues to be tackled first, so I'm also happy to leave this closed, and we can re-open if someone is interested in implementing it in the future :)

@westnordost
Copy link
Member

How is this handled when I answer a quest, myself? Is the pause "hidden" by animations, or is there a way to do incremental updates?

Well, the same. But it is triggered by an interaction you initiated, so it is less of a nuisance. It is kind of hidden by animations (I think the actual reloading happens in a background thread), on good devices it is probably nearly seamless. There is no way to do incremental updates in tangram-es (currently).

@matkoniecz
Copy link
Member

In #2189 @RubenKelevra invented way to achieve this effect without any synchronization

@smichel17
Copy link
Member Author

I saw, that's a great idea. I think there are a few benefits to sync, but the cost:benefit ratio of that idea is waaaaay better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix idea rejected because it is out of scope or because required work is not matching expected benefits
Projects
None yet
Development

No branches or pull requests

3 participants