top of page

ParappaFGEngine

  • Release Date: 5/15/18

  • Platforms: PC, Mac, Android

  • Game Engine: LibGDX

  • Programming Language(s): Java

  • Assets: Ripped from Parappa the Rapper and Um Jammer Lammy

  • Note, this was one of my first projects with libGDX, and it has gone through many iterations. You can really see the progress I made as a game developer by comparing the versions.

Screenshot1.png

This is a project that I have been working on for quite a while. My first attempt was a good start, but it was mostly experimental at best, and served as an introduction to 3D. My second attempt was much better, but it wasn't as flexible as I wanted in terms of mechanics, and I ended up deleting it by accident when I installed Ubuntu on my laptop. I wish I had backed up the model, because it was my best attempt at replicating the animations. In the current version, I took extra care in making everything as modular as possible, and it shows, because now custom stages can be implemented, and you can also modify the current stages to make them more difficult or make them ridiculous. There are no 3D elements currently, but it will be implemented once I make another Parappa model. I'm under the impression that the original used that vertex animation method that Crash Bandicoot uses as opposed to the traditional bone structure, not sure though. All I can do is try, so I can't guarantee that it will come out looking nice and fluid. 

Oldest Video

Old Video

Updated Video

Usage

  • The game expects the stage files to be located in a folder labled "ParappaFG" on your desktop. On newer Android devices, these files are expected to be in Android/data/com.imackshun.games.parappafg/files/ParappaFG/. On older Android devices, the files are expected to be on the root of either internal or external storage. In the download links, I have included the stage files for all Um Jammer Lammy stages.

  • The game works best with 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.

  • The game itself is pretty open in design, so custom stages can be implemented fairly easily, as long as you are keen on what all of the parameters mean in the stage utility. I'll go more in depth on this.

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

Controls

  • Keyboard(Arrow Keys = DPAD, Z = Cross, X = Circle, S = Triangle, A = Square, Q = L1, W = R1)

  • Controller(Based on Controller Test Application/ Xinput on PC)

  • DPAD = Menu Navigation

  • DPAD Hold Left = Makes the line associated with an input reset to 0.

  • DPAD Hold Right = Makes the line associated with an input not repeat.

  • Cross = Confirm in Menus

  • Circle = Cancel in Menus

  • Face and Shoulder Buttons = Used In Rapping. Press them when prompted.

Features

  • Open design for stage creation.

  • Very generous judgment system, although you will be punished heavily if it detects that you're spamming buttons.

  • Simple Controller Functionality, with an option for button mapping. If you are unable to map your keys in-game, you may need to manually edit Options.opt in your ParappaFG folder. Run the game from console with "java -jar ParappaFGEngine.jar" to see the console output, which will show your button and axis inputs.

  • Very Simple Menu, just a placeholder until I can think of something nice and original.

  • Um Jammer Lammy In-Game UI, but other UI options will be available in the future.

More on Stage Creation

  • The properties file is what ParappaFGUtility expects you to open. If you don't open it, odds are that the program will crash, so keep that in mind.

  • The Properties File - Contains all of the information that doesn't exactly fit well into the other files, such as color information, the instructor for the stage, and general information about the stage.

  • The Timing File - Contains information about all of the timing elements that power the stage, such as BPM, offset, number of meters(I use meters and lines interchangeably, that may or not be the correct term.), and stuff like that.

  • The Inputs File - Contains all of the inputs for both the instructor and the player.

  • The Lyrics File - Contains all of the lyrics for the stage.

Stage Parameters

  • -General-

  • Stage Name - The name that shows up in the Stage Select Menu. The voices are loaded from a folder of the same name.

  • Music File Name - The filename, including the extension, of the music file. 

  • Player Line Color - The color of the player's line in-game.

  • Player Beat Color - The color of the player's beats/circles in-game.

  • Instructor Line Color - The color of the instructor's line in-game.

  • Instructor Beat Color - The color of the instructor's beats/circles in-game.

  • Instructor - Controls the icon that will be displayed. Will be fully customizable in the future.

  • -Timing-

  • BPM - The Beats Per Meter of the song. It's very important that this is as accurate as possible. I use Osu! to calculate it, because the metronome allows me to make sure that the BPM is accurate throughout the song. It is very possible for the BPM to sound fine at the beginning of the song, and slowly get off-beat as the song goes on, so keep that in mind. Most of the songs in these games are easy to deal with.

  • Offset - The offset of the first beat of the song, in milliseconds. Basically exactly where the stage starts(where you see the instructor's first line), disregarding the startup of the song.

  • Meter Count - The amount of lines in the song, as in lines of input. This should always be even, as the instructor says something, and Parappa repeats it.

  • Duration - Not used for anything currently, but the duration of the music file, in seconds.

  • MainBeats per Meter - Basically, how many times you tap your finger to the beat within one line of the song. In the original Parappa and Um Jammer Lammy, this is represented as the stars you see. For all of the songs, there are 4 beats in a meter, so it should be fine to put 4 here.

  • Beat Divisor - The amount of sub-beats in-between two main beats. In the original Parappa and Um Jammer Lammy, this is represented as the gray circles you see. For all of the songs, there are 3 beats in-between, so it should be fine to put 3 here in most cases.

  • -Input Properties-

  • Input - The Button that is to be pressed.

  • Meter # - The line that the input resides on. Must be in the range of 0 to Meter Count, otherwise the game may crash.

  • Beat # - The beat that the input resides on. Should be in the range of 0-15, otherwise things may get weird.

  • Combo # - Used to group the inputs together. The ComboIDs should be unique between the Instructor and Parappa. The grouping is used to draw the lines between the inputs, effectively making them into clusters.

  • VoiceID - The Voice that plays whenever the input is pressed, assuming this isn't an Instructor Input.  The voices are loaded in alphanumeric order, so make it easier on yourself and end the file names of the voices with numbers.

  • Instructor Input? - Whether or not this input is for an instructor or not. Very important.

  • -Lyrics-

  • Offset - When this lyric will be displayed, in seconds. Once the position passes this offset, the lyric will be displayed.

  • Line Text - The text of the line. Imagine that...

  • Instructor Line? - Whether the line applies to an instructor or not. Doesn't do anything currently, but it may in the future,

  • -Shortcuts-

  • Because you are expected to repeat what the instructor says, you can use the Duplicate option to copy and offset the the inputs that you have selected, making things much easier. The options are used to determine what properties of the selected inputs to change during the duplication process. Depending on the complexity of what you need to copy, this may or may not be helpful. 

  • Because most of the VoiceIDs are close together in IDs(assuming you were smart in how you arranged the voice files), you can use the Selection to VoiceID Interval to change the voice of the currently selected Voice IDs to that of the desired interval. This also makes stage creation a bit faster.

Bugs

  • On Android, you may experience micro-stutters whenever a sound plays in stages. This is very annoying, and I will look into it.

Download Links

bottom of page