decentraland / proposals

Review of community proposals for Decentraland's art and applications
46 stars 16 forks source link

Local Teleportation Using Standardized Portals #59

Open rdixon22 opened 6 years ago

rdixon22 commented 6 years ago

Name: Local Teleportation Using Standardized Portals

Purpose: To reduce the pain of navigating between frequently visited land areas by enabling decentralized land-to-land teleportation on demand

Description

Walking, flying, or taking a train through the Decentraland world will be very fun for a while, but it will soon become tiresome to travel between your own land and your friend's land over long distances. We don't want navigating between frequently-used places to become as dull as a daily work commute.

It might be best to support direct land-to-land teleportation from the very start.

lod01

Each owned contiguous plot of land could be allowed one standardized teleportation portal/point-of-teleportation-entry. The owner can place it anyplace within their land. When you want to visit a friend's land -- or an open, public area -- you step onto your own portal, select from your available destinations, pay a fee in MANA, and teleport there.

Each owner could set restrictions on who can teleport in to their land (everyone, everyone except blacklisted, only those who pass an authentication test, or only whitelisted).

There would be a base cost in MANA for each teleport, plus a variable amount that increases based on the distance traveled.

A share of the MANA charged for teleportation can go to the owner of the destination land. (Land owners could even set a supplemental MANA price, on top of the standard fee for those who teleport in.) This would provide a revenue stream for owners who design popular destinations.

The rest of this proposal goes into more depth about design options for standardized portals for local teleportation. I apologize in advance for going into such long-winded detail. :)

Pros and Cons of Local Teleportation

One downside to local teleportation is that it might discourage people from walking around and discovering other amazing places in Decentraland, and therefore reduce the liveliness of public spaces, since there would be fewer walkers. Depending on how local teleportation is implemented, these concerns can be reduced. For example:

There are more advantages to allowing localized teleportation with standardized portals:

Design Options for Standard Portals and Teleportation Behavior

Here are some specific ideas about the teleportation portal objects and behaviors themselves (merely design suggestions, of course):

Standardization

There should be some standardization of the portal model, texture, or visual effects, so that players can immediately recognize a portal when they see it, even at a distance. The standardization could take many forms, such as:

  1. The exact same object/prefab to be used by everyone, so that the size, look, and behavior of everyone's portal is identical;
  2. A similar, recognizably-shaped structure that supports the same teleportation behavior, wbut which can be reskinned to look different in different spaces;
  3. The ability to turn any model into a portal, but give it an immediately recognizable visual effect (say a blue pulsing glow) so people know what it is.

I would suggest that 1. is the easiest option at the start, since one Unity prefab could be easily provided for owners to place on their land as-is. Later on, different portal prefabs could be offered and/or customized by land owners.

Here are some examples of standard portal model styles that might work (since the Stargate portal shown above might be too big, and copyrighted).

The unique shape this kind of portal would be recognizable from a distance. It could be reskinned according to the theme of the owner's land: screenshot 2017-08-07 18 09 25

A simple "floor model" would be less intrusive, though perhaps a bit harder to find. But that could work well in scavenger-hunt kinds of situations. screenshot 2017-08-07 18 29 12

UI/UX

When a player taps/clicks/gazes at a nearby portal they would be presented with a simple UI listing possible destination names the associated teleportation cost in MANA.

The types of destinations shown might include:

The first list of destinations shown for a portal might combine the above, with some buttons that let them open up other destination lists, something like this (but with friendly destination names, of course):

Where do you want to go?

Destination      MANA
--------------   ----
Recommended      5.0 
Nearby #1        3.0
Nearby #2        4.0
Nearby #3        4.5
Favorite #1      5.5 
Favorite #2      5.0
Home             3.0

FAVORITES  NEARBY  OTHER

Visuals and Sound

People will expect some kind of visual and/or sound effect to show when teleportation occurs. This could include:

In the initial implementation, simply relocating the player's avatar to the new portal destination, plus playing a teleportation sound effect, should be enough.

Non-colliding Avatars

Near portals, it will be important for avatars to be ethereal -- that is, they cannot collide with other avatars even if they occupy the same space. Many avatars might try to access a portal at the same time, and they must all be able to get close enough to interact with it.

Teleportation Contract(s)

The smart contract that handles teleportation would manage at least two rate variables:

The rates should be updateable over time, as the economics of teleportation become clearer.

Teleportation fee calculations should probably be handled outside of the contract, to save gas.

The process that handles teleportation requests might go something like this:

  1. Get current rates from the contract (or from a recent cache)
  2. Calculate the teleportation fee given the fixed rate, variable rate, and any surcharges requested by the destination owner
  3. When the player submits the teleport request, call the contract's teleport() function, given:
    • player address
    • origin
    • destination
    • destination owner address
    • precalculated fee
  4. Upon success, after MANA has been transferred and received, perform the teleportation in the game app.

There might be a significant delay for the player, since I assume the contract's teleport() method will not be validated until the next block is mined. As long as block times stay short, this delay might be acceptable. But avoiding in-game delays due to longer block times is a separate topic of its own.

Conclusion

To sum up, local teleportation using one standard portal per plot offers the following advantages:

On the downside, local teleportation will reduce the number of avatars that are just walking around in public spaces. But "entertainment by walking around" will still be popular as long as the public spaces are vibrant and fun, so I think this won't be a big issue.

Thanks for reading this proposal. I apologize for writing so much detail about areas where the dev team is far more qualified than me. :) I'm happy to hear any suggestions or objections to the ideas presented here.

Rob (rdixon on slack)

A number of other issues have addressed different aspects of teleportation, including:

4

6

13

24

53

dgrmunch commented 6 years ago

Pretty interesting and promising proposal! :) I can understand the idea of charging a small fee for teleporting in order to promote "walking" and traffic through common areas, but I have my concerns. I imagine people coming from other metaverses like Second Life expecting free teleportation to any place they want. I think that those fees would penalize people owning land in districts out of the "downtown", for example. And would add a friction that I don't have completely clear if is necessary. This is, of course, a personal point of view as a future user and owner of the metaverse :)

Additionally, I would consider allowing the owners of land to add free-of-charge portals to external WebVR scenes. As I posted in the #development channel of the community chat:

Considering that you are working on a-minus (and probably a bigger subset of a-frame soon), I wonder if something like the link traversal would work: aframe.io/docs/0.7.0/components/link.html#controls

I am doing some experiments with this option lately. I think that working on the way of the standard would be good to make Decentraland parcels interoperable with external a-frame scenes. Allowing teleportation both to internal and external scenes (and maybe showing a different color when "glowing" to show the difference between an internal portal and an external portal) would be super powerful. I imagine Decentraland as a Metaverse which can be easily plugged from/to outside resources. This way you can access the WebVR site of a land owner and come back to Decentraland in a smooth and natural way.

I don't know. Just some thoughts for this preliminary stage. :dagger: