YesNoOk
avatar

Let's update Kung Fu Man (Read 115057 times)

Started by JustNoPoint, January 01, 2016, 04:31:05 pm
Share this topic:
Re: Let's update Kung Fu Man
#81  January 20, 2016, 07:15:06 am
  • *****
  • Thanks and God bless
    • USA
    • ricepigeon.neocities.org
the y-velocities for jumping need to be adjusted to higher values in order to compensate for the increased yaccel value, otherwise KFM ends up having a lower jump peak and wont be able to jump over taller characters that he should be able to otherwise. For yaccel of 0.5, I find that increasing the jump y-velocity to -10.4 works for getting approximately the same peak of your jump that you would with the default value of -8.4 with the 0.44 yaccel.
Re: Let's update Kung Fu Man
#82  January 20, 2016, 07:44:17 am
  • ****
  • Prince of Latis
  • Destroy the Core!
    • Canada
    • Skype - Whiplash-1
here's some values to consider:

Ryu's Jump vel in CVS2: -7.125
y accel: .3125

Ryu's Jump vel in MVC2: -9.5
y accel: .421875

Both are lower then what you guys have suggested... Maybe a floatier jump is actually what you want?
Re: Let's update Kung Fu Man
#83  January 20, 2016, 03:56:36 pm
  • ******
    • www.justnopoint.com/
Jump vel of -10.4 and yaccel of .5 seems better.

The values you have for CVS2 Ryu are the values it spits out for normal speed jumping which is quite floaty. Because normal speed is like molasses :P

If you are on the default turbo speed (2 IIRC) Ryu's vels should look more like this
jump.neu = 0, -9.25
yaccel = .49

I got this by using the same controller to play MUGEN and CVS2 at the same time. I was able to sync CVS2 Ryu and MUGEN Ryu so that their peak and landings were at the exact same spots/timings.

This looks closer to what is being implemented in KFM. In normal speed capcom games are some of the slowest. People rarely play in those speeds.
Re: Let's update Kung Fu Man
#84  January 20, 2016, 04:13:21 pm
  • ****
  • Prince of Latis
  • Destroy the Core!
    • Canada
    • Skype - Whiplash-1
Oh right. I forgot no one plays cvs2 at normal speed.
Re: Let's update Kung Fu Man
#85  January 20, 2016, 05:36:53 pm
  • ******
    • www.justnopoint.com/
I didn't see anything that was questionable in this. To be clear I am using Vans's fixed common1 found here

Spoiler: Common1 Stand through Jump Land 0-52 (click to see content)

Run Forward has been changed so that you cannot crouch or attack while running. And you may jump while running

Spoiler: old code (click to see content)


Code:
;---------------------------------------------------------------------------
; Run forward
[Statedef 100]
type    = S
physics = S
anim = 100
sprpriority = 1
ctrl = 0

[State 100, 1]
type = VelSet
trigger1 = 1
x = const(velocity.run.fwd.x)

[State 100, 2] ;Prevent run from canceling into walk
type = AssertSpecial
trigger1 = 1
flag = NoWalk

[State 100, 3] ;Prevent from turning
type = AssertSpecial
trigger1 = 1
flag = NoAutoTurn

[State 100, Jump] ;allows you to jump while running
type= changestate
trigger1= command="holdfwd" && command="holdup"
value= 40

[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 0
ctrl = 1

Spoiler: Hop Backwards seems fine (click to see content)

Spoiler: Hop backwards (land) uses makedust which is deprecated (click to see content)

Code:
;---------------------------------------------------------------------------
; Hop backwards (land)
[Statedef 106]
type    = S
physics = S
ctrl = 0
anim = 47

[State 106, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 106, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 106, 3]
type = Explod
trigger1 = Time = 2
anim = F120
pos = 0, 0
removetime = -2

[State 106, 4]
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
x = 0

[State 106, 5]
type = ChangeState
trigger1 = Time = 7
value = 0
ctrl = 1

Does the Guard states work correctly? I noticed that HDBZ and POTS chars override this. It looks like it is done to make sure the blocking frames transition from Stand to crouch correctly, etc.
Should I alter the guard states any?

That's it for now. Comments? Questions?

EDIT: I was wrong about the land state (52)
Now we have this bullshit code implemented in Mugen common1.cns:

[State 52, 3]
type = CtrlSet
trigger1 = Time = 3
value = 1

KFM lands on state 52, but he didn't recover control yet. He still has 3 frames where he is a sitting duck, due to the code above. The code didn't consider that he landed from a gethit state and will negate control for more 3 frames.

Any attack I perform on him in this 3-frame window WILL register as a combo and WILL be a valid combo.

Because when KFM landed after the juggle he STILL didn't have his chance to recover. That's why when you give complete freedom for juggles it's better to make every attack knock an airborne opponent down.

Would adding this fix this issue? @Zzyzzyxx:
[State 52, 3]
type = CtrlSet
triggerall = Time = 0
trigger1 = PrevStateNo = 5020 || PrevStateNo = 5030 || PrevStateNo = 5035
trigger2 = PrevStateNo = 5040 || PrevStateNo = 5050 || PrevStateNo = 5070
trigger3 = PrevStateNo = 5071 || PrevStateNo = 5200 || PrevStateNo = 5201
trigger4 = PrevStateNo = 5210
value = 1


EDIT2: Or as POTS says
;---------------------------------------------------------------------------
; Jump Land
[Statedef 52]
type    = S
physics = S
ctrl = 1
anim = 47

[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 52, 4]
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
x = 0

[State 52, Guard]
type= changestate
trigger1= inguarddist
trigger1= ctrl && command="holdback"
value= 120

[State 52, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
Last Edit: January 20, 2016, 07:01:51 pm by Just No Point
Re: Let's update Kung Fu Man
#86  January 20, 2016, 07:38:37 pm
  • ******
    • www.justnopoint.com/
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

I think I'm finished with common1
Current KFM in link let me know if I missed anything.

Went ahead and replaced the Guard states with POTS guard states. Left the ai he implemented for them and updated his hitvelset SCTRLs by replacing them.
Spoiler: cause it's super long (click to see content)
Last Edit: January 20, 2016, 07:42:24 pm by Just No Point
Re: Let's update Kung Fu Man
#87  January 20, 2016, 11:22:04 pm
  • ***
  • I hate coding helpers.
    • Brazil
First of all:

He can't attack at all while running. The triggers in his cmd for his non-aerial attacks should be ctrl || stateno = 100.



Would adding this fix this issue? @Zzyzzyxx:
[State 52, 3]
type = CtrlSet
triggerall = Time = 0
trigger1 = PrevStateNo = 5020 || PrevStateNo = 5030 || PrevStateNo = 5035
trigger2 = PrevStateNo = 5040 || PrevStateNo = 5050 || PrevStateNo = 5070
trigger3 = PrevStateNo = 5071 || PrevStateNo = 5200 || PrevStateNo = 5201
trigger4 = PrevStateNo = 5210
value = 1


EDIT2: Or as POTS says
;---------------------------------------------------------------------------
; Jump Land
[Statedef 52]
type    = S
physics = S
ctrl = 1
anim = 47

[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 52, 4]
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
x = 0

[State 52, Guard]
type= changestate
trigger1= inguarddist
trigger1= ctrl && command="holdback"
value= 120

[State 52, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
I don't think giving control at the first fame KFM lands is a good idea. I prefer the idea followed in Capcom's games, which involves the Trip Guard concept.

http://wiki.shoryuken.com/Ultra_Street_Fighter_IV/Game_Systems#Land_Frames_.2F_Trip_Guard

During landing state, most Capcom games negate control for 1 frame if the player attacks with an aerial basic during the jump.

However if he doesn't perform any action, he regains control immediately, being able to block at the first frame the player lands.

KOF series doesn't use the concept of trip guard. Your control when landing is negated for the first 2 frames, regardless of using a jump attack or not.

The code below fullfills the need of having control when landing from a gethit state, And it does much more. It also reproduces the concept of Trip Guard successfully.

[state 52, Control]
type = ctrlset
trigger1 = !time
trigger1 = !(prevstateno = [600, 699])
trigger2 = time = 2 ; 2 for SNK-style, 1 for Capcom-style. Both are good options.
value = 1

[State 52, Guard]
type = changestate
trigger1 = ctrl && command = "holdback"
trigger1 = inguarddist && (prevstateno != [600, 699])
value = 120



In addition, in my opinion, stateno 40 should be invulnerable to throws. This is how commercial games tend to do.

[state 40, Vulnerability]
type = hitby
trigger1 = 1
value = SCA, NA, SA, HA, NP, SP, HP



In addition again, make sure to fix a few syntax issues found in his code.



I don't even think that the trigger statetime actually exists. I never tested it, though.

KFM will be marked with a red cross even after you fix all codes, though. It seems to be a bug in Fighter Factory 3, which interprets the folder of char not having any .act files (KFM's case) as an actual issue. I saved KFM's (not your version, Elecbyte's one) six palettes inside his folder and Fighter Factory issue warnings disappeared, showing a green "V" signal instead.



I have serious objection about how his chain combos are handled. You know, the impossibility of cancelling crouching basics into standing basics and vice-versa, like every other fighting game with chain combos (via replacing the triggers statetype = S and statetype = C in his cmd with statetype != A. All advanced coders will agree with me.).

Some people may argue that this is an issue that should be addressed in Advanced KFM or Expert KFM. For me, this is a fundamental issue and should be addressed in the basic version. Objections?
Last Edit: January 20, 2016, 11:40:20 pm by Zzyzzyxx
Re: Let's update Kung Fu Man
#88  January 21, 2016, 12:40:57 am
  • ******
    • www.justnopoint.com/
Thanks, I won't have time to work on it more today but I'll make all of those changes.

Should KFM be able to attack while running? I thought that wasn't common.

And I agree on the StateType != A changes.

Also to remind myself. I didn't edit the state responsible for this.
Mugen has a hard coded bit of behaviour if liedown time remaining is less than 10, you become completely invulnerable. I would leave it at 60, cos that doesnt' really matter, and override that state to make you get up quicker. Otherwise you make your character unhittable while down which is very very rarely intended behaviour.

You can't bypass that short of making your own lie down state, and since there is one there already, overriding it to behave differently is a better idea.
Re: Let's update Kung Fu Man
#89  January 21, 2016, 12:46:47 am
  • ****
  • it's me
  • Bat's a Wrap.
    • Chile
    • koakoa@jabber.org
    • Skype - koakumadevil69
Yeaaaah im shootign ducks wiht the paino
Re: Let's update Kung Fu Man
#90  January 24, 2016, 02:15:49 pm
  • ******
Why did you add a CLSN1 on the fifth frame of the normal KF Palms and on the fourth of the Fast KF Palm (the frame with the blur)? It worked right before, also the blur shows the palm still hasn't reached the enemy so it shouldn't hurt; moreover, the "swing" sound plays the frame after it if it hits the enemy.
The playsnd is right, the CLSN1 you added isn't.
Re: Let's update Kung Fu Man
#91  January 24, 2016, 03:04:43 pm
  • ******
    • www.justnopoint.com/
I was considering using the move to show how to have certain frames play through hit pause.
Re: Let's update Kung Fu Man
#92  January 25, 2016, 03:28:29 am
  • ****
    • China
    • http://vans.trinitymugen.net/
As I keep telling you guys, write up something about this thing that explains what the buffering system does and how it works instead of just telling people to look at your characters' code. Based on my limited understanding, it's not just something you copy-paste into a character and call a day.

Here's my recommendation since apparently telling you or Vans to do a write-up on what it does has no effect: If you're REALLY that dead-set on showing how this thing works, youshould port a vanilla KFM over to the system with as much documentation as possible as to why you're assigning which variables where. And when I talk about writing something up, I don't mean like this:

Quote
;==============================================================================;
;Introduction:
;This is a buffering system aimed at recreating the control feel of the NeoGeo
;KOF series of games.
;
;The helper is capable of providing buffering as well as PERFECT reversed
;commands.
;
;Any and all editions should be done in the BUFFER DEFINITION section.
;
;Unless you plan to modify the whole system, do not touch the numbers in the
;varsets, ever.
;
;Try to keep a list of the variables used as well as the respective commands,
;just to keep some sort of order.
;
;In addition, try to follow this list as much as possible to avoid problems:
;FUNDAMENTAL MOVEMENT        = System variables  (RESERVED.)
;Basic and system commands:  = var(0)  - var(19) (RESERVED.)
;Special move type commands: = var(20) - var(39)
;Super move type commands    = var(40) - var(49)
;MISC. commands              = var(50) - var(59)
;Ultimate Button Check       = fvar(1)
;Scramble mode switch        = fvar(2)
That's in Hotaru_LB. The last character I downloaded in this system was Rugal so I dunno if you've made the explanation more clear since then, but even I'm looking at this right now and thinking "Well what am I supposed to do now?"

Hello Jango, sorry for the late reply.

Actually, I don't recall you formally contacting me to make a tutorial on how to use the system. I did, however, offer all my help so you could implement it without any problems. Do bear in mind that I spend a very small amount of time reading forums and keeping up, I often receive too many messages to keep track of everything, I am sorry for that.

I *personally* have only recommended this system to very particular coders that I consider highly proficient in CNS coding. In my experience, coders who have enough interest in using this system have had no problems following the pointers and implementation of this code, and like I have always done, I offer personal help to the people interested in doing it.

As of late I have decided against writing tutorials for certain things as they're often not included into tutorial repositories, so I prefer to have direct contact with people who are interested in learning / implementing some of the methods and systems that I code.

For this particular system, why don't you help us out with the nooks and crannies of explaining it? I already coded the system and it's completely open source and labeled for everyone to read. Right now I'm in a stage where I can either spend time doing documentation or further fixing/creating systems, so I prefer to develop more helpful things instead.

I have discussed the possibility of creating a version of Kung Fu Man with a basic implementation of the buffering (like Jesuszilla mentioned) with KoopaKoot . I think it would much more positive if we flesh out the documentation portion as a community effort instead (if there's interest).
Re: Let's update Kung Fu Man
#93  January 25, 2016, 03:53:34 am
  • ****
  • Prince of Latis
  • Destroy the Core!
    • Canada
    • Skype - Whiplash-1
Should KFM be able to attack while running? I thought that wasn't common.

Well, in KOF, Garou, MVC, Darkstalkers and CVS you can attack while running.

In fact the only games I find you can't cancel your dash with an attack are the SF series with dashes (3 and 4)

Re: Let's update Kung Fu Man
#94  January 25, 2016, 05:28:39 am
  • ******
  • Double-Crosser
  • I'm not standing out. This isn't weird at all.
    • USA
@Vans: I never "formally" contacted you because I generally posted responses to your posts or JZ's posts. I figured that would be enough, especially since I know at least JZ is a regular poster here and could probably answer as well. Plus I was never really motivated to put the system into any of my characters just because it's not something that one can just copy-paste (I'm a pretty simple coder lol)

HOWEVER if you want my help writing documentation, I wouldn't mind being the guinea pig here and trying to get this thing to work. Since you mentioned you're still in the process of fixing things, I'll wait until you've got it to an ireration you're happy with, and then I'll try to make something simple yet capable of showing how to make things work in multiple scenarios (ie: something Shoto-esque). I've got a few things I'm juggling atm but once I get more stablized there, I wouldn't mind taking a crack at it.

So yeah hit up a bruva, foo
:afro:
Re: Let's update Kung Fu Man
#95  January 25, 2016, 02:51:10 pm
  • ******
    • www.justnopoint.com/
If it's not overly complicated I'd love for us to add to, document, and implement the custom buffering system to KFM. I've implemented the corner push already in some of my chars I'm making. It'll need a bit more documentation for KFM as well.

I hope to get to work on him more today but I have a pretty busy day with errands. I'll try to finish the common1 this week at the very least.
Note, if any of this stuff like corner push, juggle, and/or buffering would be better in common1 let me know that as well.

Last but not least I'd forgotten you can cancel a run with a basic in most SNK games so I'll be sure to make it so when I work on the cmd file. Which I should rename the extension of as well.
Re: Let's update Kung Fu Man
#96  January 25, 2016, 06:58:39 pm
  • ******
  • Double-Crosser
  • I'm not standing out. This isn't weird at all.
    • USA
If it's not overly complicated I'd love for us to add to, document, and implement the custom buffering system to KFM.
Quote
I *personally* have only recommended this system to very particular coders that I consider highly proficient in CNS coding.
Also both the .cmd and .cns are affected since, based on my understanding, it changes how commands are performed, or rather how commands are detected. Maybe I'm explaining it wrong, but instead of purely using the .cmd to trigger moves based on directional inputs, you're using variables that track button inputs defined in the .cmd that in turn trigger your moves.

Basically, default is triggered by command, custom is triggered by variables triggered by commands.
Re: Let's update Kung Fu Man
#97  January 25, 2016, 07:39:08 pm
  • ******
    • www.justnopoint.com/
I haven't looked at it at all yet. But like, if it's something that's tough to implement but after you implement it you need to simply add x piece of code/vars to certain parts of cns and cmd then that doesn't sound too bad and fairly simple to document. If the user has to figure out and code complicated things for each new move then it shouldn't be added. Don't want to confuse the masses.

Either way it'd be a good idea to flesh it out and document it. Whether it's for KFM or simply a code archive thing.

EDIT:
Quote
Basically, default is triggered by command, custom is triggered by variables triggered by commands.
That might just be in the middle. Like maybe both examples could be given for the move. The var version commented out by default sort of explaining the alternate method if you understand it and choose to use it.
Last Edit: January 25, 2016, 07:45:04 pm by Just No Point
Re: Let's update Kung Fu Man
#98  February 01, 2016, 05:33:24 pm
  • **
 this is a great idea, ill be following this closely. thank you all involved..
Re: Let's update Kung Fu Man
#99  February 01, 2016, 06:46:43 pm
  • ******
  • Somewhere between Guilty Gear and real rap
  • ey b0ss
    • nass.yh95@gmail.com
This is a generic forum signature.
Re: Let's update Kung Fu Man
#100  February 01, 2016, 06:55:11 pm
  • ******
It doesn't have any new sprite, it's just a KFM with a gameplay similar to that of the old Infinite styled characters.