Users browsing this thread: 1 Guest(s)
MFGG TKO DevLog - TSG Left
#9
Devlog #2

tl;dr ... All I did was whine.

I finished moving all events over to lua. I also moved mit's actions and subactions over too. He's no longer hardcoded into the game and is now easily editable. There wasn't much that happened in the last few days other than that.

However, today, I realized that one somewhat important moveset feature doesn't actually work.... I'll explain how actions and subactions work really quick. Actions decide and set the current subaction. Actions get called every game step. They do not call or execute subactions. Subactions are coupled with an animation and gets executed once per animation frame. When an action changes the subaction, the new subaction will get executed from start to finish over the animation's time. Subactions can also change the current subaction to whatever they want which will also be executed from start to finish. This is how i did the punch combo. But... what if I have a subaction that needs to be "passFramed". PassFraming basically means to skip to an arbitrary frame in the next subaction. Visually, the animation and it's timeline is skipped correctly. But the code/script/subaction won't. I just realized now that the feature doesn't work =( ... I have ideas about how to go about doing it right, but I've found issues with all of them... I don't know how to "pass frame" correctly. Now, this isn't that big of a deal if I never have to passframe of course... But in this case, I do.

Here is the attack's animation that requires pass framing:

GIFS
*they all play at the same framerate. All animations have the same frame lengths. Ignore the fact that they're not synced.

Mit is shooting while walking. Each gif is a separate subaction.

....*deleted paragraph of explanation of issue*...

I don't even know how to explain the issue with lua code without things getting too confusing. I'm just having trouble explaining this. Basically, this group of subactions all have to be pass framed to. As you can see, each subaction shoots a projectile at a specific frame. It is important then to use pass frame in order to skip to the correct location within the subaction script so that any event before hand doesn't get called. If i pass frame past the shooting frame, then I shouldn't shoot at all. The issue is that every event prior to the wanted pass frame will execute.... Meaning that if I played the 4 subactions above, passframing from one to the other, then it would shoot 4 times instead of once...............

...*another deleted paragraph of brainstormed solutions*....

I don't know how to fix this issue. I can go around it by covering blocks of events within conditions like

Code:
Asynchronous(#)
if((passFrame && frame == #) || !passFrame)
{
     //create offensive collision
     //do whatever
     Synchronous(5)
}

if((passFrame && frame == # + 5) || !passFrame)
     //do whatever
... but that's seriously ugly. I can do that, but I wouldn't expect anyone else to do it....

Again, this isn't a feature that's required to make a moveset. Although, it would be nice to have the feature supported in a nice way. I'll stop whining now, thanks for reading. If anyone has any ideas, please share.

*Note: that there is an idle animation of the same shooting. So I couldn't go from the idle shot to walking shot without passframe. I also couldn't do the reverse of walking while shooting then going idle.

-----------------------------------------------------


Edit:

I've been thinking of creating a queue-like system for subactions. Events are added to the queue and then processed as they're added to the queue. The queue will have a "Queue Frame". The only way to change the queue frame is by Asynchronous and Synchronous timers. As events are processed, they are timestamped with the queue frame. Their timestamp/framestamp will be compared with the passframe value. If it fails, then the event isn't executed. If it succeeds, then the event is executed. This means no more lua for subactions. Actions don't execute with an animation, so they're fine. People can still make their own custom movesets, but the programming might become inconsistent for you guys. I'd have to make a small tool similar to PSA. This might be overkill, especially for a single feature. In the long run, I feel this is necessary. If I ever move to a 3D brawler like smash bros, then pass framing might become really important for unique moves or transitions. In smash bros brawl, if you do land on the ground while doing an air attack, then the subaction passframes to another subaction. This is so there isn't an abrupt change from the aerial attack to standing idle when you land. If I try to do the above in 3D, then I'd probably try to split animations and subactions based on body part. The legs would run the walk subaction and animation while the upper body runs the shooting subaction and animation. That would be overkill in a 2D game - and in a 3D smashbros-like game where fighting happens on a 2d plane.... This is all just brainstorming and I like this idea so far. What do you guys think?

*strike-outs* hmmm. Atm, events are "direct". When they're called, they directly affect the game and or character. If I decide to wrap every event into a "Queue item", then it might work fine as is - no need for a tool. Events will be wrapped at a lower level, so you guys won't have to worry about it. Loops and conditions would all work the same in lua. However, the way variables are used might have to change or be explicitly wrapped into a queue item somehow. If anyone makes new events, they'd have to manually wrap them. This feels like an improved idea since there's no need to make a custom tool and you can still use lua which keeps coding actions and subactions constistent. Thoughts?
Animations - MFGG TKO (scrapped) - tFR
[Image: QUmE6.gif]
"It feels that time is better spent on original creations" - Konjak
Focus on the performance, the idea, not the technical bits or details - Milt Kahl
Thanked by: Kami


Messages In This Thread
MFGG TKO DevLog - TSG Left - by TheShyGuy - 01-10-2014, 07:10 PM
RE: Mfgg TKO DevLog - by Neweegee - 01-10-2014, 09:09 PM
RE: Mfgg TKO DevLog - by TheShyGuy - 01-10-2014, 10:10 PM
RE: Mfgg TKO DevLog - by Dazz - 01-11-2014, 10:43 AM
RE: Mfgg TKO DevLog - by TheShyGuy - 01-11-2014, 06:27 PM
RE: Mfgg TKO DevLog - by Kosheh - 01-11-2014, 12:20 PM
RE: Mfgg TKO DevLog - by Phaze - 01-12-2014, 02:33 AM
RE: Mfgg TKO DevLog - by TheShyGuy - 01-13-2014, 01:02 AM
RE: Mfgg TKO DevLog - by TheShyGuy - 01-15-2014, 03:01 AM
RE: MFGG TKO DevLog - by TheShyGuy - 01-17-2014, 01:52 AM
RE: MFGG TKO DevLog - by Mit - 01-20-2014, 11:23 PM
RE: MFGG TKO DevLog - by TheShyGuy - 01-24-2014, 08:21 PM
RE: MFGG TKO DevLog - by TheShyGuy - 01-27-2014, 12:34 AM
RE: MFGG TKO DevLog - by TheShyGuy - 02-01-2014, 05:04 PM
RE: MFGG TKO DevLog - by TheShyGuy - 02-17-2014, 05:47 PM
RE: MFGG TKO DevLog - by MC Jimmy - 02-17-2014, 07:50 PM
RE: MFGG TKO DevLog - by TheShyGuy - 02-18-2014, 05:20 PM
RE: MFGG TKO DevLog - by Mit - 02-19-2014, 08:10 PM
RE: MFGG TKO DevLog - by Mit - 03-06-2014, 03:43 PM
RE: MFGG TKO DevLog - by TheShyGuy - 03-23-2014, 06:01 PM
RE: MFGG TKO DevLog - by TheShyGuy - 04-12-2014, 02:52 PM
RE: MFGG TKO DevLog - by TheShyGuy - 04-17-2014, 03:01 PM
RE: MFGG TKO DevLog - TSG Left - by TheShyGuy - 05-03-2014, 03:00 PM
RE: MFGG TKO DevLog - TSG Left - by Kelvin - 05-06-2014, 08:40 PM
RE: MFGG TKO DevLog - TSG Left - by TheShyGuy - 05-06-2014, 09:10 PM
RE: MFGG TKO DevLog - TSG Left - by Kelvin - 05-06-2014, 09:51 PM
RE: MFGG TKO DevLog - TSG Left - by TheShyGuy - 05-06-2014, 09:56 PM
RE: MFGG TKO DevLog - TSG Left - by Kelvin - 05-07-2014, 11:31 AM

Forum Jump: