Rhythm Game JRPG Hybrid

Blackjack488

Unassuming
Veteran
Joined
Oct 2, 2016
Messages
40
Reaction score
2
First Language
English
Primarily Uses
Whoo boy. So...I had an idea for an RPG that I've wanted to make for a while, but I figured the programming would be too intense for me to try and make in RPG Maker (even though that's the ideal platform). Well, with my efforts on other engines grinding to a halt, I figured I'd check in here and see if anyone can slapdash together the system I'm wanting to implement (or at least use existing plugins in such a way to get the same experience). Without further ado, here's what I'm trying to make:

The basic pitch is that you're playing a fantasy bard, who channels her magic into the music she plays, allowing her to influence the hearts and minds of those who hear her play. Because of that, you're wandering the world, collecting allies and gaining strength in typical JRPG fashion. But instead of the strategic menu-driven battle system, you instead use a guitar-hero-esque rhythm game to support your allies in battle. You can also use this system in Performances at certain points, to provide out-of-combat bonuses in towns and such. As you travel, do sidequests, and level up, you write songs about your experiences, which expands the list of songs you're able to play.

That's the basic pitch, but here's the more specific list of features I'm looking for:
General (this is just general stuff that acts as the framework for the design):
  • You'd have a new menu tab, that lets you manage your songs and see new ones.
  • In here, you can also mark certain songs to be in your "battle playlist", which is the selection of songs the game will pick for you to play in-battle.
  • (Optional) Also in here, you could have a button that lets you play a song without any goals or scoring metrics, so that you can practice a particular song or see how hard it is.
  • Each song has two descriptors, referred to as Tone and Style. The four Tone options are Melancholy, Inspiring, Uplifting, and Romantic. The four Style options are Smooth, Somber, Powerful, and Energetic.
  • In addition, each song has 3 spells attached to it that can be used in battle (more on that in the battle section).
  • The rhythm game has 4 strings, each tied to a specific key (for definition's sake, we'll say 'P', 'O', 'I', and 'U'). Notes come down the strings, from left to right, and you have to hit the corresponding key at a specific time to play the note. Hitting a key without a note on it counts as a miss. Standard Guitar Hero stuff.
  • The game has a few difficulty options. One makes the songs you play slower or faster, one changes the quantity of notes, one changes the amount of TP/Approval you gain from hitting notes, one changes how easily Audience Approval changes mood (presumably using a D&D5e Advantage/Disadvantage system), and one changes how powerful enemies are. Each ranges from "Easy < Moderate < Normal < Hard < Extreme".
  • (Optional) You can also buy upgrades for your instrument (a dulcimer, in this case) that confer certain passive buffs, like increased damage or state resistance. The main thing is that, if possible, I'd like for some of those buffs to also apply to the rhythm game, like a random chance to ignore a miss. There are a lot of possibilities, and you can kinda go ham on this, but it's also completely optional.
Performances: (these are all the features involved with the Performances, which would be unique to this game):
  • Before starting a performance, you create a "setlist" from a set number of songs you know (5 at absolute max), and then the performance has you playing through that setlist.
  • The first song of a setlist can be anything, but each subsequent song has to match either the Tone or Style of the previous one.
  • There's an Audience Approval bar at the top of the screen, and it goes up a bit when you successfully hit a note. It goes down over time, or if you miss a note.
  • Audience Approval increases slower if the Tone of your song doesn't match the mood of the town (which would probably just be a separate variable).
  • When a performance is over, you gain XP based on final Audience Approval multiplied by the length of the playlist, and the mood of the town has a chance to change to the Tone of your last song (the chance is based on Audience Approval: i.e. if your AA ended at 85/100, then the chance is 85/100).
  • (More for my sake than yours) In addition to sometimes being necessary for the story, a town's mood provides certain effects. Uplifted might reduce shop prices, Inspired might reduce the presence of guards (because they're doing stuff elsewhere), Melancholy might reduce the chance of being attacked by criminals, and Romantic would reduce the chances of NPCs noticing you doing something illegal (because they're distracted).
  • (Optional) Have a bar at the top that shows how far in the current song (or overall performance) you are.
  • (Optional) Certain performances provide increased XP, so that late-game concerts for thousands are worth more than early-game tavern sing-alongs.
  • (Optional) If Audience Approval ends at 100, you have a chance to get an "Encore". If you go for it, you play one more song of your choice, and Audience Approval gain and loss are both doubled for that song. Encores cannot chain (i.e. you only get one Encore per Performance), and an Encore counts as your last song for the purposes of affecting mood. Encoures would also affect XP gain, since the length of the playlist would be 1 more than normal.
In-Battle: (these are all the differences from the norm for when you're in-battle):
  • (Can already be done with Yanfly's Row Plugin) You're in a different row from the rest of your party, and no one can target you directly unless everyone in the first row is knocked out.
  • (Can already be done) You don't choose anyone else's actions. They're all doing their own thing, and you're just their backup.
  • The Rhythm Game would take the place of the battle commands, since there's not much use for those. It works the same way as a Performance, except instead of Audience Approval, the song affects your character's TP (which is displayed in a bar...somewhere. Probably the top of the screen).
  • All allies gain a buff to HP and MP regen, based on your current TP. In addition, each Style of song has a different buff/debuff that scales with your current TP: Smooth songs reduce ATK for all enemies, Somber songs reduce AGI for all enemies, Powerful songs buff ATK for all allies, and Energetic songs buff AGI for all allies. The specific buffs/debuffs might change, but the idea stays the same.
  • When you have enough TP (let's say 60), you can press a hotkey (let's say 'S') to switch to a different song, spending that TP in the process. The game pulls up 3 options from your Battle Playlist, assigns them to different hotkeys (let's say 'W', 'A', and 'D'), and then immediately switches to that song when you press the corresponding hotkey.
  • This same event also happens when a song ends, except it doesn't cost you any TP. The battle doesn't pause when a song ends, though, so you're encouraged to choose quickly.
  • Each song also has 3 spells attached to it, and you can spend a portion of your current TP (increments of 20) to cast them with the corresponding hotkeys (again, probably 'W', 'A', and 'D'). For the sake of design and programming simplicity, we'll say you simply cut to the next non-active spot in the turn order to cast that spell (the game uses Yanfly's STB, which should simplify that process).
  • To make things run smoother, the spells you cast auto-target based on certain conditions (i.e. highest-health enemy, lowest-mana-ally, ally affected by state 'X', all enemies, etc).
  • (Optional) Have a separate little bar at the top that shows how far into the song you are.
  • (Optional) When your character takes damage, it briefly prevents you from playing notes.
  • (Optional) Certain enemies are immune to the effects of your musical debuffs.
  • (Optional) When picking your choices for the next song in-battle, the game prioritizes songs that share a Tone or Style with your current one.
  • (Optional) When starting a battle, you can pick from a small list of 3 randomly-selected-from-your-battle-playlist songs using the aforementioned hotkeys, and the game prioritizes picking songs with different Styles. Again, the battle does not pause for this choice, so you're encouraged to choose quickly.
  • Have a scene called "Rhythm Game" that can be called with Plugin Commands, and overlaid onto other scenes while running separately. Always appears on top.
  • In the Rhythm Game scene, a window open across about the bottom third of the screen, notes spawn on the tick equal to their timestamp variable on the leftmost side of the window, and move right at a rate of 'Tempo' pixels per tick (10 ticks per second by default). If they reach the rightmost edge of the window, the notes disappear and Actor 1 loses 'X' TP.
  • Also in the Rhythm Game scene are four boxes, near the left side of the window, which can be activated with plugin commands. Activating a box while a note intersects it destroys the note, granting Actor 1 'Y' TP. Activating a box without a note intersecting it causes Actor 1 to lose 'X' TP.
  • Mark a skill category as Songs, which do not appear in the normal skills list. Notetags and variables (like MP and TP cost) would denote the various attributes of a song (Name, Difficulty, Tone, Style, Music File, Tempo, Skill ID 1, Skill ID 2, Skill ID 3) and its notes (each with a String, Timestamp, and Difficulty).
  • Create a UI scene from the main menu, which lists every Song-type skill the player has learned, along with its various attributes. Can use the Move Right key to flag a song as a Battle Song, or select a song to open it in Practice Mode.
  • Have a Practice Mode scene, which is just a picture that fills the screen, and runs the selected song on the Rhythm Game scene.
  • Have a menu for selecting a preset number of songs, following the rules mentioned in the last spoiler tag. Once the songs are selected, run the Performance scene.
  • Have a Performance Mode scene, which displays a TP bar across the top of the screen and a background image, then runs the set playlist of songs on the Rhythm Game scene.
  • Have a Battle Mode scene, which runs separately but concurrently with the standard battle scene. Displays a TP bar across the top of the screen, and that song's corresponding Skill IDs assigned to hotkeys. These Skill ID Displays show the Name and Icon of the corresponding skill, and are greyed out when you lack the TP to use them. The Battle Mode scene runs songs on the Rhythm Game scene, which are randomly selected from the Songs you have flagged as being battle songs, until the battle ends.
  • Using a song's attached Skill by pressing the corresponding hotkey sets your next action to that skill, and (if possible) moves you up in the Turn Order as much as possible. These hotkeys only work in the Battle Mode scene.
The rhythm game scene itself:


The Menu Screen unique to this system:


The Practice Mode Scene:


The Setlist-building menu that precedes a Performance:


The Performance Scene itself:


And the Battle UI (not the battle system itself, just the Rhythm Game UI overlay):


(also, kinda goes without saying, but I'm not actually using any of these songs. They're just examples)

I realize that's a lot of stuff. It was a pretty daunting list when I first made it, and I think you can see why I've been struggling to implement it for so long (and hesitant to ask for help). But there's also no real time limit on this one, since I can work on other elements and come back to this stuff later. I'm just asking to get the opinion of someone who's more used to programming in MV than I am, and see how easy this would be to put together. If possible, I'd even love to work with someone who can make this sort of system happen! (Make a young girl's dreams come true! XD)

So if you have any advice for building this system (or even thoughts on it in general), please don't hesitate to reply! Even if you think it's a stupid idea, it could be the key to making this game happen!

Thanks for reading all that, and have a wonderful day! ^^

~Blackjack
 
Last edited:

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
There's almost no chance this will ever be fullfilled.
You're asking for a total conversion of the battle system, from turn to tick based, and a rythm system to boot.
Your request is lacking a lot of info, mainly how enemies and allies would get to act, your choice of ui, how would the notes on the music tracks be done (manually or trhough beat detection of some sort),...

Realize that this could take several hundred hours to do to an experienced programmer, and you'll see why.

Either work on what you can and come back with requests for small stuff each time you come across something you can't do yourself, or head to the paid requests section and be prepared to pay in the range of a thousand dollar, as that's what battle systems usually cost, if you can convince someone to work on it.

I mean you could always wait, maybe you'll get lucky. Most likely no complete stranger will spend hundred of hours of their free time for a thank you.

As for advice on what already existing plugins to use, start by telling us what you've tried, what worked and what didn't.
 

HexMozart88

The Master of Random Garbage
Veteran
Joined
May 15, 2016
Messages
1,879
Reaction score
3,349
First Language
English
Primarily Uses
RMVXA
I mean, there is a rhythm based minigame by Moghunter (a couple, I think), though as far as making it actually match the beat of the song... that's going to be a bit harder. If you'd like some notes, I found this general guide, but you probably need to know a substantial amount of coding to follow along. [link] If you don't want to go through all of that, you may have to settle for one of the rhythm scripts out there, or do as mentioned above and commission it.
 

Blackjack488

Unassuming
Veteran
Joined
Oct 2, 2016
Messages
40
Reaction score
2
First Language
English
Primarily Uses
Astfgl, I do realize this is a fairly massive job. Either it'll be a commissioned plugin, or it'll be a "bring a programmer onto the team and split the profits" kind of deal. But that's only if I can't do it easier, either with a mix of other plugins or a really generous expert. However, your reply also has a few questions that I'd like to answer here:
  • The actual battle system does not change from the norm. It's a turn-based battle system (either Standard Turn Battle or Default Turn Battle, whichever's easier to implement), where you have no control over the actions the party members take, and the rhythm game runs independent from it. The only time when the two interact is when you cast a spell, then your character "cuts in line" to the next available action (i.e. as soon as the current battler is done taking their turn, you take yours, then it continues on as normal). At all other times, your character takes no actions on their turn, and their TP value only affects the value of buffs and debuffs.
  • TP could also be mechanically swapped in for Audience Approval, now that I think about it, making the programming a whole lot more straightforward. After all, the Rhythm game only has to modify your TP value, then it becomes that much less complicated.
  • Notes on the music tracks would be done manually, because it's a lot easier and gives you a lot more control over the difficulty of a given song (even if it is a helluva lot more busy work on my end). The best way I can describe it beyond that is as a long series of quick-time events, with a little UI built around it. And in fact, heavy modification of (or REALLY clever eventing with) a QTE-plugin would probably be my workaround if I can't get my hands on custom coding.
  • In fact, the more I think about it, the more I feel the need to mention this. Songs in the database would be structured to have variables of: ID (integer), Name (string), a Tempo variable that defines the speed of the notes (integer), Tone (integer, 0-3), Style (integer, 0-3), and 3 skill IDs (all integers). That can all fit on the first line of a .txt file. After that, it's just a list of Notes, each with 3 variables: the string it spawns on (integer, 0-3), the millisecond in the song file when it spawns (integer), and the difficulty it starts appearing at (integer, 0-4).
  • The hardest part would probably getting the rhythm game scene functional. The only custom elements you'd need beyond that are a way to make a database of songs (probably a folder in the game files, with each song being it's own .txt file, but I'll admit it could potentially be done using entries in the Skills list and a hilarious amount of notetags), two arrays of Song IDs added to the player (one for songs known, one for the Battle Playlist), two UI screens (one for the Performances, one for the Battles), and two menu screens (one for picking Performance setlists, and one for managing songs in the main menu). Everything else can be done with either eventing or plugin-code that references your current TP (with the possible exception of making Performances end when the setlist ends). So...one custom scene that can call from a database, two arrays added into player data, two UI screens, and two menus. While that's definitely a paycheck-worthy job, I don't think it's a thousand-hour one.
  • As for what the UI itself would actually look like, I haven't had the time to properly put together example images. However, I do have some free days coming up, so I could try to whip up some images to serve as references for UI design.
And...to be perfectly honest, I haven't actually tried much to make this yet. I looked around a lot when I first conceptualized this project, but quickly realized that it was out of reach for my very-limited Javascript, and tried to switch to other engines. I was able to get the rhythm game and basic movement working in both Unreal and Godot, but there was a lot of other legwork I'd need to do in those engines to reach what RMMV has by default. Since RMMV only needs the rhythm game portion implemented, I figured I'd see how easily I could make that happen. If it turns out to be truly beyond anyone's ability (or my budget), and I can't make a workaround with other plugins, then I'll just start doing that legwork in one of the other engines.

And HexMozart, Theaterhythm is actually one of the first things I found when researching this project. However, it wasn't quite what I was aiming for, especially since I wanted it to be usable out of battles and feel like you were actually playing the song. The link you provided, though, is insanely useful if I end up having to stitch together some kind of crazed work around out of other plugins, so much obliged!
 
Last edited:

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
You are asking for a rewrite of the battle system to tick based.
I mean the base battle system is: you choose actions and then they play out, turn per turn.
What you want is: you play a song and characters and enemies take turns acting in the background with no input from you, how would you do that if not by implementing a tick based system, similar to an atb?
I am not understanding things properly?

Sure you wouldn't have to actually rewrite the action processing part, but that's not what makes the system turn based.
 

Blackjack488

Unassuming
Veteran
Joined
Oct 2, 2016
Messages
40
Reaction score
2
First Language
English
Primarily Uses
The Rhythm Game part of the scene is tick-based, but it operates separate from the rest of the battle. The battle scene does not care what tick the rhythm game is on, or how fast it's ticking. They're two separate scenes that just happen to be visually overlaid on top of each other, with one affecting some variables that the other uses. Best exemplified by the fact that the Rhythm Game scene can exist outside of the battle scene, in its own space.

Sorry if this isn't clear. I'm trying my best to explain it, it's just a little tricky to wrap your head around unless you're looking at it. XD

Also, updated the original post to include more specificity, to try and avoid any further confusion.
 

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
Okay, that I do get, but what makes a system turn or tick based is when actions take place and that part is still not clear to me.
When do your actors take actions? When do enemies take action?

Is it the regular battle system, but with autobattle for each actor?
Single action with speed determining order and your music based system running simultaneously just adding actions to an actor who otherwise doesn't get any?
So you'd have actor and enemies constantly firing at each other, the pacing mostly dependent on animation speed then? Their actions wouldn't be synced at all with the rythm game.

Am I getting that right?
 

Blackjack488

Unassuming
Veteran
Joined
Oct 2, 2016
Messages
40
Reaction score
2
First Language
English
Primarily Uses
100% right.

Also, finally added images. Which was way harder than it should've been. xD
(and the first thing I see is a typo... >.<)
 
Last edited:

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
Okay, thanks for the image, they really clear things up.

You'll need a new plugin for the UI, and the rythm thing that's a given, there's no plugin that I know of that does what you want.

I'd start with the rest then. Get Yanfly's autobattle AI for actors so they aren't that dumb and actually use skills (or mine, which allows players to edit the programming). Set all actors to autobattle and see if turns process without input from yourself.

Test out the actors and the conductor, with the row system, see if the conductor doesn't get targeted while allies are alive.

Once you do that, as proof of concept, use the console to add an action to the conductor using force action.

If all this works it means integration between music system and battle system will be easy.

It'll be way easier to get someone else to do the music part if you get everything done but that.

UI requests tend not to get filled though, because they only benefit one person and plugin makers like to release their work to the public. You'll probably have to comission someone or get a programmer on board...
 

Blackjack488

Unassuming
Veteran
Joined
Oct 2, 2016
Messages
40
Reaction score
2
First Language
English
Primarily Uses
Duly noted! While I kind of figured I'd need to commission it, since it's such a tricky and unique system, having a more solid checklist to put down for that commission makes my life a lot easier.

Thanks a ton for all the advice, it's greatly appreciated! ^^
 

Astfgl66

Veteran
Veteran
Joined
Jan 5, 2016
Messages
722
Reaction score
578
First Language
French
Primarily Uses
I'd start with smaller requests focusing on a point you're stuck on. For instance if turns don't process automatically when all actors are in autobattle it should be an easy fix, or if you need help with the row thing. These things probably don't have to go through a commission.
You can point them here for context too.

Good luck!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,864
Messages
1,017,056
Members
137,573
Latest member
nikisknight
Top