top of page

RhythmBeats

  • Release Date: 2/11/17

  • Platforms: PC, Mac, Android

  • Game Engine: LibGDX

  • Programming Language(s): Java

RhythmBeats_1.jpg

This was my first attempt at creating a music-rhythm game, the genre of which I am very interested in. This was also one of my first games in general. While the concept of the game is simple, I'm trying to find better concepts that make gameplay a bit more enjoyable. At first, I thought more action bars, but this proves to make things a bit too difficult. In its current state, you can either create a beatmap in a very inefficient way(and hard to explain at that), or you can use an osu beatmap, as I implemented a way to convert it into the format that my game uses. While it works for some beatmaps, it doesn't work for others, mostly those with advanced sliders. Timing needs a but more accuracy as well. I'll update this soon, as I haven't given up on this project just yet. At some point I also reskinned this game so that it works like Persona 4: Dancing All Night, but it would probably be a mess to try to get to compile again so I'll just leave it this. I wouldn't really recomment playing this, as trying to convert the osu format into anything that isn't osu was bound to result in inconsistent, unfair gameplay. But it was a good learning experience.

Video

Usage

  • Upon running, RhythmBeats expects you to have a RhythmBeats folder on your desktop, containing a "Backgrounds", "Music", "RhythmMaps", "SongSettings," and "Videos" folder. On Android, it expects the same, but on the root of the external storage device. On newer versions of Android, this "external storage" access has been moved to the package name in the Android/data/com.imackshun.games.rhythmbeats/files/ directory. The "Backgrounds" folder stores .jpg files for the beatmaps. The "Music" folder stores .ogg files for the beatmaps. The "RhythmMaps" folder stores all of the .osu and .rhythm files for the game. The "SongSettings" stores important variables for the creation aspect of the game. This is ultimately unused in the P4DAN version of the application. Lastly the "Video" folder stores .webm files for a beatmap. It has to be .webm, otherwise it won't be found. In order to play a song, the bare mininum is an .osu file and an .ogg file. All files must be named a certain way, otherwise the game will crash. Essentially, start off looking at the name of the beatmap. Very often, osu beatmaps of different difficulties share the same file names, but they differ in that they have text with parentheses or brackets. All of the names of the files should be the name of the beatmap, but without any of the words surrounded by parentheses () or brackets [].

  • For example, if my beatmap is called "Superfly - White Light (Sieg) [Hard].osu", the song must be called "Superfly - White Light.ogg", the background must be called "Superfly - White Light.jpg", and the video must be "Superfly - White Light.webm". Failure to do so will result in a crash.

  • If you attempt to open a .osu file, it is converted on the fly into the .rhythm format my game uses. Unfortunately, this format uses JSON, which is incredibly slow to write due to a lot of data redundancy. As such, it will appear that the game is crashing, but it hasn't. It just takes that long to convert the file. For this reason, it is best to convert on PC, and then just transfer over to Android.

  • The game, by design, expects you to have a controller. If you use my ControllerTest application, your configuration from that will be used. On Desktop, you could probably avoid having to use that application by using an XInput controller, as this will be natively detected by the application. On Android, you must have the ControllerTest application to configure your controller for use. If you so happen to know your keycodes, you can modify the Options.opt file manually, which is stored on external storage, but I would not recommend it. The ControllerTest application should be able to configure most controllers, so I highly recommend installing it if you plan on playing any of my libGDX games on Android.

  • On Android, the game needs permission to read and write to external storage. Pre-KitKat, this will be on the root of either your SD card or internal storage. On KitKat onwards, this will be in Android/data/com.imackshun.games.rhythmbeats/files/RhythmBeats/. Failure to do so will result in a crash.

  • As always, the .jar runs like an executable, as long as you have Java installed on your computer.

Features

  • Video Playback (via gdx-video library)

  • Osu Parsing(Hit or miss, based on the beatmap. Very slow process, works best on PC)

  • Persona 4 Dancing Gameplay

  • High Score System

Bugs

  • If you maximize the window, and the viewport doesn't adjust, just close and try again. It does work, sometimes.

  • Video playback doesn't quite work on Android. It did indeed work at some point, but after updating my project to work with the latest version of libGDX, the current version of gdx-video doesn't seem to work on Android. It works just fine on Desktop though.

  • In terms of accuracy, it is too easy to get perfect, even when pressing extremely early. This is an old project and all, but sheesh.

Download Links

bottom of page