⬤▗▚▚▚ Web-based online rhythm action game. Based on HTML5 technologies, React, Redux and Pixi.js.
AGPL-3.0 License
Bot releases are hidden (Show)
Published by dtinth almost 3 years ago
Published by dtinth over 6 years ago
Fixed a bug that happens in Chrome 66 where a song wouldn’t start due to the new autoplay policy taking effect.
New documentation site. The docs site for the Bemuse project can now be found at https://bemuse.ninja/project/. (https://github.com/bemusic/bemuse/pull/479 by @resir014)
Fixed a long-standing audio latency calibration bug where it would cause the game to go out of sync from the display. (https://github.com/bemusic/bemuse/pull/474 by @dtinth)
Experimental support for IPFS. Please read more info about this feature in the issue linked afterwards. (https://github.com/bemusic/bemuse/pull/480 by @dtinth)
UI updated for mobile devices. (https://github.com/bemusic/bemuse/pull/478 by @dtinth)
Internal changes
Published by dtinth over 6 years ago
3D mode is out! This mode is recommended for playing on touch screens (e.g. an iPad Pro). This mode only works when Scratch settings is set to off. Video demo
Added 7 more songs.
A friendly dialog box appears when you exit the tutorial and encourages you to keep playing other songs, and build up your music gaming skills!
Improved analytics tracking, using Amplitude. This will help me to gain better insights more easily, which can be useful in improving the game. No personal data is collected.
Infrastructure and tooling: Upgraded to webpack 3, added prop-types to most components, and other project improvements. Thanks a lot to @resir014 for contributing these improvements!
Published by dtinth almost 7 years ago
Have a happy new year!
This release makes the game easier for beginner.
Added 5 new songs and more easy charts.
This game mechanics is now easier for beginners. For more information, see the report “Easier timegates for beginners coming to Bemuse”.
Updated the project’s infrastructure (e.g. upgraded to latest version of React). Big thanks to help and feedback from @resir014!
Published by dtinth over 7 years ago
Fixed: Scoreboard is back. After a month of downtime or so. Thanks for your patience!
Fixed: Speed no longer resets when you hit the replay (F1) button.
Fixed: Errors are now displayed when there is a problem loading a custom BMS. (They used to be silently discarded, leading to the dialog keeps loading indefinitely).
Internals: Upgraded the build infrastructure. webpack 2 and stuffs.
Published by dtinth almost 8 years ago
Published by dtinth almost 8 years ago
Moved the music server. With 44 songs and counting, our music server now contains more than 1GB of data. Since GitHub only allows 1GB, I need to find a new home in order to release more songs.
Now, the music server is hosted on a DigitalOcean droplet, with performance enhanced by CloudFlare.
The game itself is still hosted on GitHub.
Added Bemuse server tool.
Published by dtinth almost 8 years ago
Published by dtinth about 8 years ago
Published by dtinth about 8 years ago
Published by dtinth about 8 years ago
Published by dtinth about 8 years ago
bga_event
allowed, and it is expected to point to a WebM or MP4 file. Otherwise, the BGA is considered invalid and will not be loaded.Published by dtinth over 8 years ago
Published by dtinth over 8 years ago
Out of beta! I’ve shipped so many beta releases for a year now, and it needs to go out of beta someday… Since jumping major versions are pretty trendy these days, I decided to release version 31.
BGAs! On new songs, Bemuse will now display a 720p HD background animation. You need a decent computer and a good internet connection for this feature to work smoothly. You can turn it off in the options screen.
Right now, it is only available in online songs. BGAs in custom songs are not supported yet. Future versions will add support for BGAs inside bmson files. BGAs are encoded in WebM format at resolution of 1280x720, at bitrate of 1500 kbps.
Auto-velocity! Bemuse now has the auto-velocity option which tries to maintain a consistent note scrolling speed across plays. This means the game will automatically adjust the speed modifier to match the note scrolling speed of the previous song you’ve played.
For example, if you played a 100bpm song at 4.8x speed, then if you play a 200bpm song, the game will adjust the speed to 2.4x. You can activate this feature in the options screen.
BMS Search Integration! You can now go to BMS Search page for the selected song from the “Information” tab.
New Title Screen!
Setting the default search text! BMS Search, a BMS database and search engine, has a very convenient link to Bemuse. But you still have to search for the song you want to play. In this version, Bemuse supported the ?grep=
URL parameter, which will pre-fill the search text.
For example, this URL will link directly to a song called “The Heroine Appears.” in METTATUNES event server: https://bemuse.ninja/?server=https://bmson.nekokan.dyndns.info/mettatunes/&grep=the+heroine+appears
Adding BGAs in music server: Two new keys in README.md
front-matter data is added: video_url
which specifies the URL to a video file (WebM, 1280x720, 1500kbps) and video_offset
which specifies when to start playing the video (in seconds after the song begins).
Modernized the codebase! The Bemuse GUI is now based on latest version of React. The web application has been aggressively refactored to use Redux (which leads to cleaner code and easier testability).
Published by dtinth almost 9 years ago
iPad Pro support.
Note: Bemuse is very RAM intensive. Before playing, please close other apps and other Safari tabs, and set your screen orientation to portrait.
When I started developing Bemuse, I call it “a BMS player of the future.” When the beta version was released, the game is barely playable on an iPad Air. Many songs crash the game, and other songs made the very game laggy (running at about 30 fps, which is unacceptable for such rhythm games). This is because of the large amount of sound data, more than an iPad Air can handle (some song take more than 1GB of RAM to play). I just hope that a better tablet will be released in the future.
But the future is here. iPad Pro comes with 4GB of RAM and an A9 processor, the game can now process up to 200 fps. This is Moore’s law in action. Although most application is allowed to access only 600MB of RAM, Safari does not have this restriction. There is almost no audio latency at all on an iPad Pro. This is the era for web-based applications!
(P.S. Bemuse also works on Microsoft Surface Pro (using Google Chrome), but it has very high audio latency.)
Published by dtinth almost 9 years ago
Sound volume normalization (online songs only).
The ReplayGain algorithm is used to normalize the volume of each song. From now on, every song will have roughly the same loudness. Some songs are very loud. As a result, the volume of songs is decreased, on average, by 15%. This only applies to online songs, as the ReplayGain value must be precomputed.
Bemuse music server authors: To normalize the sound volume, please specify the replaygain:
key in the YAML front matter of your song’s README file (example), then run bemuse-tools index
again.
Overall volume decrease.
Some platforms (e.g. Chrome on Mac OS X) can process audio using 32-bit float format all the way from the browser to the operating system. This means it’s possible to have sounds playing above the full volume without clipping if the system volume is decreased. Other platforms clip the audio signals that exceed the full scale as data leaves the browser to the system. This means the audio will sound distorted, even when the system volume is decreased.
To resolve this, the overall volume is deceased. For online songs that have replaygain
tag added, Bemuse will adjust the volume of the song to give around 6 dB of headroom.
For custom BMS, there is no precomputed song volume information. In this case, Bemuse reduces the song volume by -4.2 dB (based on the result of BMS loudness study). This means in this version, custom BMS will play at 62% volume of the original. I think this is good, because this means less clipping and more dynamics. Please turn up your volume!
Feedback is welcome! Please tweet to @bemusegame.
Published by dtinth almost 9 years ago
Experimental support for native gamepad and MIDI input.
A common problem with using keyboard and joystick-to-keyboard softwares is that the keypresses has to go through the operating system’s—then the browser’s—event queue. In some cases, this causes input to be delayed (especially on a Mac when mashing many buttons).
Thanks to the new technologies in HTML5, Web Gamepad API and Web MIDI API, you should now be able to play Bemuse with your game controller or MIDI controller without extra joystick-to-keyboard software. You’ll need to set up the key mapping before playing with your controller.
This technology is still very new and experimental, and support varies between browser, OS, and controller. For instance, on my Mac, Google Chrome detects the DJ DAO controller but not the JKOC controller, whereas Firefox only detects the JKOC controller, but not DJ DAO. In short, it may not work.
Detailed accuracy report: In the result screen, click on the accuracy number, and a panel showing the detailed play statistics is displayed, including a histogram of accuracies, number of EARLY/LATE hits, and other statistical information.
Other statistical information include:
What’s new? Never miss out on new updates to Bemuse. When a new version is released, a “What’s new?” bubble appears in the title screen. Clicking on it will display the change log.
Fixed a problem where modifier keys (Ctrl, Alt) are captured by the web browser, and thus interrupting the game.
The custom automated test harness has been replaced with Karma test runner.
As always, you can play the game at https://bemuse.ninja/! Enjoy :)
Published by dtinth almost 9 years ago
Published by dtinth almost 9 years ago
forgetalia, a pilot bmson package, is now available for playing online!
Follow @forgetalia for more updates.
Eyecatch and background images are now supported for bmson files.
eyecatch_image.png
and back_image.png
.Sharing on Twitter will now attach the server URL.
Make the game display smoother in non-native resolution. Please play at 1280x720 resolution for best experience.
The music list will automatically scroll to the selected song after playing.
Changed the wording in the tutorial to make it more encouraging…
The long scratch note will now automatically end at the moment the end of the scratch note reaches the judgment bar. This does not affect gameplay; only visual.
Published by dtinth almost 9 years ago
Rudimentary bmson 1.0 support. This release makes Bemuse support the bmson 1.0 structure. It supports only what is supported in bmson v0.21.
The following are supported:
info.resolution
info.chart_name
info.subtitle
info.subartists
The following are NOT yet supported:
<Binding />
) into a higher-order component.