[enhancement] mission groups
I had some problems related to Mission Day in Sacramento this weekend that led me to start thinking it would be a good idea to create "groups" of missions. I'll explain the problems I had, then what I mean by mission groups, and use cases for mission groups.
In May of this year, there was a Mission Day in Sacramento. These missions had names like "MD 2019: Sacramento, Sutters Fort", and a black bottom border on the mission image. The mission day this past weekend had a DIFFERENT set of missions. These missions had names like "MD OCT 2019: SAC, Riverfront Promenade", and a white bottom border on the mission image. Also, Sacramento has at least 37 mission banners, the largest of which is 72 missions long. Opening up "missions" in app was useless; I was drowning in "part N of M" of various banners. Sorting by name and "More Missions" multiple times only brought up a few, so when I found a "MD 2019" mission, AND NO OTHER "MD" missions, I thought I was good to go, although I only saw one, so I definately needed a map. A google search for 'mission day Sacramento October 2019' gives https://events.ingress.com/MissionDay/Sacramento19 as the first hit, which has, under map link, "TBD". The google results do NOT include https://ingress.com/eventdescription/missionday/md-2019-10-sacramentocausa_4bcac203-498b-55b7-97ac-1246c7d362c6 , (what a url! Plus, has anyone heard of SEO?) which is the official page with a proper map link. In the field and on the ground, not all decisions made are perfect. I grabbed a map from somewhere (I do not recall if I did more googling, or if (more likely) i got it from a slack or telegram message), and as luck would have it, it was the May map, not the October map. I happily and speedily did 6, and went to checkout early so I could be done and get in my car for the 5 hour car ride home. You can imagine my disappointment when they refused to check me out because I had done the "wrong" missions. (This whole interaction stank; at other mission days I've seen POCs check out newbs who didn't understand the whole thing and did 6 missions, just not all 6 from the sanctioned set. It also stank for other reasons; a POC telling someone in a wheelchair to "just cargress them" shows a deep lack of understanding and empathy.) So I sucked it up and did 6 more off the "correct" map, making a total of 7 miles of moving about for the day, 25 miles total for the weekend, and delaying my trip home by 4 hours.
Also, mission distance in the missions list in app is determined as distance from the START/FIRST portal, EVEN IF THE MISSION IS HACK IN ANY ORDER. At one point I wanted to start at the #6 portal working backwards, had to sit down and juggle scanner, intel maps, and a google map for way too long to figure out which of many dozen "nearby" missions I actually wanted to start.
Ok, so what do I think might help?
The "Missions" page needs two tabs; one for individual missions, and one for groups of missions. An individual mission may be part of a "group". These can be assigned via the Mission Authoring Tool. (It's important to allow multiple agents to submit missions to the same group; not all missions in all banners are submitted by the same agent, sometimes we split them up. Perhaps a group should have a "group captain" in charge of allowing other agents to add missions to a group). The groups tab would show nearby groups. "MD 2019: Sacramento" might be a group, "MD OCT 2019: Sacramento" might be another group. The 24 mission banner "Girl With a Link Amp Earing" might be yet another group. Tapping on a group in the group list would bring up a list of missions that belong to the group.
How would this help?
If this were a feature, I would have gone to the group list and seen both "MD 2019: Sacramento" and "MD OCT 2019: Sacramento", and quickly figured out which one I wanted, or at lest known enough to ask which one was correct.
If this were a feature, doing banners would be much easier. Where to start, and what order to do them in, would be much more clear.
I also did "Intel Ops" on Friday. This event had a set of missions. We had similar problems finding all of the missions related to this op. A Mission Group feature would have made this way more playable.
Comments
Filter groups I'd like to see:
1. User-created single missions.
2. User-created missions that are part of a series (for example, there are 32 US military medals in my area at various veterans or military sites, and a set of gorgeous classic tourism posters from the 1930s at their respective locations.)
3. User-created banner missions.
(Note that banners and series are not always created by the same person.)
4. Official Niantic mission day missions
5. Official Niantic missions of other flavors (Goruck, Clear Field, Intel Ops, NL-1331, etc.
6. Semi-official things like First Saturday banners.
While I'm asking for the impossible:
Date published. Published last week and three completions or published three years ago and one completion?
Date last edited.
Date of most recent completion. (I'm looking at you, Pacifica mission waypoint now off limits due to beach erosion...)
Filter by average completion time and approval percentage. (I've started that three hour hiking mission three times...)
I would ask for ratio of started to completed but this can be gamed too easily.
See also https://community.ingress.com/en/discussion/5515/feature-request-improve-md-reminder-email/p1?new=1
a POC telling someone in a wheelchair to "just cargress them"
Disabled agents are only required to complete one Mission Day mission to get the badge/progress towards the badge. If a POC refused to check out a disabled participant for not completing at least 6 missions, they should raise a ticket with support.
POCs should try their best to help disabled agents, for example by recommending specific missions which are suitable for wheelchair users or, indeed, can be completed from a vehicle (whether that's a car, bus, tram, etc.) but it's up to all participants to judge for themselves whether they're capable of completing any particular mission.
Also, mission distance in the missions list in app is determined as distance from the START/FIRST portal, EVEN IF THE MISSION IS HACK IN ANY ORDER.
This has always been the case, and makes sense as it would cause more load on the server if it was constantly having to determine which portal in each mission was closest to the agent (at least 6 portals, some of my missions have as many as 20 portals/waypoints you can hack in any order) for every mission in the list.
For example, if there's 20 missions displayed in the list, the server only has to check distance for 20 portals. If it was displaying distance for any portal in the missions, that's at least 120 portals, possibly many more. And that's not even counting distance checks of all nearby missions to determine which should be displayed in the list in the first place (which for Sacremento it sounds like there's a good few hundred - say there's only 200 missions in Sacremento, that's 1200 portal distances being evaluated instead of 200). Consider how much additional load there'd be on the server if 100-200 agents were accessing the mission list at the same time, repeatedly over the space of a mission day. It's negligible on a per-agent basis, but quickly adds up when there's a large number of agents participating across the globe.
@adamblack93 I'm going to push back on your server load argument. I write code for a living. Simply put, sorting is just not that hard to do. And here's the kicker, it doesn't have to be done on the server side, sorting can be done on the client side.
Since S2 Geometry is used to define scoring regions, we can reasonably assume portal positions are 9or could be) stored using S2 Geometry on the back end. This makes finding all portals "near me" pretty simple, it's just a substring compare. Client requests portals "near me" that are also the start of a mission and/or part of an "any order" mission. This is all information computed up front, when a portal or mission is created or edited. Client receives the list and sorts the portals by distance, and populates a list of missions, ignoring duplicates.
none of this is computationally complex.
it's not even bandwidth intensive.
Sacramento has approx 1000 portals in the downtown area. Let's say they're ALL involved in 5 missions each, Every portal has a guid (128 bits), an S2 location (64 bits, possibly less) and a list of 5 mission guids (5 * 128 bits). Or roughly 1000 * (6 *128 + 64) / 8 == 104K bytes. (for comparison, I just pointed my web browser at news.google.com, and it downloaded 8.3M bytes of content)
That's clearly not how it works at present, though. Presumably your client just asks the server for "missions near me" and each mission has a location attribute which is the same as the location of the first portal in the mission. Changing that to "portals near me which happen to be involved in missions" multiplies the amount of work by at least 6, and given that (a) the servers already can't cope during anomalies, and (b) people are already complaining about the data usage of Ingress, I don't think that's trivial
We don't know how their backend database works. Maybe there's no such query as "portal that's involved in any mission".
@starwort
"We don't know how their backend database works. Maybe there's no such query as "portal that's involved in any mission"."
Just because there isn't now, doesn't mean there can never be.