Giter Site home page Giter Site logo

decentraland / explorer Goto Github PK

View Code? Open in Web Editor NEW
78.0 31.0 45.0 285.1 MB

🌎 Explore Decentraland from a web browser

Home Page: https://explorer.decentraland.org

License: Apache License 2.0

Shell 0.06% JavaScript 22.41% HTML 1.23% Dockerfile 0.12% Makefile 0.30% TypeScript 73.88% CSS 2.00%

explorer's Introduction

Decentraland Explorer

This is the decentraland explorer official repository.

This repository covers mainly the Kernel component of the explorer product.

Kernel component responsibility includes running the SDK scenes, handling back-end business logic and more. This said, you can clone this repo and run the browser version of Explorer. If you want to contribute to our renderer, please check out the unity-renderer repo: https://github.com/decentraland/unity-renderer/pulls. Unity-renderer repo outputs a npm package that's used on this one for publishing the Explorer.

Before you start

  1. Contribution Guidelines
  2. Coding Guidelines
  3. Code Review Standards

Running the Explorer

Make sure you have the following dependencies:

  • Latest version of GNU make, install it using brew install make
  • If you are using Windows 10, you must enable the Linux subsystem and install a Linux distro from Windows Store like Ubuntu. Then install all tools and dependecies like nodejs, npm, typescript, make, etcetera.
  • Node v10 or compatible installed via sudo apt install nodejs or nvm

IMPORTANT: If your path has spaces the build process will fail. Make sure to clone this repo in a properly named path.


When all the dependencies are in place, you can start building the project.

First off, we need the npm packages for website and kernel. In most of the cases this should be done only once:

cd website
npm install
cd kernel
npm install

By now, you can run and watch a server with the kernel build by typing:

make watch

The make process will take a while. When its finished, you can start debugging the browser's explorer by going to http://localhost:3000/

Update local renderer build version

The unity build used when accessing through localhost can be changed with several commands:

  • make update-renderer downloads the renderer build for the master branch and installs it, overwriting the previous build.

Keep in mind that a make watch should be run and keep the server up before updating the local build, otherwise it will be replaced by the make watch command.

Run kernel tests

To see test logs/errors directly in the browser, run:

make watch

Now, navigate to http://localhost:8080/test

Troubleshooting

Missing xcrun (macOS)

If you get the "missing xcrun" error when trying to run the make watch command, you should download the latest command line tools for macOS, either by downloading them from https://developer.apple.com/download/more/?=command%20line%20tools or by re-installing XCode


Testing your branch using automated builds

When any commit is pushed to a branch on the server, a build is generated and deployed to:

https://play.decentraland.zone/branch/<branch-name>/index.html

If the CI succeeds, you can browse to the generated link and test your changes. Bear in mind that any push will kick the CI, and there's no need to create a pull request.


Technical how-to guides and explainers

For more advanced topics, don't forget to check out our Architecture Decisions Records (ADR) repository.

Copyright info

This repository is protected with a standard Apache 2 license. See the terms and conditions in the LICENSE file.

explorer's People

Contributors

2fd avatar ajimenezdcl avatar belohlavek avatar caminoezequiel avatar d4rwinss avatar dependabot[bot] avatar eordano avatar fmiras avatar hugoarregui avatar javiermaria avatar jmoguilevsky avatar kuruk-mm avatar landeplage avatar leohgc avatar madrex avatar marcosnc avatar matiasbargas avatar matiasjaure avatar menduz avatar moliva avatar nachomazzara avatar nchamo avatar nearnshaw avatar oozakmckrackenoo avatar pablitar avatar pbosio avatar pravusjif avatar rominamarchetti avatar sandrade-dcl avatar sicarul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

explorer's Issues

Add a collectibles tab

Collectibles tab will work as a bucket of all the NFTs the player owns (for the MVP we will only support wearables but in the future the idea is to show here every type of NFT -offering a filter and sub-tabs for organize items and look for them easily-). The wearables NFT will be all gather on Collectibles tab, but also shown on the category they belong. e.g: "pirate heald" will be on "accessories-mask" tab as well.

Use cases

  • Click on the item to equip it.
  • Toast message appears on items that can collide with others.
  • Accessories are the only items that can be unequipped by clicking twice. For items that do not support that behavior show toast message "only accesories can be removed"
  • Support selection of more than one item at a time.
  • Avatar preview zoomed-out. Later: give zoom control to users.
  • Player can see NFT detail by clickin "I" icon.

image.png

Avatar background on avatar editor

Screen Shot 2019-11-05 at 10.48.00.pngNow is looking white and it should be transparent. Up to the moment was not a problem, BUT with the new avatar editor design it is notable.

Ensure that we never use a production setting for Segment

This is high priority:

  • Diego has realized that sometimes using feature branches previews (/branch/....) we are combining that with the ?ENV=org setting, which causes segment to report inaccurate data about our numbers

  • We should make sure that whatever mechanism we use, we are not polluting the DB.

A possible approach could be to modify queueTrackingEvent to check that the window.location value is actually explorer.decentraland.org before sending prod data.

Q4-TRST: Trading Start

As a Player, I can initiate a Trade with another player.
As a Player, I can receive and accept a trading request.

BodyShape selection in Avatar Editor defaults to wrong assets

When you select a Body Shape, it should default to the same wearables as the bodyshape thumbnail (right now defaults to some random assets).
Also, and this is important, both bodyshapes defaults to no hair, they are both bald, that shouldn't happen.

Screen Shot 2019-11-07 at 11 47 49 AM

Screen Shot 2019-11-07 at 11 47 56 AM

Trading Agreement: Player 1 and Player 2 accept terms

Flow is different for Player 1 and Player 2:

PLAYER 1
• Trading Agreement shown after clicking on MAKE A TRADE button from Player Menu.
• CONTINUE takes player 1 to Petition Sent
• CANCEL closes trading flow for player 1

PLAYER 2
• Trading Agreement shown after clicking NEXT on Trading Invite
• CONTINUE takes player 2 to Trading Screen
• REJECT button closes flow for Player 2 and for Player 1 it behaves like a rejected trading invite

COMMON
• Show trading agreement popup
• Don't show this message again functionality

image.png

Player 1 clicks on avatar to trade collectibles

Tabs section on Player's profile is not MVP, since we only need the Collectibles tab, so we will only show a card with Player's picture+name and the button for trading.

Some subtasks:
• In-world: Register click on another player's avatar
• Player Menu: "X" button closes Player Menu
• Player Menu: Register click on Trade button (--> to Trading Agreement flow)
---We can skip subtask below for the MVP---
• Player Menu: Display scrollable list of NFTs that Player 2 is currently wearing
• If not wearing any NFT: show "Not wearing any collectible at the moment." text.

image.png

Trade invite flow

PLAYER 1
• Display Petition Sent dialog with countdown timer
• As soon as Player 2 accepts to trade, Trading Screen is shown
• CANCEL closes flow for both players
• Time out closes flow for both players
image.png

PLAYER 2
• Display Trade Invite dialog
• NEXT button takes player 2 to Trading Agreement
• REJECT button closes flow for both players
image.png

3rd person camera: free camera without hotkey

Let's try a free camera mode where if I'm not moving my character I can move around the character and see if that doesn't feel more natural than having to right click and hold.

Why?

  1. right click on Mac is not good
  2. free camera magically works versus users having to discover how to do it and use it consciously

NFT Wearables appears moved forward or backward

this happens only on some newer halloween NFTs, i think that is not a Skin Weighting issue, meshes appears to be shifted forward or backwards,

Some hairs are moved forward.
Screen Shot 2019-11-04 at 11 38 04 AM

This "UpperBody" is moved backward
Screen Shot 2019-11-04 at 11 41 40 AM

Triangle counting isn't being updated correctly

In the SDK, I see this issue, here's how to reproduce it:

  • Run the Hummingbird scene: https://github.com/decentraland-scenes/Hummingbirds
  • Open the stats panel with "P" and check the triangle number
  • Click on the tree to spawn a hummingbird, see that the counter rises
  • Click on it again to spawn another hummingbird, the counter stays the same

In this scene we're reusing a single GLTF shape component on various entities, and it's only being counted once, when in reality it should be counted multiple times.

In the Unity Builder, if I add the same asset twice, I don't see the counter being updated for the second model I add.
You can try it out here
https://builder-unity.decentraland.org/

Another possibly related issue in the Builder is the triangle count often gets stuck, and I can keep adding or removing entities without the triangle value changing. I have to leave and enter the project for the value to be fixed.

Network + UI: Confirm a trade

  • Both trading partners can CONFIRM their offer (signals they are happy with the trade proposition)
  • Only the first player that has accepted she is ready to trade will have the possibility of changing the offer, until the second part is ready too. If so, all the visual feedback that indicated "Player was ready to" trade turns off.
  • If the second trading partner clicks on CONFIRM, trade countdown process executes (n seconds).
    *Both players can leave the trading process while the countdown is in progress. CLOSE button will open "Cancel Trade" pop up (countdown wont stop).
    *Once the countdown has finished, the trade process has completed and traded items are shown on the screen.

image.png

image.png

image.png

GLTF->AB: Make converter work with all poi scenes

Test plan:

  1. Go to https://poi.nft.party and enter each scene.
  2. Using the current branch, open the same scenes
  3. Verify that all assets are loaded correctly on both versions
  • Museum District (13, 75) (4/130 assets missing)
  • The Battleground (82, 41)
  • Sugar Club (-1, -35) (2/109 assets missing)
  • The Farm (-3, -33) (36/229 assets missing)
  • Enchanneled Wood (-34, -37) (1/187 missing)
  • Halloween Scene (66, 6)
  • Unique Place (28, -118)
  • Medieval Plaza (-63, -65)
  • Forest Plaza (-9, 73)
  • Koko Jones (-39, 58)
  • Genesis Plaza (0, 0)
  • Crypto Valley Convention Center (68, 15)
  • Maze Race (115, -8)
  • ChainBreakers Museum (6, 31)
  • Pete PlanetVr's House (-110, -53)

Tested with https://assetbundle.nft.party/

Avatars should not be shown while teleporting out

This is due to how we are reporting the position through our communication channels on kernel side.

We should send our new position eagerly to show the surrounding players that the player is no longer sharing their space.

Q4-3RD: 3rd Person Camera MVP/PoC

Implement a simple 3rd Person Camera (no collision, no transitions...) as a Proof of Concept.
It must be mergeable (well structured, stable, test coverage...) so we end up with an MVP that can be iterated.

Correct: uv mapping of some models is messed up

Some models, specifically by Cybermike and Renderdog, used to work well (not sure how long ago), but now have the uv mapping different from what it used to be.

See attached a models that suffered this.
If you importing into the Babylon sandbox in https://sandbox.babylonjs.com/ you'll see that the texture looks different than if you use it in a scene

Renderdog:

https://app.zenhub.com/files/154520831/93e29268-25d1-4df2-a556-83f16e95ca22/download

from RenderDog

SDK has a bug and UV tiling does not work. Is that still the case? I am using blender and I am finding it does not work in DCL but it does on other platforms. In DCL I have been getting around this by having a ground terrain UV scaled beyond the 0-1 coordinates.

CyberMike:

Models-2.zip

From Cybermike:

I think it was in version 6.1 onwards, somewhere inbetween 6.1 and current 6.4 (i think) is when this problem showed itself. Also when i do manage to do a work around of moving uv's back to the default channel of 1 (which have not been collapsed and lost) they appear SO DARK in the sdk, you cant see the texture, i had to over expose the texture in ps and it looks bad... so the problem is uv mapping channel can not go greater then default 1, i think

Create a funnel for user login

Make sure that we can track the following events and have a dashboard for it (cc: @dnul)

  • loading_1_start Loading starts
  • loading_2_authOK Auth successful
  • loading_3_unity_ok Unity Client loaded
  • loading_4_load_scenes Starting to load scenes
  • loading_5_wait_renderer Waiting for renderer
  • loading_6_init_comms Initializing communications services
  • loading_7_finished Loading finished, world will open
  • user_action First user action in the session (move avatar, move camera, jump, chat, etc.)

Reference: https://docs.google.com/spreadsheets/d/1j6L5tz5tkwZA6Qjfc4EQvMXNC1bFDCyEodLKKg9Ek4s/edit#gid=0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.