News:

MFG's Character of the Month: October 2026 Nominations

Main Menu

3 tick buffer

Started by JustNoPoint, October 19, 2015, 02:22:00 AM

Previous topic - Next topic

JustNoPoint

I really like the idea of a 3 tick buffer window in SFV to make links a bit more forgiving. I'm trying to think of the best way to implement this in MUGEN. Would I need to code my attacks so that for example if I press SP then in the last tick before I gain control I press SP again that it should create a variable that once control is gained again automatically dishes out the corresponding button input?

Or would there be simpler ways to do this?

To clarify the purpose would be to allow any button press during the final 2 ticks of any attack animation to still initiate the attack right as soon as the animation ends.

Odb718

I think you're describing buffer time?
Spoiler (click to show)
; - buffer.time (optional)
;   Time that the command will be buffered for. If the command is done
;   successfully, then it will be valid for this time. The simplest
;   case is to set this to 1. That means that the command is valid
;   only in the same tick it is performed. With a higher value, such
;   as 3 or 4, you can get a "looser" feel to the command. The result
;   is that combos can become easier to do because you can perform
;   the command early. Attacks just as you regain control (eg. from
;   getting up) also become easier to do. The side effect of this is
;   that the command is continuously asserted, so it will seem as if
;   you had performed the move rapidly in succession during the valid
;   time. To understand this, try setting buffer.time to 30 and hit
;   a fast attack, such as KFM's light punch.
;   The default value for this is set in the [Defaults] section below.
;   This parameter does not affect hold-only commands (eg. /F). It
;   will be assumed to be 1 for those commands.
vVv Gouken718 vVv SabreTooth718 vVv


JustNoPoint

#2
I see this for a single button press but would it work like I'm asking about?
If I make the z button have a 3 tick buffer then would it mean simply pressing the button would make it activate 3 ticks after the fact when you gained control again?

I'll need to experiment with that this week after my work weekend is over.

Edit: guess a really easy way to test out how buffer time will effect single button presses is to make something ridiculous like 10 ticks and see how that changes things then test frame by frame with 3 ticks to be sure I'm getting my desired result.

altoiddealer

#3
Here's a thought - but please take with a grain of salt because I'm no expert quite yet :)

Maybe you can change to a very temporary state that doesn't affect any behavior or animations (still cntrl = 0) but will switch you to the correct state after, say, anim = 210 && animtime = 0

I don't have any experience with buffertime so the correct answer is probably from ODB


Odb718

Almost positive this is exactly what JNP wants.
I just tested on Samus to see if it's how I thought. I set up
[Command]
name = "Final" ;3000
command = x+a 
buffer.time = 30
That's her Ultra Fireball/Final from SSBB. I throw a regular standing FP and press x+a while the move is active and sit back. As soon as she gains control it goes straight into the Final.

If you wanted every single move to have 3 tic buffer you can set the default.

;-| Default Values |-------------------------------------------------------
[Defaults]
; Default value for the "time" parameter of a Command. Minimum 1.
command.time = 15
; Default value for the "buffer.time" parameter of a Command. Minimum 1,
; maximum 30.
command.buffer.time = 1

The original arcade Street Fighter II has this option. It partially led to it success because people could do the moves (easier).
and I'm pretty sure all iterations of SFII have it...
vVv Gouken718 vVv SabreTooth718 vVv


Bastard Mami

Quote from: Just No Point on October 19, 2015, 11:10:53 AM
If I make the z button have a 3 tick buffer then would it mean simply pressing the button would make it activate 3 ticks after the fact when you gained control again?

it's not that the button activates 3 ticks after, but more like it stays active for 3 ticks.

Noctis

I read this earlier and had no idea what you meant, but I think I got you now. You want to have your attacks set up in a way that say you're doing your first attack, but you press the button 2 more times than that so then it'll continue to chain into the next 2 attacks regardless of what you do (unless you break into a jump or something), yes?
A coder by the name of Alfred and his dc_lion character display this effect absolutely perfectly and I've always tried to imitate it, but his char is set up to play almost entirely of vars. EVERYTHING is connected so it's near impossible to get what he did unless you made the character yourself.
I did it the best I could with my Android 18 WIP. It's not perfect, though. Basically, what you do is during your attack (before you've hit since once you've hit or after you've hit the trigger used for that is just movecontact/movehit/blahblah) you have a var ready to be set once you've hit a specific command and then in your commands for that changestate you have it triggered by either the command or when that var is alive. And then resetting the var when it's no longer needed and whatnot. If you do it right it can be used for all attacks/commands. If you want it to read your next two moves even though you pressed the button twice in the first attack, then probably something like a varadd per amount of times the command was hit for a total of 2 and every time it goes into your next state, it removes the var by 1 until it can no longer change states, but I think if you wanted to do it this way you'd need multiple vars or multiple states so it doesn't cause an infinite loop or something.

(Youtube) (WIP) (Mediafire) (New Anime Shop) My Manga Reviews! Personal favorite Patreon! Check her out!

"There is nothing either good or bad, but thinking makes it so."

JustNoPoint

I did some testing with default buffer.time and yes, it did what I was wanting. I've always known the term buffer and how to use it in combos but I guess I never really set down and define the exact nature of it.

E's post defined it very well and tomorrow I'll test several things within the .cmd and make a mugen class post about it explaining better many of the functions. I'll use E's post to help explain exactly what a buffer is.

Thanks everyone! And Noctis, that's still useful information. I may use it for target combos to make it easier to just dial a combo them.

Odb718

What Noctis is something like a Tekken style. Where you can press your 10 hit combo fast and it'll just come out. Or that's how Tekken 2 always seemed to me. I'd do 7 or 8 button inputs before the 3rd move was out and it'd keep kicking butt. I'd imagine having to have 10 or so variables to fill in with the actual stateno you need to switch to.  3 or 4 variables would mean you'd only be able to keep track of 3 moves. It wouldnt be too hard to stop the loop from happening. One value would be blank so you'd be able to keep track of the spot youre at in the chain.
Kinda interested in seeing that character now lol.
vVv Gouken718 vVv SabreTooth718 vVv


Jesuszilla

Look into the buffer system Vans and I use.

Jango

I'm going to be honest with you and Vans. If you want your command buffering system to take off in this community, you're going to have write up what it is, what it does, what it requires... as much as you can.

As it is, just being told to look into Vans' characters isn't really helpful because while it gives a summary of what the overall system is intended to do, this probably won't mean much to most people who aren't heavily invested into character creation or fighting game terminology. From what it looks like, it isn't something you can just copy-paste into a character, as it looks like you have to code your character around this system. And doing so without any explanation just feels like a good way to be set up for failure. For example, there was someone who was just starting out in MUGEN who tried to put it in his character, and all it did was exacerbate the problems that usually come when you make your first character because the moves just weren't coming out correctly.

Additionally, it's important to explain your limitations and what you can/can't do. Even after looking over everything, I'm nervous to do anything that involves varsets for fear that it might interfere with the system. And it's not a matter of "oh, well you don't know how to code," but I feel that there needs to be some more elaboration outside of comments in the coding itself. And I'm not talking about the various commented-out Parappa the Rapper lyrics in there either :P

tl;dr y'all niggas need to write up a user-friendly guide on how this thing works

JustNoPoint

Quote from: Jesuszilla on October 20, 2015, 07:06:14 AM
Look into the buffer system Vans and I use.
QuoteI'm going to be honest with you and Vans. If you want your command buffering system to take off in this community, you're going to have write up what it is, what it does, what it requires... as much as you can.
That'd be really useful. Especially since setting this in buffer.time seems to do what I want at 1st glance. What all does the custom buffer system do that's different?

I'm going to look into it of course. I'm just curious. I'm going to assume it'll be in your CVS Felicia.

Noctis

Oh poop. You're talking about the actual buffer time in commands. I never considered using that and quite frankly forgot it existed. You got it solved, JNP?

(Youtube) (WIP) (Mediafire) (New Anime Shop) My Manga Reviews! Personal favorite Patreon! Check her out!

"There is nothing either good or bad, but thinking makes it so."

JustNoPoint

Yep, unless I have questions about the buffer code from JZ and Vans. But if I do I'll make a new thread for that. This particular issue is solved. :)