CeruleanMomo

Villager
Member
Joined
Oct 12, 2020
Messages
9
Reaction score
6
First Language
English
Primarily Uses
RMVXA
Hello hello, I am in need of assistance yet again. My partner and I want to have a swimming mini-game, like an actual competitive sport. Unfortunately, I don't know how to get this to work.

EDIT: Forgot to include it's for RPG Maker VX ACE. My bad.

Here's what all I'm looking for:
  • Some kind of button in-put to determine how you enter the water - penalty for early entry
  • Whatever button in-put to help you try to move ahead of your opponent(s)
  • A difficulty setting to determine how strong/weak the opposition is in comparison to your person
  • Whatever event determines the opponent got to the finishing block before you
  • When you reach a certain point and have to swim back, there should be a button input to boost your speed to turn around or penalize you.
A better way to describe this - anyone play the swimming mini-game in the Mario & Sonic Olympic games? Something like that if it's possible. If a script isn't required, awesome. If one is needed, so be it. I need some help getting this right. Thank you to whomever in advance.

Included is a video demonstration of the aforementioned game from its recent entry:
< --- you do not have to watch the entire video.
 
Last edited:

CeruleanMomo

Villager
Member
Joined
Oct 12, 2020
Messages
9
Reaction score
6
First Language
English
Primarily Uses
RMVXA
Whoops! I knew I forgot to include something else. Adding a video to the first post.
 

kiyasu

Professional Illustrator and Character Designer
Veteran
Joined
Aug 19, 2020
Messages
61
Reaction score
249
First Language
maybe English?
Primarily Uses
RMVXA
Adding a video to the first post.

Thanks for adding it. Ah, I'd like to know how to achieve a mini-game like that in VX Ace too. Already watching your thread! The mechanics in the video reminded me very much of the swimming mini-games from some 90s games I've played, which I enjoyed very much. Hope you find a solution to this!
 

CeruleanMomo

Villager
Member
Joined
Oct 12, 2020
Messages
9
Reaction score
6
First Language
English
Primarily Uses
RMVXA
Bump....? (hopefully I'm doing this right)
 

kiyasu

Professional Illustrator and Character Designer
Veteran
Joined
Aug 19, 2020
Messages
61
Reaction score
249
First Language
maybe English?
Primarily Uses
RMVXA
@CeruleanMomo This looks like something that may take an entire script itself, so it's probably not surprising if nobody replies. Have you considered commissioning scripting people for this? Think there might be plenty of people open for script writing. Feel free to Private Message me if you want me to look into who might can write this for you at this time. =)

EDIT: The original poster sent me a private message about this, after reading my post.
 
Last edited:

Mhin Ra

Veteran
Veteran
Joined
Aug 17, 2015
Messages
68
Reaction score
19
First Language
English
Primarily Uses
RMVXA
So, what Kiyasu said is sorta right, but I think you can probably avoid scripting for this. It seems like the core thing you're trying to do is make a mini-game where the player has to push buttons at just the right time. That's true for starting, but it's also true as they are swimming (press at the last possible moment, but not too late or you loose too much speed). Is that essentially right?

If so, then I think you can break the problem down into two sub-problems. First, how to require and detect the player pressing buttons at the right time. Second, how to show UI that indicates to the player WHEN is the right time to press the buttons.

For detecting button pressing, it's fairly easy: you can write a parallel event running on the map that will read when a key press happens. There's a conditional button in the event creation screen and one of the many, many options is a button being pressed:

1607050295765.png

So, something like this (on a parallel event page):

1607050412949.png

Will essentially read input every frame. Now, for swimming, you probably want to set some game variable to be the player's speed. When they press 'A', you can bump their speed up. And every frame, you might subtract a little off to simulate them slowing down. You can keep another variable that records the time since they last pressed A, and if that's too short, you can ignore their button press or penalize them by taking away some speed. Since you do that loop above one time per frame, you can just do 'add 1' to keep track of how much time has passed.

Of course, you have to translate their speed variable into the character actually moving ;) For this entire game, you're probably just forcing the player on a repeat move route that says 'Move Forward', with their frequency set to highest (so they move smoothly). A simple way to adjust speed is just to set their move speed depending on the value of the 'player speed' game variable we're using. It would be discrete (i.e. they'd speed up or slow down in big increments). You could make that more finer grained using scripting, but I'd rough out the rest to see how important that is first.

Given the above, you can probably make a pretty good guess as to how you'd do the 'press Start at the right time' and also the flip turn at the end of each lap. To detect when the player finishes, you can use another conditional (player X, Y is another option you can key off of).

Displaying when to press is a little harder if you want something fancy, but if you just want to, say, put a red dot on the screen when the player is allowed to press a button, then just use the Show\Hide picture command. I bet if you play with that, you can start to get an idea of how to do fancier stuff.

Obviously, if you want a bunch of fancy intros, you might need scripting. But, I'd suggest you get a playable mini-game, tune the mechanics and then see if you like it enough to polish it more :)
 

CeruleanMomo

Villager
Member
Joined
Oct 12, 2020
Messages
9
Reaction score
6
First Language
English
Primarily Uses
RMVXA
Wowza~ (do people even say that?) I had someone pretty much say the same thing to me, but you added more detail. Then again, she did tell me to ask people to better understand the event processing to get this going. I know this isn't going to be an overnight success, but at least it's a step in the right direction. Nope, no fancy intros needed. I'll definitely have to give this a try whenever I get the proper amount of time to do so. Thank you for your advice.
 

Mhin Ra

Veteran
Veteran
Joined
Aug 17, 2015
Messages
68
Reaction score
19
First Language
English
Primarily Uses
RMVXA
I hope it helps when you sit down to it. If you run into issues, I'm happy to offer more specific advice. Mostly I was trying to give you an idea of how you structure and think about stuff in RPGMaker. The engine is surprisingly capable and surprisingly extensible, so you can do an awful lot in it once you understand how it does it's thing :)
 

kiyasu

Professional Illustrator and Character Designer
Veteran
Joined
Aug 19, 2020
Messages
61
Reaction score
249
First Language
maybe English?
Primarily Uses
RMVXA
@Mhin Ra RPG Maker VX Ace is a lovely engine in so many ways, and I am very grateful to use it. (I like it much, much more than MV and MZ.) There are so many things one can surprisingly achieve through basic events. I didn't think of swimming like this though... as I usually prefer more smoother and fancier stuff for a mini-game like this. However, would like to give your ideas a try! It's so interesting!! =)Once again, thank you for this! I hope @CeruleanMomo works this out as well!!
 

Latest Threads

Latest Posts

Latest Profile Posts

JRPG Browser - Playlist:
Hello, comrades, do you have a pack of modern or student clothes? i need for my project: 3
Just a reminder. One expectation of being a new member is that you read the rules. You can find them here: https://forums.rpgmakerweb.com/index.php?threads/forum-rules.90/

Looking to identify this particular Keygen song used in a YTP
I'm currently in the mood to write horror.
Someone do something scary. (orange)

Forum statistics

Threads
109,095
Messages
1,041,967
Members
141,578
Latest member
Literal_Grit
Top