Fighting Game-style battle system

vico

Veteran
Veteran
Joined
Dec 13, 2015
Messages
161
Reaction score
19
First Language
Portuguese
Primarily Uses
RMXP
Fighting Game-style battle system







Well, pretty odd for RPG Maker, not?

I was thinking in make something different to my project; something less "tied" and more captivating to gameplay.
So i thought: There is a lot of fans of RPGs and Fighting Games. What about unite both?

This is my idea. A blend of both systems. It was born after I started playing MUGEN a lot, and I was thinking about how tedious sometimes the battles of some RPGs could be (mainly the ones like Final Fantasy and Chrono Trigger, or strategy).

Well, i know there is a LMBS from Atelier RGSS, but this system is a little bit "off" the way i was thinking; you will see below.

PS.: Also I'M NOT asking to make the game call a MUGEN window to process the battle; aside this isnt the point here calling a external program is awful and most of time kills the portability of the software.

So, let's start...



Basic Principles
Best demonstrated with video than said, so jump to 0:47:

And a screenshot for MUGEN, a dedicated fighting game engine:

The battle would take 3 rounds, the first to win two is the winner. There would be a configurable time for each round, or no time using the infinite symbol like in the image (boss battles for example). In this screenshot the yellow bar represents the character's HP and the blue bar is the Power Bar (an equivalent of this would be FF7 limit break or Chrono Cross elements unlockables), but in the plugin it can be basically the player's MP, but if the creator wants to add the power bar system it would be nice.

I was thinking in make the battle similar to this Co-op fight: each member of the party are present (only the hero - first one are controllable by player, the rest of the party and enemies are AI), with each having his own bars shown (like the video).
The skills are triggered by key combos (similar to how special moves are triggered by this means).

About the timer in top of the window; in case of the time expires before any KO (death of all party or enemies) the group with less HP sum will be declared winner of the round; And in case of tie in rounds an additional is held to determine the winner.

Obviously Boss Battles dont use this timer.

Another interesthing thing to implement is multiple groups; suppose we have a script to add a End of Time-styled rooster to choose a x number of members to party, in case all of them die, the anothers take part in battle:

Like this:

Additionals
Plus the things i said above, other elements that could be added in the system if possible are:

  • Red Health;
  • the Hyper moves (Fighting games often have a "Rage" or "Power" bar which when full allows the player to perform a critical skill; this is similar to FF7 Limit Break; so i was thinking a similar thing could be implemented on this battle system too.);
  • The different AI types
For a while is this! Thanks if you are reading this and willing to make some of this mechanics (or even to suggest the ones already made)! My sincere thank you!
And sorry if i sounded rude: my English isn't perfect, so sometimes i use wrong words to (try to) comunicate.
 

Attachments

Last edited:

vico

Veteran
Veteran
Joined
Dec 13, 2015
Messages
161
Reaction score
19
First Language
Portuguese
Primarily Uses
RMXP
I will try, thanks!

@Haydeos, i tested this plugin, but i think a bit different of what i want. Sorry.

I edited the OP to best show what i want, i hope anyone sees this topic and get the same curiosity i have :p
 
Last edited by a moderator:

vico

Veteran
Veteran
Joined
Dec 13, 2015
Messages
161
Reaction score
19
First Language
Portuguese
Primarily Uses
RMXP

vico

Veteran
Veteran
Joined
Dec 13, 2015
Messages
161
Reaction score
19
First Language
Portuguese
Primarily Uses
RMXP

Tuomo L

Oldbie
Veteran
Joined
Aug 6, 2012
Messages
2,326
Reaction score
1,286
First Language
Finnish
Primarily Uses
RMMV
I will try, thanks!

@Haydeos, i tested this plugin, but i think a bit different of what i want. Sorry.

I edited the OP to best show what i want, i hope anyone sees this topic and get the same curiosity i have :p
Hello, I was working on something similar (albeit mine was an arena style battle clash of one vs one battles instead of literal rpg) and I think I can give you some insight on what you're about to set yourself for, especially from the things I learnt.

You should really use LMBS that was linked here earlier. Forcing you to have propper Street Fighter style battle each step would be insane much work (to give each unique enemy unique movesets, hitboxes, combos, etc) and it'd get really old quick, once the novelty wears off. (Which would happen after 3rd random encounter against same looking enemy, with same fighting style, earlier if it's multi round fights like you show) How are you going to handle multiple monsters at once or are each enemy you fight going to play nice and only go 1vs1 on you?

Either you'd have to make each battle really easy when you can just spam single attacks or you make each battle so hard that it's really annoying as hell to even play. You say that random battles in games like Final Fantasy are tedious, imagine those tedious battles but with you having to spam shoryukens every match instead of just pushing button to do so. I'd probably stop playing this game after 20 minutes, even if it'd be free.


Not to mention part of the fun in Fighting games is that I get to choose my characters and have diversity rosters to choose from.


I think you may be really shooting yourself to foot to try and make overly complicated things like this and please neither RPG fans or fans of fighting games, even if you'd somehow be able to pull it off. The RPG fans would get tired of all the combos you'd have to pull and fighting people would want to play as other characters and they want diversity, (a roster of 10 playable characters is considered small nowadays) most fighting game fans actually just skip the cutscenes and get to gameplay. Plus, fighting games are best with friends or against online, how would your game handle multiplayer, one of the most important things about fighting games?


Really, try the LMBS, it's really good. You'll thank yourself later.
 

vico

Veteran
Veteran
Joined
Dec 13, 2015
Messages
161
Reaction score
19
First Language
Portuguese
Primarily Uses
RMXP
Okay, i will try. Thanks
 

Awudajun

Villager
Member
Joined
May 8, 2017
Messages
11
Reaction score
3
First Language
Urdu/English
Primarily Uses
RMVXA
There is a way... I am a beginner to RPGMAKER coding but...
You could use log parameters for Mugen 1.0
using command line and RPG maker to call out a parameter with the mugen.exe like mugen.exe -log and then using rpgmaker to read the log file to determine whether the battle is won or lose!
This method only works with 1.0 though...
I hope someone with good skills can develop a simple script!
I've tried the code but without RPG Maker in command line and maybe it can be scripted for
Code:
M.U.G.E.N ver 1.00 (2010.06.29)
(c)2010 Elecbyte
example: mugen.exe -p1 evilryu -p2 goku -log
Options (case sensitive):
 -h -?               Help
 -log <logfile>      Records match data to <logfile>
 -r <sysfile>        Loads motif <sysfile>. eg. -r motifdir or -r motifdir/system.def

Quick VS Options:
 -p<n> <playername>  Loads player n, eg. -p3 kfm
 -p<n>.ai 1          Enables AI for player ?, eg. -p1.ai 1
 -p<n>.color <col>   Set player n's color to <col>
 -p<n>.life <life>   Sets player n's life to <life>
 -p<n>.power <power> Sets player n's power to <power>
 -rounds <num>       Plays for <num> rounds, and then quits
 -s <stagename>      Loads stage <stagename>

Debug Options:
 -nojoy              Disables joysticks
 -nomusic            Disables music
 -nosound            Disables all sound effects and music


Here's an example code I just tested when I put mugen folder contents into my rpg game project folder and run a script in rpg maker vx ace event

Code:
system("mugen.exe -p1 "KFM" -p2 "KFM" -p3 "KFM" -p4 "KFM" -p1.color "12" -p2.color "12" -p3.color "12" -p4.color "12" -p1.ai "0" -p2.ai "1" -p3.ai "0" -p4.ai "1" -rounds "1" -s "kfm" -log "Savedata.txt" ")
Where all players are KFM with p2 and p4 being CPU with 0 difficulty and selected 12th palette for all KFM characters and log file which records fight data in "saves/savedata.txt" saved in a folder"saves" created in the project folder
*sorry for my bad english
 
Last edited:

firststef

Veteran
Veteran
Joined
Jan 3, 2017
Messages
79
Reaction score
9
First Language
Romanian
I,m was waiting for someone to do this from september... I guess the only option will be paying someone to do it.
 

firststef

Veteran
Veteran
Joined
Jan 3, 2017
Messages
79
Reaction score
9
First Language
Romanian
^ I did but LMBS is very annoying.

1. LMBS's notebox is static and that doesn't allow you to change character sprites in-battle. No Super saiyan for goku.
2.In LMBS everyone passes trough everyone.
3.Skills can only give a small knockback and don't allow you to control the enemy's movement after the hit (you can't throw him in the air, move him back a lot, or draw him close with Scorpion's chain).
4. No efficient combo counter.
5.The characters that have a ,,flying,, ability can't raise higher than the scripted height. So they don't actually fly.
6.The damage area is always a rectangle, which for skills that look like spheres it is kynda lame.
7.The battle is very unballenced. If you encounter only melee enemies, hitting the attack button like a noob wins your battle, if some enemies have ranged or magic you can use your own skills to kill them first cuz they have small HP, and the AI is pretty dumb. Actually @Tuomo L did you managed to make the AI smarter by raising its entity's level?

So yeah... LMBS is an unfinished plugin.
 

Awudajun

Villager
Member
Joined
May 8, 2017
Messages
11
Reaction score
3
First Language
Urdu/English
Primarily Uses
RMVXA
Did you try the mugen external parameters? I tested and it works! The only thing i need is like a script which reads mugen log for character fight details
 

firststef

Veteran
Veteran
Joined
Jan 3, 2017
Messages
79
Reaction score
9
First Language
Romanian
^ Oh sweet! Finally a solution.

So... How exactly does this work? For every battle the Mugen.exe is opened?

Would you make a tutorial pls (after you complete it I mean)?
 

Awudajun

Villager
Member
Joined
May 8, 2017
Messages
11
Reaction score
3
First Language
Urdu/English
Primarily Uses
RMVXA
I am in exams sorry but i ll summarise the way i did it;( done in rpg maker vx ace)
1. Download Mugen 1.0 and extract contents. Copy all the folders from mugen folder into your project folder of rpg maker
2. In your game, add an event and run a script. In the script, write system("mugen.exe -p1 kfm -p2 kfm"). Instead of kfm you could put any other character but put all characters in Char folder of mugen
3. Run the event and check, Mugen should show up with two characters
You can check additional parameters in the comment codes i sent before
4. Add -log "Logfile.txt" after so that the fight is logged and the data of fight is stored
5. I saw a script but forgot where i got it, i ll write it once my exams are over. Basically, open logfile.txt which will be saved in the folder of project and then look for where it indicates fight won or lost and using the text reading script, set it up so that it reads that line and stores whether the fight was lost or won
6. Set up the script so that win/lost is send to rpgmaker and under conditions so that it can tell whether you won a fight
*I will make a video tutorial after 2 months or so due to ial exams and put the link here
* sorry for my bad english, also i only got mugen to work directly but have been unable to read from the log file. There's a little tool for mugen called storymode, I forgot who made it but it basically implements the same idea but doesn't use rpgmaker and instead plays video and directs to next fight when 1 fight is won
 

Awudajun

Villager
Member
Joined
May 8, 2017
Messages
11
Reaction score
3
First Language
Urdu/English
Primarily Uses
RMVXA
pls refer to this one, it has the parameter codes which you could add after mugen.exe like -s "kfm" for kfm stage
also theres a glitch sometimes it works with " symbol but sometimes without " symbol like system (mugen.exe) and system ("mugen.exe")
There is a way... I am a beginner to RPGMAKER coding but...
You could use log parameters for Mugen 1.0
using command line and RPG maker to call out a parameter with the mugen.exe like mugen.exe -log and then using rpgmaker to read the log file to determine whether the battle is won or lose!
This method only works with 1.0 though...
I hope someone with good skills can develop a simple script!
I've tried the code but without RPG Maker in command line and maybe it can be scripted for
Code:
M.U.G.E.N ver 1.00 (2010.06.29)
(c)2010 Elecbyte
example: mugen.exe -p1 evilryu -p2 goku -log
Options (case sensitive):
 -h -?               Help
 -log <logfile>      Records match data to <logfile>
 -r <sysfile>        Loads motif <sysfile>. eg. -r motifdir or -r motifdir/system.def

Quick VS Options:
 -p<n> <playername>  Loads player n, eg. -p3 kfm
 -p<n>.ai 1          Enables AI for player ?, eg. -p1.ai 1
 -p<n>.color <col>   Set player n's color to <col>
 -p<n>.life <life>   Sets player n's life to <life>
 -p<n>.power <power> Sets player n's power to <power>
 -rounds <num>       Plays for <num> rounds, and then quits
 -s <stagename>      Loads stage <stagename>

Debug Options:
 -nojoy              Disables joysticks
 -nomusic            Disables music
 -nosound            Disables all sound effects and music


Here's an example code I just tested when I put mugen folder contents into my rpg game project folder and run a script in rpg maker vx ace event

Code:
system("mugen.exe -p1 "KFM" -p2 "KFM" -p3 "KFM" -p4 "KFM" -p1.color "12" -p2.color "12" -p3.color "12" -p4.color "12" -p1.ai "0" -p2.ai "1" -p3.ai "0" -p4.ai "1" -rounds "1" -s "kfm" -log "Savedata.txt" ")
Where all players are KFM with p2 and p4 being CPU with 0 difficulty and selected 12th palette for all KFM characters and log file which records fight data in "saves/savedata.txt" saved in a folder"saves" created in the project folder
*sorry for my bad english
Here's an example:
Sample: of a logged battle:

[Match 1]
totalmatches = 1
team1.1 =
team2.1 =
stage = stages/kfm.def

[Match 1 Round 1]
winningteam = 1
timeleft = 77.75
p1.name = Goku transform
p1.life = 1000
p1.power = 3438
p2.name = Shingo Yabuki
p2.life = 0
p2.power = 5000

[Match 1 Round 2]
winningteam = 0
timeleft = 99.35
p1.name = Goku transform
p1.life = 1000
p1.power = 3438
p2.name = Shingo Yabuki
p2.life = 1000
p2.power = 5000


Winning team is the team that won if its 1 or lost if its 0 and power/life is the life/power at which the match was won. A text editing script for rpg maker could read this and then you could use the data to say like you won with remaining health x and life x
 
Last edited:

Tuomo L

Oldbie
Veteran
Joined
Aug 6, 2012
Messages
2,326
Reaction score
1,286
First Language
Finnish
Primarily Uses
RMMV
^ I did but LMBS is very annoying.

1. LMBS's notebox is static and that doesn't allow you to change character sprites in-battle. No Super saiyan for goku.
2.In LMBS everyone passes trough everyone.
3.Skills can only give a small knockback and don't allow you to control the enemy's movement after the hit (you can't throw him in the air, move him back a lot, or draw him close with Scorpion's chain).
4. No efficient combo counter.
5.The characters that have a ,,flying,, ability can't raise higher than the scripted height. So they don't actually fly.
6.The damage area is always a rectangle, which for skills that look like spheres it is kynda lame.
7.The battle is very unballenced. If you encounter only melee enemies, hitting the attack button like a noob wins your battle, if some enemies have ranged or magic you can use your own skills to kill them first cuz they have small HP, and the AI is pretty dumb. Actually @Tuomo L did you managed to make the AI smarter by raising its entity's level?

So yeah... LMBS is an unfinished plugin.

Yes, the demo shows this too. Try the one with Athena.

There is a combo counter.

Why are you wondering that if you have projectiles and other user doesn't have them you're winning? This happens in every fighting game, if the other one has projectile and other one, the one with projectiles of course has an advantage.

Flying in fighting game is super OP and broken if you'd endlessly be able to fly out of the reach of enemy, that'd just be cheap.


@Awudajun

The problem with your method is that you need to run Mugen exe which loads the whole game everytime from the start because you're effectively rebooting it and then it brings you to the charachter select screen and all everytime. You'd have to re write Mugen engine quite a bit to change the way so that it'd call each Mugen battler invidiually instead of the arcade mode and so it'd work on conditionals and invidual character battles in RPG Maker. I am not sure how heavy this is for the player's machine even if you'd somehow get it working, Mugen loads longer the more characters you have and considering it's RPG, there would be significant load times. Plus, you need to have to do some sort of a wrapper that loads RPG Maker and then Mugen at the same time basically running two executables at the same time which would mean you'd probably have to adjust RPG Maker source code too. This is a bit more than "plugin request" I can tell you that much.


I don't think any of you answered me if this is for like, every enemy encountered or if the game style is more like the style I mentioned of arena fighter? In which case, why do you even need RPG Maker at that point? Shouldn't you instead make a really good fighting game on just Mugen and skip all the RPG options? Again, a roster of 10 characters is small nowadays.
 

Awudajun

Villager
Member
Joined
May 8, 2017
Messages
11
Reaction score
3
First Language
Urdu/English
Primarily Uses
RMVXA
Yes, the demo shows this too. Try the one with Athena.

There is a combo counter.

Why are you wondering that if you have projectiles and other user doesn't have them you're winning? This happens in every fighting game, if the other one has projectile and other one, the one with projectiles of course has an advantage.

Flying in fighting game is super OP and broken if you'd endlessly be able to fly out of the reach of enemy, that'd just be cheap.


@Awudajun

The problem with your method is that you need to run Mugen exe which loads the whole game everytime from the start because you're effectively rebooting it and then it brings you to the charachter select screen and all everytime. You'd have to re write Mugen engine quite a bit to change the way so that it'd call each Mugen battler invidiually instead of the arcade mode and so it'd work on conditionals and invidual character battles in RPG Maker. I am not sure how heavy this is for the player's machine even if you'd somehow get it working, Mugen loads longer the more characters you have and considering it's RPG, there would be significant load times. Plus, you need to have to do some sort of a wrapper that loads RPG Maker and then Mugen at the same time basically running two executables at the same time which would mean you'd probably have to adjust RPG Maker source code too. This is a bit more than "plugin request" I can tell you that much.


I don't think any of you answered me if this is for like, every enemy encountered or if the game style is more like the style I mentioned of arena fighter? In which case, why do you even need RPG Maker at that point? Shouldn't you instead make a really good fighting game on just Mugen and skip all the RPG options? Again, a roster of 10 characters is small nowadays.
Yes that's true but i'm working on my script which opens a battle directly without going to a char select and directly outputs the log
The problem i have now is that how can i save script in the editor and call a script on an event?
You're right... there's many disadvantages of using this:
- It wont remain RPG anymore
- Wee'll have to redistribute mugen everytime and the license doesnot allow selling/commercial use
- Problems with keys and controls overlapping
- Mugen opens as a separate window rather than in-game
Advantages:
- If i run it through command line and using parameters, it doesn't take much on ram
- A fight can have a max of 4 chars so if i code the script right, i will be able to use the fight data accurately
- If a mugen is rebooted independantly, like from the exe it will take up space and a lot of ram but if used from a command line it only reboots with certain characters loaded into ram that don't take up that much of space
- I agree with you but i m interested in combining rpg with mugen engine
- pls show me an example of what you mean
- Have you tried mugen? Which version? Winmugenplus or 1.0
- mugen 1.1 has alike arena, like you could go further and there is screen zooming but the log feature doesnot work
 
Last edited:

firststef

Veteran
Veteran
Joined
Jan 3, 2017
Messages
79
Reaction score
9
First Language
Romanian
@Tuomo L Why we want MUGEN and RPG? Why do you want only RPG? If we can do it and it's cool then Awesome!
@Awudajun what language is Mugen written in? Is there a way to make it a plugin?
 
Last edited:

Tuomo L

Oldbie
Veteran
Joined
Aug 6, 2012
Messages
2,326
Reaction score
1,286
First Language
Finnish
Primarily Uses
RMMV
Yes that's true but i'm working on my script which opens a battle directly without going to a char select and directly outputs the log
The problem i have now is that how can i save script in the editor and call a script on an event?
You're right... there's many disadvantages of using this:
- It wont remain RPG anymore
- Wee'll have to redistribute mugen everytime and the license doesnot allow selling/commercial use
- Problems with keys and controls overlapping
- Mugen opens as a separate window rather than in-game
Advantages:
- If i run it through command line and using parameters, it doesn't take much on ram
- A fight can have a max of 4 chars so if i code the script right, i will be able to use the fight data accurately
- If a mugen is rebooted independantly, like from the exe it will take up space and a lot of ram but if used from a command line it only reboots with certain characters loaded into ram that don't take up that much of space
- I agree with you but i m interested in combining rpg with mugen engine
- pls show me an example of what you mean
- Have you tried mugen? Which version? Winmugenplus or 1.0
- mugen 1.1 has alike arena, like you could go further and there is screen zooming but the log feature doesnot work
Thanks from your big post, let me do justice and explain my point further.

I have used Mugen from way before it was 1.0 I forget the version. I played every version up to the latest and was working on making my own character with it. Hit boxes and all that is huge ammount of work, now imagine having to do that for like 100 random enemy you may encounter in game. This, combined with the fact that most fighting game fans mostly just skip cutscenes and only care about multiplayer or fighting, this leads the game to be in an odd spot.


I'll tell more about my experience in doing RPG Maker 2D fighter too, briefly.

I made a 2-D fighter minigame in RPG Maker 2003 that was kinda like Street Fighter but ****. Everyone hated it because it was very clunky and primitive because every sprite was called as a move picture event and hit boxes were handled by invisible events that moved with enemy. This method, was primitive and of course you don't want to copy this but I want to just show that this is a subject I've been working on for a long time, like way before 2006.


The best way as you said is to do command line, that has these command line parameters as dll. When the game goes to certain mode, the game calls for the dll which runs the command line and then plays the thing. I really think Wrapper is the best option due to this as you'll otherwise end up with many dlls which each have unique command line parameters. The problem comes how to make RPG Maker realize that this data is important, wait for the Mugen fight and such.
 

Awudajun

Villager
Member
Joined
May 8, 2017
Messages
11
Reaction score
3
First Language
Urdu/English
Primarily Uses
RMVXA
well we could all work together and do it;
Mugen uses allegro and sdl 2.0 library
its coded in c++ but theres another verson called paintown which is opensourc so i ll have to ask someone really good at programming to use paintown and make a plugin which works for rpg maker. paintown is written in python
Here's one I made, a mugen screenpack;
Code:
https://www.youtube.com/watch?v=Yjl_wtRnBHM
I've made many screenpacks (although i didnt post any to youtube or other websites) and a lot of testing on mugen but one thing is that its really hard to script in rpg
right now, the progress is that i've been able to write a simple code but only for fight run durectly without char selection its taken me a long time to figure the code out also the next thing is if anyone has an idea on how to put the screen in game so when we run it, it doesnot look like its run in a separate window. Also does anyone know like a pre made scrypt which i can use it to edit text files enabling me to edot and read fight data from log
i've prepared like a beta code which i ll paste here in a while that has worked for me
*thanks for suggestions[/CODE]
 
Last edited:

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

Latest Threads

Latest Profile Posts

How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c
So I was playing with filters and this looked interesting...

Versus the normal look...

Kind of gives a very different feel. :LZSexcite:
To whom ever person or persons who re-did the DS/DS+ asset packs for MV (as in, they are all 48x48, and not just x2 the pixel scale) .... THANK-YOU!!!!!!!!! XwwwwX

Forum statistics

Threads
105,854
Messages
1,016,998
Members
137,562
Latest member
tamedeathman
Top