Git Product home page Git Product logo

supermedium / moonrider Goto Github PK

View Code? Open in Web Editor NEW
555.0 19.0 216.0 24.57 MB

πŸŒ•πŸ„πŸΏ Surf the musical road among the stars. Side project built by two people in a few months to demonstrate WebXR.

Home Page: https://moonrider.xyz

License: MIT License

Shell 0.23% HTML 22.42% JavaScript 72.64% GLSL 4.21% CSS 0.51%
aframe javascript web browser html webvr webxr webgl threejs

moonrider's People

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  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

moonrider's Issues

Remember last played mode

We could store the latest played mode in localstorage. People will likely have a favorite one and it would be good if game can remember instead of having to manually select each time the page reloads.

Shareable motion capture / avatar links (+ for Beatsaver Viewer).

Feature for far future.

  1. Record motion capture during gameplay.
  2. Checkbox on Victory Screen whether or not to publish (opt-out). Stored on S3.
  3. Produce shareable links (moonrider.xyz#red-mongoose).
  4. Can watch gameplay on any device with spectator camera.
  5. Add avatar gameplay to BeatSaver Viewer if any.

UX to be determined.

Submit high score menu transparency issues

Noticed the right half of the keyboard works correctly for transparency during hover, but the left side keys show a black background on hover. The keys circled below are the ones tested as having this issue.

com oculus browser-20190524-171458
moonkeyboard

Menu UI stress testing

For the sake of stress testing, tried as hard as I could to break things in the menu UI.

  • search query text overflows (not a realistic scenario)
  • difficulty menu text gets stuck behind other menus (not sure how to repro)

com oculus browser-20190521-164357
com oculus vrshell-20190521-164219
com oculus vrshell-20190521-164449

Node 12 errors when building

There are errors when running npm install on Node v12.2.0 and 12.3.0, but 11.15 works fine.

...


  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/profiling/basic_timers.o
  CXX(target) Release/obj.target/gpr/deps/grpc/src/core/lib/profiling/stap_timers.o
  AR(target) Release/obj.target/libgpr.a
  COPY Release/libgpr.a
  CXX(target) Release/obj.target/grpc_node/ext/byte_buffer.o
In file included from ../../nan/nan.h:54:0,
                 from ../ext/byte_buffer.cc:21:
/home/chris/.node-gyp/12.3.0/include/node/node.h:107:12: fatal error: util-inl.h: No such file or directory
 #  include <util-inl.h>
            ^~~~~~~~~~~~
compilation terminated.
grpc_node.target.mk:186: recipe for target 'Release/obj.target/grpc_node/ext/byte_buffer.o' failed
make: *** [Release/obj.target/grpc_node/ext/byte_buffer.o] Error 1
make: Leaving directory '/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/chris/.nvm/versions/node/v12.3.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.4.0-17763-Microsoft
gyp ERR! command "/home/chris/.nvm/versions/node/v12.3.0/bin/node" "/home/chris/.nvm/versions/node/v12.3.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--library=static_library" "--module=/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node" "--module_name=grpc_node" "--module_path=/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc" "--napi_version=4" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"
gyp ERR! cwd /mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc
gyp ERR! node -v v12.3.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/home/chris/.nvm/versions/node/v12.3.0/bin/node /home/chris/.nvm/versions/node/v12.3.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Linux 4.4.0-17763-Microsoft
node-pre-gyp ERR! command "/home/chris/.nvm/versions/node/v12.3.0/bin/node" "/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--library=static_library"
node-pre-gyp ERR! cwd /mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc
node-pre-gyp ERR! node -v v12.3.0
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok
Failed to execute '/home/chris/.nvm/versions/node/v12.3.0/bin/node /home/chris/.nvm/versions/node/v12.3.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/mnt/c/Users/chris/github/linux-test/moonrider/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build --library=static_library`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/chris/.npm/_logs/2019-05-22T20_06_02_182Z-debug.log

Omnidirectional beats mistaken for beats to dodge

I admittedly, mistook these omnidirectional beats to be blocks to avoid controller touching. But then I loaded in to an "easy" map and found it was full of them and realized they were omnidirectional blocks. This is probably due to the "X" shape of them.

Maybe there should be a "block type" graphics in the main menu? Or a tutorial level?

2com oculus vrshell-20190524-182358

Show number rank on leaderboard.

Maybe mention if they are the only high score, people may expect it to be filled up and looks buggy if they only see their own score.

Ray interaction design choices

This may be more of a design choice of "what should rays interact with", I noticed a few cases that might be worth interacting with:

  • floor
  • high score menu UI
  • grade letter 3d model

com oculus vrshell-20190524-173051
com oculus vrshell-20190524-173029
com oculus vrshell-20190524-173009

Dot beats don't cut

Dot beats get frozen and don't cut and go away like the rest. Tested on Beat It - Normal

Ghosted song results in search

Another weird edge case that is hard to exactly repro because it comes down to mashing buttons, but generally:

  • open search
  • type in search query "42"
  • there are now "ghosted" song results on the left side, that are clickable/selectable but can not be seen:

com oculus vrshell-20190521-172033

Blocks might be too high

It feels good to me but not the case for someone with shorter arms. It needs a bit of play testing.

Test / dev mode

To develop and polish mechanics a test mode will be very useful. The idea is that one can spawn beats with a button press in different configurations and cadence without having to load a song. We can write a tutorial on how to implement new modes around this in the future.

TypeError: this.blockEl is undefined

TypeError: this.blockEl is undefined[Learn More] build.js line 2012 > eval:232:5
    onGenerate beat.js:232
    generateBeat beat-generator.js:329
    tick beat-generator.js:243
    value a-scene.js:676
    value a-scene.js:726
    exports bind.js:12
    t three.js:7546

Saw on beat it / normal level towards the middle of the song. Rendering freezes, song keeps playing. I'll try to narrow it down a bit more.

Blank result menu

Got a blank result menu while messing around in the menu. Need to find which steps to repro again.

com oculus vrshell-20190524-173304

Sabers only 'slice' at the tip, casting audio issue - Quest

Just tried it for the first time on the Quest. Kudos to your fine efforts, keep improving! Unfortunately, I already own Beat Saber. No biggie though :P

The main issues I had with MR were that the sabers only seemed to slice the arrow at the very tip, the only way I could get a decent score was to impale beats instead of rhythmically slicing. This way, it is not in synch with the music(all songs).

Other than that, when I cast to my Shield or Chromecast, both played video fine, but the only sound that came out was what I can best describe was a 'windy static'.

Minor gripe: those muted colors could be a little richer for a more exciting theme(I haven't read the color-blind discussions though, if that's why the color choice).

Again, cheers! So impressed by you guys!

Too many effects

And no options to reduce / disable visual effects.. It seems to be overwhelming for some

Beats out of sync

Some users reported that there’s a small discrepancy noticeable in some songs. It could be the mapping, game logic or both.

Dependency Need for Oculus Go + 1 little controller

I'm already a fan of Moon Rider and really love this project. However, my only headset is an Oculus Go and there are no modes where I can slash to the beat and get points with my little controller. I know Soundboxing adapts to this by having the current punching mode with only a single color, and if there's some way Moon Rider could have a mode like that, then I could finally play along.

Better quest performance

Moonrider is so close to running perfectly on the quest.
Find ways to bring the frame rate up above 40 fps

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.