Coder Social home page Coder Social logo

altspacemres's People

Contributors

willneedit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

altspacemres's Issues

Move self location code from enclosure to gate components

The self location code needs rework.

  1. Each component finds out the space it belongs to on its own
  2. If an ID is given in the MRE URL, take that one
    a. Else look up in the database to see if there's an ID registered to the given location
    b. Failing that, create an ID out of the location
  3. Look up the database if there's a registration for the new ID
    a. If there is and it is locked, fail the stargate initialization.
  4. When the ID had changed, register the location with the new ID.

SG: Player starting the dialing sequence and leaving deadlocks the gate

Since the dialing sequence is asnyced, it must be something else. I think I saw the animation go wonky when the player left, perhaps it's a rejected promise or something like this.

As a workaround, I could track the userID of the user who starts the dialing and do a force reset whenever said user leaves.

Could be a good idea anyway to mitigate trolling.

SG: Use Postgres as database backend for world registration

Store dynamically added worlds into the provisioned Postgres SQL database, omit the bootstrapped world for space preservation.

Reason: The Node.js webhost seems to reset dynamically generated pages when being idled and restarted, disallowing the saving of dynamically added worlds.

Refactor Stargate code

Move the core functionality of the stargate operational code (dialing sequence governance, event horizon establishment and disengaging) into a base class, keep only the bits connected to the design and layout (how the dialing sequence is displayed) within the current class.

Obtain Stargate's space ID (and root position)

There's still the unresolved issue of obtaining the Gate's worldspace ID (either textual or teleporter style).

Getting the root transformation would be a bonus, but not strictly needed.

SG: Stale connections cause deadlocks in Stargate

Filed under microsoft/mixed-reality-extension-sdk#104 , there seems to be an issue with the client where users who have already left still try to maintain a connection to the MRE. If the space falls empty and they become the 'authoritative' users over the space, they lock up operations.

Perhaps I need to build a banlist that would deny users and their IPs the service on a low level.

Error 503 (Bad Gateway) doesn't seem to deter these clients, else switching the MRE into maintenance mode would have done the trick. Maybe a different error code?

SG: Crosstyping protection

When someone starts typing, provide a timeout that only he can type for a given amount of time (30 seconds) without others interfering.

SG: Size parameter

As long as we cannot read out the actual scaling of the Stargate we need to pass on a size parameter to make the event horizon fit to scale.

SG: Double-typing on the DHD

When more than one user is in the room, the DHD isn't correctly initialized and registes double keystrokes.

(Sync buildup of the collider panels?)

Migrate away from enclosure supported implementation

Remove the need to have an enclosure. Ideally, it would be just plopping down the Stargate and Dial Computer of your choice to get things up and running.

  • Enclosures will cease to work as soon as the old three.js/a-frame implementation is gone.
  • Lowers the bar for world creators. No editing the world definitions needed anymore
  • Obsoletes lots of inter-app communication

Redo Teleporter code

The portal needs to be redone using Actor.CreateFromLibrary("Teleporter:...")

Analysis needed:

  • How to obtain the target space ID? It's a different one than the one seen in the Setting menu? Any relations? Deteministic GUID, perhaps?
  • Migration: Transition between old and new IDs. Converting? Database table?

SG: Sound effects

The Stargate MREApp would have to send messages to the portal A-Frame app to play sound effects at crucial moments.

  1. Start spinup (whirring)
  2. Spin (whirring/grinding noise)
  3. Chevron locking in place (cha-clack)
  4. Voiceover (Numbers 1 to 9, engaging and error message, perhaps different soundsets)

Create an animated unstable vortex/event horizon

Create an event horizon model with "idle" animations as well as animations for opening up the unstable vortex (morph target, if possible) and the event horizon closing.

Check if these animations can be started/stopped using an MRE.

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.