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

[Story] Homepage Lobby Scene with Location UI #7716

Open
3 tasks
Tracked by #7255
HexaField opened this issue Mar 9, 2023 · 1 comment · May be fixed by #8654
Open
3 tasks
Tracked by #7255

[Story] Homepage Lobby Scene with Location UI #7716

HexaField opened this issue Mar 9, 2023 · 1 comment · May be fixed by #8654
Milestone

Comments

@HexaField
Copy link
Member

HexaField commented Mar 9, 2023

We want to add a /home page. It should include a list of locations designed the same as we have at https://etherealengine.com/explore

This page will be 3D, loading the avatar and the empty scene. For the basic route, we can copy the route for offline pages (/offline).

The page should have a popup menu created with XRUI that automatically pops up, and can be opened and closed easily.

The popup menu should have three panels:

  • List of recently visited locations/instances
  • List of locations to explore
  • List of online friends, with access to profiles etc

These should all be clickable, rerouting to the respective location at /location/<locationName>

@HexaField HexaField changed the title Basic 2D homepage that loads the engine & lobby assets in the background Homepage Lobby Scene with Location UI Mar 9, 2023
@HexaField
Copy link
Member Author

HexaField commented Mar 10, 2023

To add the new route, we must implement it in a few places (since routes are dynamic and configurable).

To seed the route to the database, add an entry here.
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/server-core/src/route/route/route.seed.ts

To configure the route in the default project, add an entry here.
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/projects/default-project/xrengine.config.ts
(Note: when the engine is seeded with npm run dev-reinit, this file will be copied to /packages/projects/projects/default-project, so if you make changes in either of the files linked above, you will need to re-run npm run dev-reinit and npm run dev in order to see the changes affected.

This new route should look like the offline route here:
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client/src/pages/offline/%5BlocationName%5D.tsx

We have a concept called XRUI, which is what we are slowly migrating all of our UI over. This rasters the DOM elements rendered from the react component tree into a texture that can be presented in 3D (hence it being an XR UI). The implementation of these are quite similar to normal UIs, in that it is rendered with react and jsx, but there is some additional data structures that it sits in. You can see some examples of these here:

https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client-core/src/systems/LoadingUISystem.tsx
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client-core/src/systems/ui/LoadingDetailView/index.tsx
and
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client-core/src/systems/WidgetUISystem.ts
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client-core/src/systems/ui/WidgetMenuView/index.tsx

In terms of what the UI should look like, we want something very simple and minimalist, like the UI panels at our explore page:
https://www.etherealengine.com/explore that look like this.

We have a few default locations, which you can explore locally:
https://localhost:3000/location/default
https://localhost:3000/location/sky-station
https://localhost:3000/location/apartment

Essentially, we want to extend the feathers location service API to include being able to fetch a list of locations.
https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client-core/src/social/services/LocationService.ts
I believe currently this is scoped to only admins having access (via https://github.com/EtherealEngine/etherealengine/tree/dev/packages/client-core/src/admin/services/LocationService.ts)
So we should change the backend service to allow non admins to also have access to get a list of all public locations, (admins should still be able to see all private locations also).
I'd recommend making a new service for this, since the data here will be used for a different purpose than the existing LocationState

@HexaField HexaField changed the title Homepage Lobby Scene with Location UI [Epic] Homepage Lobby Scene with Location UI Jun 23, 2023
@Abhijay007 Abhijay007 assigned Abhijay007 and unassigned Abhijay007 Jun 27, 2023
@HexaField HexaField changed the title [Epic] Homepage Lobby Scene with Location UI [Story] Homepage Lobby Scene with Location UI Aug 19, 2023
@HexaField HexaField added this to the Social System milestone Aug 20, 2023
@Legend101Zz Legend101Zz linked a pull request Sep 5, 2023 that will close this issue
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants