I realize that there is some misunderstanding around all these terms and I’m not the best communicator, so I’m going into verbose mode to try to reach mutual understanding with the Niantic team.
What I would like to get back from VPS is localization state, unique ID associated with wayspot, and a reliable 0,0,0 origin tied to it.
As far as I can tell in the current implementation the visual positioning system returns no actual positioning data. It only returns a true/false state for “localized.” The positioning data seems to be obfuscated behind the black box of the anchor object and whatever that serialized chunk of text is that we have to save.
Scenario:
I am building an interactive RPG-type experience. I am the editor working on a scene at a graveyard. I go to a wayspot and localize using a custom app [I’ve] prepared. I want to place an asset that will be persisted later for others to see.
Option 1: Using wayspot anchors:
- Build an interface for placing and saving anchors
- Implement some kind of web hosting solution to store the persisted data
- Build out the networking required for communicating with web host and sending/retrieving the data
- Create a user flow that instructs users exactly where to go using an image and text
- Create a geofencing system of some kind using GPS to query which wayspots are in a user’s vicinity
- Implement communication with the wayfairer API
- Load anchor
- Implement asset relative to anchor
Summary:
Steps 1 seems unneeded. Each wayspot is already associated with one listing in the wayfairer API. There is no need for more than one anchor to be associated with it. I shouldn’t have to make it. It should just be there.
Steps 2-3 are troublesome both in implementation time and introducing further ongoing hosting and server management costs. This limits the potential persistence of an experience.
Step 4 is a paradigm that Niantic uses and is great, but I have other things in mind.
Step 5-6 must be implemented because there is no way to >>verify<< (programmatically) which wayspot has been scanned. A best guess must be made. You must either 100% rely on the user to do everything correctly or you must rely on a best guess from GPS as to which wayspot is closest. In this case you must also implement step 6.
Step 7 is again confusing. There is one listing for a wayspot in the wayfairer API. Why do we need multiple anchors associated with it? We only need one anchor - a reliable origin from which to reference. In this case we have to create the origin ourselves. Feels like a wasteful API call and potential point of failure.
Step 8 Finally l can load the asset into the scene and record its placement relative to the anchor.
I am currently working on implementing this approach. I think it will take me 5-7 days to get a basic working demo done another 5-7 days to refine and bug fix. In the end I will have spend two or three weeks and the solution will still not allow me to validate my vps localization and will be prone to errors or cheating.
Option 2: Using a unique ID and reliable origin
- Implement any kind of user flow you want
- Implement scene relative to wayspot
Summary:
Step 1 I’d rather show than tell, but I have lots of ideas that don’t work well with being directed by an image, text, audio instruction or otherwise.
Step 2 Off to the races.
If I am localized then implementation is done. So… an hour or two max?
Conclusion:
With option 2 there is no need to implement storage APIs, buy and manage cloud storage, talk to wayfairer, build a geo-fencing query bounding system, rely on correct/honest user input, or build and manage the systems around anchors. No servers of any kind are needed as all content can be baked in. The only network communication needed is the localization call. All of these things are clear advantages.
An example scenario I might want to implement would be “objective: explore this section of the graveyard to discover 5 spirits and their stories.” That will fit the design of my experience much better than “go here and look for this gravestone, go there and look for that one, look here’s a jpg so you can’t discover it on your own.”
With option 1 this scenario would be impossible to implement. Users would begin to explore the graveyard, localize, and get the wrong point loaded because there is another one a few yards away. VPS provides no localization data, only localization status.
With option 2 I could implement this scenario as well as niantic’s proposed user flow as well as many other options.
Option 2 is the clear winner.
Please provide a unique ID associated with each wayspot and a reliable 0,0,0 origin attached to it. Thank you!