Double Tap Engine Update – April 9th, 2016

Double Tap Engine Update – April 9th, 2016


New build up with some pretty big performance improvements, the game is running better than ever! It’s almost to the point where I want it feeling in regards to input feel and timing, which gets better every time I make substantial performance optimizations.


  • Dash Changes
    • Both dashes now blend out of their animation. Didn’t look good when the blend calculation wasn’t right but now it looks pretty smooth.
    • Dash Forward
      • Frames reduced from 18 -> 16.
    • Dash Backward
      • Frames reduced from 20 -> 16.
      • Distance reduced from 4.5 -> 4 units.
  • Attack Changes
    • st.HK
      • Last st.HK disabled.
      • Enabled previous st.HK.
      • Can now be forward dash cancelled when hitting an airborne opponent.
      • Now causes a reset when hitting an airborne opponent.
    • cr.HK
      • Forward move distance reduced.
    • All uppercut specials are now invincible on the first frame.
    • Active frames on most moves reduced by 1-2 frames, overall frames and cancel windows remain the same except for the end of active frame cancels. (Chains are unaffected).
    • The cancel window for DTC and special cancels has been greatly reduced. Can no longer cancel the first state of recovery frames (the follow through) or the rest of the active frames.
      • Max Freeze Frames for hit cancels reduced from 20 -> 16 frames. If a move freezes for 20 frames, you still only have 16 frames to cancel, last 4 frames cannot.
      • Input Leniency frames for all hits reduced from 12 -> 4 frames. This is the amount of frames you input a cancel BEFORE the freeze happens. So if a move freezes for 10 frames, your window for cancelling [4 frames before the hit happens, 10 frames after this hit happens].
  • Air Animation Changes
    • Air Knockdown animation now blends smoother.
    • Ground Launch animation now blends smoother.
    • Air Reset air movement fixed, now doesn’t look as wonky and is actually correct.
  • Effect Changes
    • Refactored how I define my game effects. Things like fireballs, dust, collisions.
      • More control, easier to use, should be faster.
    • Hit Effects size scaled down, sped up.
  • Double Tap Changes
    • Grounded DTC
      • Startup frames until you can dash increased from 4 -> 6 frames.
      • Input leniency when checking for dash input increased from 15 -> 30 frames. This is the amount of frames check back to see if a dash was input, should be much easier to get dash cancels from DTC now.
    • Airborne DTC
      • Upward velocity increased from 0.35 -> 0.4 units. Goes up a little higher and makes grounded combos a bit harder to land.
  • Camera Changes
    • Adjusted values for all three cameras, mostly height changes.
    • Camera 3 is now the default camera. This is the more 3D looking one.
  • Push Back Changes
    • Push back velocity scale increased from 3 -> 4. Opponents are pushed back quicker than before, distance is unchanged.
  • Hit Freeze Changes
    • Hit freeze range has been increased to [8,18]
    • Parry freeze range has been normalized to [20,20]. All parried hits will freeze for 20 frames.
    • Can no longer change Hit Freeze settings in game, still need to remove from the options UI.
    • Added global hit freeze ratios based on attack strength. This allows me to define ratios for each attack strength and let moves reference these. Moves can still define their own custom value if they want.
      • Light = 0, 8 frames.
      • Medium = 0.35, 11 frames.
      • Heavy = 0.6, 14 frames.
      • Special = 1, 18 frames.
      • I will probably extend this to the character level so that I can have characters with different hit freeze values but still have it easily editable.
  • Stage Changes
    • The lighting on some of the stages has been adjusted.
  • Misc
    • Slightly reduced height of crouching hurt box.
    • Various animation tweaks for most attacks. I do this everytime I make performance gains because you get better visual insight as it gets better.
  • Performance improvements
    • Did a lot of profiling and optimizing.
      • Reduced GC allocations as much as possible. There’s still a few spots to clean up but overall it’s much better than before. There is still a stutter that happens but now it is much less frequent, hopefully will be gone completely when done optimizing.
      • Refactored my move logic a bit, made it cleaner and easier to use when I start working on replay / gamestates / rollback functionality.


Thanks for checking it out, feedback always welcome!


Double Tap Engine Update – March 25th, 2016


Got a pretty big update here, game is running real smooth now! Biggest change in this is that I’ve switched my third party controller functionality from InControl to Rewired, it works way better and performs better, input should feel slightly more responsive. Also made some improvements to how my collision boxes and moves are spawned and used, got some pretty good performance increases from that. Besides that I’ve made quite a few gameplay changes that I’ll outline in the changelog. Check it out!



  • Input System
    • Switched input system over from InControl to Rewired
      • Much easier to set up.
      • Much better support for different controllers.
      • Better performance, more responsive controls.
      • Removed remapping UI for now, will bring it back eventually. Right now all controllers should map correctly.
  • Collision Boxes and Move spawning refactor
    • Refactored how collision box and move objects are spawned and used in code.
    • Should be a slight performance boost.
  • Double Tap Cancel Changes
    • Can no longer DTC any blocked moves. This used to only apply to special moves but now it applies to normals as well.
    • Can no longer DTC fireballs.
    • Increased the window for checking for dash input during grounded DTC.
  • Dash Changes
    • Forward dash frames increased from 15 to 18.
    • Forward dash total movement increased from 6.5 units to 7 units.
  • Juggle Changes
    • All standard launches acceleration decreased from -0.55 to -0.45. Upward velocity altered to stay in the air for the same amount of frames.
    • Light standard reset pushes back less.
    • Medium standard juggle height reduced.
  • Camera Changes
    • Added two more camera data sets
      • “Camera 3” is a more 3D camera.
      • “Camera 2 – Small” is a more dynamic camera based on Camera 2.
      • Default is Camera 2.
      • Removed “Hit Zoom” data from Camera Data, no longer tied to camera settings. Now lives in Hit Freeze Data.
  • Gameplay Positioning Changes
    • Max bounds of the stage have been decreased from [-38,38] to [-25, 25] (76 -> 50 size).
    • Max distance between players increased from 24 to 30.
    • Player start distance decreased from 12 to 10.
  • Push Back Changes
    • Push back speed factor increased from 4.5 to 5.
  • Hit Freeze Changes
    • Added a new “Hit Freeze 3” data, range is [8, 18].
    • Default is still “Hit Freeze 2” [8, 14].
  • Damage Scaling Changes
    • Global damage scale value increased from 1.25 (125%) to 1.5 (150%).
  • Jump Changes
    • Increased pre-jump frames from 4 to 6.
    • Forward jump horizontal velocity decreased from 0.325 to 0.3.
    • Backward jump horizontal velocity decreased from 0.25 to 0.225.
    • Can now kara-cancel pre-jump frames.
  • General Move Changes
    • Lots of animation adjustments
  • Walk Changes
    • Translation delay on forward and backward reduced from 2 to 0.
      • This is the amount of frames to wait until applying movement when starting to walk.
    • Reduced movement speed on forward and backward walks to compensate.
  • Jumping Attack Changes
    • jp.LP
      • Startup reduced from 5 to 3 frames.
      • Active reduced from 12 to 10 frames.
      • Collision boxes altered
    • jp.LK
      • Startup reduced from 5 to 3 frames.
      • Active reduced from 8 to 6 frames.
    • jp.MP
      • Startup reduced from 6 to 4 frames.
      • Active reduced from 4 to 2 frames.
    • jp.MK
      • Startup reduced from 6 to 4 frames.
      • Active reduced from 6 to 4 frames.
    • jp.HP
      • Startup reduced from 9 to 8 frames.
      • Active reduced to 2 frames.
    • jp.HK
      • Startup increased from 9 to 12 frames.
      • Active increased to 8 frames.
    • jp.df.MK (divekick)
      • Horizontal velocity reduced
      • Collision box altered
  • Standing Attack Changes
    • Can now Kara-cancel all normals
    • st.MK
      • Moves forward by 0.5 units on the first frame, overall distance unchanged.
      • Recovery slightly increased.
    • st.fw.MP
      • Recovery slightly increased.
    • st.HP
      • Recovery slightly increased.
      • Can now forward dash cancel when hitting an airborne opponent.
    • st.fw.HP
      • Recovery slightly increased.
    • cr.HP
      • Recovery slightly increased.
      • Can now jump cancel the later active frames when hitting an airborne opponent.
    • cr.HK
      • Recovery slightly increased.
    • st.HK
      • Recovery slightly increased.
  • Special Move Changes
    • Grounded Fireballs
      • Recovery slightly decreased.
      • Fireballs no longer juggle.
    • Uppercuts
      • Recovery slightly increased.
      • Stun on block increased. (Any punishes should now happen after they’ve landed back on the ground, no early airborne accidental punishes)
    • Tatsus
      • MK and HK tatsu trajectory and juggles adjusted.
  • Throw Changes
    • Normal throw range increased from 2.7 to 3.5.
    • Animation adjustments.


Double Tap Engine Update – March 20th, 2016

Just a small update with a few fixes.


  • Fixed a bug with jump frames cancelling too early, was happening on frame 1 instead of frame 3.
  • Increased jump frames from 3 to 4
  • Re-enabled short hops
  • Moved collision detection code to the beginning of the frame instead of the end (after characters updated). This delays the hit effects by a frame, but syncs up the animation correctly now. Feels more solid.
  • Some animation tweaks.


Double Tap Engine Update – March 17th, 2016

Double Tap Engine Update – March 17th, 2016


New update out! Been quite a while since I’ve posted one (almost 2 months), SFV came out and that ended up using up a lot of my time for a few weeks :).  There’s not a whole lot changed in this build, mostly some performance improvements, animation improvements, move property tweaks, some physics changes, and some more data functionality added and modified. I’m really happy with how it’s playing right now, but there’s still the same work I need to do to get offline 1v1 fully functional, which is what I’m gonna focus on next.



  • Jump changes
    • Reduced pre jump frames from 5 to 3
    • Disabled short jumps
    • Reduced normal jump height
    • Adjusted distances of forward and backward jumps
      • Backward jump no longer goes as far as forward jump (jump back then forward and you will be farther ahead than where you started)
    • Made pre jump frames special cancellable (like SF4 and SFV)
    • Fixed an issue with instant air moves coming out a frame later than they were supposed to.
  • Camera changes
    • Current default is “3D-2”
    • All cameras adjusted
  • Collision Boxes
    • Refactored how I store and access character collision boxes (hurt, movement, grab). Much easier now and less chance for error.
    • Added support for having lower and upper body hurt boxes rather than one large one. Nothing uses this yet except has no upper body.
    • Improved performance when transitioning between moves and creating new collision boxes.
  • Animation Blending
    • Improved my animation blending calculation. I like to store blending as a single value (number of seconds to blend) on a per move basis. Unity has a function that blends between animations but the value you pass into it has to be calculated in regards to how fast the current animation is compared to the new one.
    • There should no longer be any inconsistencies between blending faster or slower animations.
    • This is most easily noticeable by moving between forward, backward, crouching, and standing.
  • Effects
    • Re-added character effects:
      • Dash dust
      • Jump dust
      • Landing dust
  • Armor and Invincibility
    • Added better functionality for defining invincibility and armor for moves.
      • All uppercuts have 8 frames of strike / throw invincibility and 6 frames of projectile invincibility.
      • st.HP, st.fw.HP, and st.HK all have armor during the startup now.
  • General Moves
    • Disabled a lot of special moves, move-set is now pretty much a generic shoto (fireball, tatsu, uppercut).
    • Bunch of move animation / movement changes.
    • Lots of physics changes to how moves juggle.
    • There is now an airborne lk.Tatsu.
    • Re-added a divekick, down+forward+MK during a forward jump.
    • st.MK no longer special cancellable.
    • Light attacks now push out farther, can no longer do light -> light -> medium -> special (can still hit st.MK).
  • Paint
    • Disabled the paint mechanics, might bring it back /shrug.
  • Attack Flashes
    • Added some functionality to every collision that makes the character flash their outline.
      • Hit = Orange
      • CH = Red
      • Block = Blue
      • Armor / Parry = Purple


Double Tap Engine Update – January 27, 2016


Double Tap Engine Update – January 27, 2016

New update out for Double Tap Engine, been just over 3 weeks since the last build. There are mostly gameplay changes in this update, haven’t been doing a whole lot of core engine work lately. In general there are changes to how push back is applied in the corner when landing moves that juggle, changes to juggle physics and what moves can juggle, some changes to how the camera behaves with vertical movement and general adjustments, disabled a few normals.


Change List:

  • Corner Push Back for moves that juggle.

I’ve changed the way push back is applied to the attacker when they are juggling someone in the corner. This new way should be a lot more consistent in the corner or near the corner.

Before, whenever a move juggled in the corner (dp, heavies, etc), the amount of push back it applied was based on the push back for when it landed on a grounded opponent, but since this move is landing on an airborne opponent it could have a whole different kind of trajectory not accounted for in the push back value.

So I’ve changed it to be calculated based on that trajectory and tied it to the actual data it uses (shared between different moves). Basically just calculates how far that juggle launch data will throw the defender when it hits based on a supplied Y value (0 for the ground, maybe ~5 for moves that are supposed to hit airborne). I also have a global scale for this value, currently set to 0.65 (65% of value used for corner push back), it’s just a feel thing doesn’t need to be exact just consistent.

What this all does is make it so that moves that share juggle data also share the push back it applies in the corner. So for instance, and now have the same amount of push back in the corner when juggling (since they share data), but have different grounded push back values.

Also made this calculate right when the hit happens to see if any and how much corner push back is applied. So if a move has like 10 units of push back and you land it with 7 units left to the corner, it’s going to apply 3 units of corner push back to the attacker right at the beginning of the juggle. Before it would wait until the defender actually got to the corner and by that time the push back was probably already done.

  • Juggle Changes
    • I’ve changed around how normal moves juggle:
      • Grounded and Airborne Light Attacks = Reset, no juggle
      • Grounded Medium Attacks = Juggle, enough to cancel into a special or chain into heavies
      • Airborne Medium Attacks = Juggle, enough to DTC into another move
      • Grounded Heavy Attacks = Juggle, enough to land a follow up most of the time
      • Airborne Heavy Attacks = Spike to the ground
  • Camera Changes
    • Removed the old “3D” Camera
    • Adjusted “2D” camera and set as default
    • Adjusted “Main” camera and renamed “3D”
    • Added some functionality for smoothing vertical movement the same way I do  it for horizontal movement, not set to as high as horizontal though.
  • Normal Changes
    • Disabled some normals :
      • st.LK (fw.LK -> st.LK)
      • bw.MP
      • fw.MK
      • bw.HP
      • bw.HK
    • Increased the amount of active frames most normal moves have
  • Animation Changes
    • Most moves have had their animation timings adjusted
  • UI Changes
    • Can now navigate up/down from the end of menu lists to wrap around
    • ESC will now navigate backwards
    • UI scaling in fullscreen issue now fixed
    • Fixed training mode input UI when on the right side, also made p1 and p2 UI’s the same

Current Build (01/27/2016):

Check it out! Lemme know what you think!

Double Tap Engine Update – January 3, 2016


Double Tap Engine Update – January 3, 2016

A new year and a new build! Been doing a lot of work on the input system and making sure it’s more consistent with fluctuating framerates, a lot of gameplay work with standardizing certain things (push back, hit cancels, attack movement), and just general gameplay tweaks as always (camera, hit stop, frame data).


Known Issues:

There’s currently an issue with the new Unity version that makes the UI stretch incorrectly when using full screen mode at non-native resolutions, I’d recommend playing in windowed mode for the moment.


Input System

I did quite a bit of work on my input system and how it works with fluctuating framerates, should work the same for <60 fps and >60 fps, especially on keyboard.

During the fix for this I changed the logic around a bit for when in a frame the game checks and handles input, eliminating a frame of delay between button press and the move coming out. That’s a big fix, makes the game feel much more responsive and crisp.

Also fixed an issue where plinking a normal could trigger the DTC on accident (not good!). This small fix also makes the game feel way better.

This also had some affect on performance and being able to see animations better and with more precision, so I adjusted the animation data for all moves with this in mind.

Push Back

I’ve standardized the push back distances for all normals based on their strength.

  • Lights = 2.2 units, full distance on block
  • Mediums = 2.5 units, half distance on block
  • Heavies = 3 units, half distance on block

These values are all just set the same, but I might add functionality for them to reference the same data, so that if I change the value I don’t have to manage all the individual moves, but right now it’s not a problem.

I’ve also changed how push back is applied. Before, the speed was calculated based on the hit stun of the move, so moves with longer hit stun would give slower push back. That’s kinda counter intuitive to hits cause the stronger hits end up making the enemy move slower. Now I’ve added the ability to make it based just on freeze frames (can still use the old way), makes hits look a lot more consistent and impactful in my opinion.

Attack Movement

I’ve adjusted how I’m using the movement curve values for most moves. Before, most moves had a gradual curve applied to how the movement would look for that move. Problems that come with that is you lose a bit of precision on how far you want it to move (5 units could be 5.0012 units when evaluating the curve).

I’ve now switched to using just values for times in the curve with no transition between, it’s easier to ensure the precision with still being able to define when and how fast an attack moves.

Attack Movement Boxes

I’ve removed movement box extensions from all attacks. Some moves would be able to push their movement box out slightly when used to give a bit more push back and impact when used close range. Nothing really wrong with it but I wanted to be more consistent in regards to ranges and push back so I took it out. Now moves will use the same movement collision boxes as their respective state (standing, crouching, airborne)

Hit Cancelling

I’ve increased the window for cancelling normal moves on impact. Before, the window would be during the freeze frames + some frames before the hit happened. Now the player can cancel through the freeze frames, into the remaining active frames, and into the first set of recovery frames (follow through, before chain window). This change makes it easier to get the cancel you want in case your timing is slower, but allows for more variation on what combos since you’re delaying the cancel a bit. From a defensive standpoint it makes it a bit harder to react to normals since there are more options for what comes out of it (think fei rekkas in SFIV). This window does not overlap with chained normals, which happen in the later recovery state.

This window also affects the DTC, so it gives a little bit more leeway on reacting to blocked attacks as the attacker, but less frame advantage.


You can now DTC fireballs again, it’s a bit later than before during the recovery frames.
Can no longer throw multiple fireballs without using DTC.
Light fireball (slow) has been sped up, but no longer disappears.


I’ve consolidated all the camera data into three main ones:

  • Main, the default camera
  • 2D, a farther away camera more like a traditional 2D fighter
  • 3D, a closer camera more like a 3D fighter

They’ve all been tweaked a bit as well, in general vertical and horizontal movement is a bit faster now.

Also added some sweet screen shake when knockdowns happen, it’s subtle but it adds quite a bit.

Hit Stop

I’ve consolidated all the hit stop data as well into two main ones:

  • Main, the default hit stop data [7,12]
  • Alternative, a larger range hit stop data [6,14]

Frame Advantage for Heavy Normals

I’ve adjusted the frame advantage for most heavy normals to not get much more than a jab link off non-counter hit.

Damage Scaling

The damage scaling dropoff has heavily increased. Max damage off single combos is sitting around the 25%-35% range.

Current scaling looks like this:
[1, 1, 0.9, 0.75, 0.5, 0.4, 0.3, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.05]

Kinda trying to discourage combos longer than 5-6 hits without adding some other type of system (juggle limit, hit limit, etc)

Also removed the scaling penalty for using the same move multiple times in a combo. Example, for a combo like -> ->, the scaling would look like this:

100%, 75%, 30% for each hit respectively, now it’s just the standard 100%, 100%, 90%.

DTC still causes 1 increment of scaling.

Paint Changes

The paint trail functionality now affects meter gain rather than move damage.

Also reduced size of paint trails.



Thanks for checking it out! Feedback always wanted and appreciated!


Double Tap Engine Update – December 1, 2015


Double Tap Engine Update – December 1, 2015

New update up with quite a bit of changes. Most of it is gameplay related and has had a pretty big impact on the pacing of the normal game. Also some UX fixes, added sound options, some camera tweaks.



  • “Paint Trail” System

I’ve implemented an initial stab at a “Paint Trail” gameplay mechanic. It’s main purpose is to make moves that are not used frequently to have a bit more umph visually and in a way that can tie into the design of the game.

How it works:

Each round the game keeps track of when the last time each character’s normal moves are landed, and each time that move is used it can produce a paint based on when it was landed.

Currently, if a move is used:

  • If it’s been used between 0 and 10 seconds previously, no paint trail will show.
  • If it’s been used between 10 and 20 seconds previous, paint trail will show, how long it stays out is based on the actual time between those two values. 10 = less, 20 = more, above 20 clamps to 20.

These values are tweakable and will probably be changed quite a bit until I find a good spot.

How it affects gameplay:

Right now it basically works by scaling the damage on the normal based on the above ratio.

  • 0 seconds since landing = 25% damage
  • 20+ seconds since landing = 100% damage
  • [0,20] seconds since landing = value between 25% and 100%

Currently have the damage % tweakable and will probably also change to find a good balance.

Special moves are always treated as 100% (not affected by paint trail)

I might change this to affect meter gain at some point, maybe both, we’ll see how it plays.

There’s still a lot I can do to make it look better but this should give a bit of a feel for how it would work.

  • Changes to chained moves

I’ve made some big changes to how chained moves work in the game. Before you would be able to cancel during a move’s first set of recovery frames (the “follow-through”). I’ve now changed it to the later set of recovery frames (the “pull-back”). This makes it quite a bit slower, frame advantage is not as drastic, and not all chains combo. This should make it a lot easier to parry on block as well.

Because of this, I’ve made some other changes to what moves chain or not:

  • Light attacks no longer chain into Heavy attacks
  • Not all Light attacks chain into other Light attacks
  • All Light attacks can chain into all Medium attacks
  • All Medium attacks can chain into all Heavy attacks
  • All special cancellable moves can now be cancelled when chained into

Some moves have also had their frame data changed a bit because of this. For instance, cr.LK does not combo into any mediums (unless CH). Most of the old links still work.

The input window for pressing a chained move has also been increased quite a bit, it’s now 20 frames.

Overall there’s a lot more options now for combo and pressure customization, which leads to more mixup potential and a lot more variability on what situations happen.


  • Added Paint Trail mechanic
    • Affects damage and visual trail of normal attacks based on when they were last landed
    • 0 seconds (as quick as possible) since last landed = 25% damage
    • 20 seconds (max length) or more since last landed = 100% damage
    • Parried moves count as landed
  • Changed how chained moves work
    • Light attacks now only chain into some Light attacks and all Medium attacks
    • Medium attacks now chain into all Heavy attacks
    • All special cancellable moves can now be cancelled when chained into.
  • Adjusted damage scaling values, scales less than before
  • Adjusted default “Dynamic Far” camera values, less depth (forward -> backward) movement, slower vertical movement
  • Adjusted all Tatsus
    • LK: Goes farther forward, moves earlier
    • MK: Goes higher for first hit, farther for second hit, moves earlier
    • HK: Goes farther forward, moves earlier, both hits will now launch a grounded opponent.
    • Reduced meter gain for all
  • Adjusted all Uppercuts
    • All uppercuts launch values have been changed, launch a bit higher and the opponent falls a bit slower
  • Removed ability to grab out of the Double Tap Cancel. It was pretty cheap being able to DTC a normal on block right into a throw.
  • Removed all Neutral Jumping normals, now all air normals are the same for backward / forward / neutral.
  • Adjusted hitstun on Double Palm (QCB.LP), can no longer link after on hit unless counter hit.
  • Adjusted launch settings for AA st.HP, now hits higher
  • Adjusted launch settings for AA, now hits higher
  • Air DTC now reduces horizontal velocity by 50%
  • Adjusted normal jump height and gravity
    • goes up a bit higher but comes down faster, more gravity
  • Adjusted short jump height and gravity
    • goes up a bit higher but comes down faster, more gravity
  • St.Fw.MK can no longer combo after cancelling into forward dash on normal hit, counter hit can.
  • Various UX fixes and improvements
    • Can now go to character select from in game
    • Input config menu more functional
    • Can now access input config menu from the character select screen
  • Added sound options in the game options menu
  • Adjusted the Stage Light (front character light) to no longer cast shadows. Now each level has one main shadow caster (sun/moon) rather than two
  • Removed old (launcher)
  • Adjusted input of to be
    • There is not currently a now
  • Adjusted the amount of motion blur, less overbearing now.
  • Later active frames of cr.HP no longer launch grounded opponents, pretty good frame advantage on hit


Double Tap Engine Update – November 13, 2015

Double Tap Engine Update – November 13, 2015

Got a small build up, not much has changed functionally but I added support for using Animation Curves to drive grounded horizontal character movement.

Basically what it means is now I can define a curve that has how much an attack moves during the move state. Before I’d define a move distance for the whole state, and each frame would move at frames / distance (constant). I did this so that I could keep animations tied to the center of the character and not have any horizontal movement from the animation affect the gameplay, but the drawbacks were that I was using constant movement for the entire animation. To get around this I would split states up into multiple states (startup for an attack could have  a state for bringing the fist back, and another state for throwing the fist).

The way it works now is I can tailor the beginning of animations to not have any movement, and all the movement come from the later frames in the state. This allows for more control over how the move looks and it had a much bigger affect than I thought it would, gives the attacks much more snap to them.

The grounded fireballs are the easiest to see the difference.


  • Added functionality for defining character movement for attacks based on animation curves. Gives more control over how characters move based on their animations.
  • Adjusted movement for all ground attacks to use the animation curves.
  • Increased recovery of all grounded fireballs, increased block and hit stun to compensate.




Double Tap Engine Update – November 12, 2015

Double Tap Engine Update – November 12, 2015

New build up with a number of substantial changes, game is running much better than before, menus are standardized, lots of UX improvements, a few gameplay changes.


  • All menu dialogs have been updated and standardized. They look a lot better now, are more functional, perform better, and a lot easier to maintain and edit.
  • Rearranged the order of when collisions and move logic occur. Used to be collision check -> update logic, now it’s update logic -> collision check. Collisions happen a frame sooner now than before (feels much better).
  • Improved functionality for cancelling moves on the first available frame. Now when going into any new move, it will check if the player is trying to cancel on the first frame and go immediately into that, this removes a one frame gap.
    • Example: landing and attacking
      • Old way: falling -> land -> stand idle ( 1 frame ) -> cancel into attack
      • New way: falling -> land -> try stand idle, find attack instantly
  • Removed most particle effects other than hand/foot fire and hit sparks. I was having some performance issues with the particle systems and I’m going to have to re-write the effect system to support rollback anyway so I just took them out.
  • Adjusted camera values a bit, default is currently “Dynamic Far”
  • Added some new low chains:
    • cr.LK -> cr.MK (cancellable) or cr.LK -> cr.HK (not cancellable)
    • cr.MK -> cr.HK (not cancellable)
  • Removed cancellability from light -> heavy chains, now only light -> medium chains are cancellable.
  • St.fw.HP now juggles on air hit, startup decreased.
  • St.fw.HK now juggles on air hit, startup decreased.
  • St.HP now juggles on air hit, startup decreased.
  • now juggles on air hit, startup decreased.
  • QCF.HK Corkscrew startup decreased.
  • Forward and Backward jumps horizontal velocity changed from +- 0.3 to +- 0.31.
  • Hit stun on ground fireballs and air fireballs decreased.
  • Added Depth of Field camera effect back in.
  • Changed the Freeze Animate ratio back from freeze frames (variable based on how many freeze frames) to a global value, set at 1 (character will not animate until the full freeze frames are finished)
  • Reduced push back scale from 5.0 to 4.0 (characters are pushed back slower than before, distance is the same)
  • Various other move tweaks that I can’t remember