webreg
Apprentice
Hello there people. After playing Injustice for some time and insulting people on the forum here I thought it would be time to do something productive again. Under_The_Mayo did an amazing video on interactables that made me feel unproductive in comparison. Since I'm not really a good player nor a good fighting game theory crafter I have to apply my talents to technical issues concerning software, programming and similar boring stuff. So let's put my various degrees to some use for once and let's analyze something from the last patch:
This new feature sounds like a good thing does it not? A new feature that helps some players and doesn't affect others. However, computers don't understand the concept of "at the same time". There is always a sequence, timing or at least a priority involved when it comes to processing data. I assume that this change can impact players negatively. I think that pressing 1 and 2 in very fast succession can lead to either unwanted interactable use or swallowing inputs that would otherwise not happen. But is this really true? Let's find out.
Methodology
I'm using a Unix powered notebook with a special belkin bluetooth device. I hack the bluetooth dongle and give it the identifier of my PS3 sixaxis pad. Now my PS3 accepts command from my notebook. On the notebook I'm running software that is able to emulate key presses, execute macros and do other nifty stuff. All this has one simple goal. Eliminate human error and control every key press down to a single millisecond. I'm using macro scripts to empirically determine the properties and frame rates of inputs. This is done with a simple triage procedure where I start at some randomly determined value and then narrow it down to the real value. This is done two times to ensure validity. I was using CatWoman versus DeathStroke in practice mode in the Atlantis stage. This allows for fast testing because reseting the practice mode with "select" starts you out in front of an infinitely reusable interactible. As a control stage I used Arkham Asylum. I'm currently assuming that the results would be the same for other characters and different stages. I will need to verify this later. If you want to see how it works you can take a look at this video I did on the MK9 input bug a while back here:
Data
Injustice operates on a 30 frame input speed. The buttons you press are checked and processed every 33.3 ms. Negative edge has no impact whatsoever. I redid all tests with the option turned off and I did some additional verifications. Release check seems to only play a role in special moves and not normals but this is a topic for another time. I have used and verified my data with the following strings:
Button releases don't matter at all for normals. Only "button down" command are compared against possible combinations. This is also true for the 2in1 interactable input. As previously mentioned inputs are parsed every frame which means every 33.3 milliseconds. The way sequential inputs are parsed is very simple. A button press is considered to have happened after another button press if each of them are inside their own input frame. If both buttons have been pressed inside the same frame then it is considered to be a genuine simultaneous button press. Here is an illustration that summarizes my findings:
Each press of the green buttons is considered to have happened in sequence and will execute the CatWoman combo. Be advised that this illustration shows the minimum time needed or rather the fastest possible speed to do this combo. There can be multiple empty frames between the inputs. If you do it faster though then you get the blue example which results in the 2in1 input and the interactable being used.
There is a big, huge difference whether you are doing the string inside a combo within range of an opponent or not. The first example shows that doing 2in1 outside of a combo is difficult to do. You have to be fast enough and lucky enough to press both buttons within 1 frame. You will not be able to do this reliably. It is also important to understand that if there is no interactable nearby then the "2" is swallowed by the engine. The combo won't happen. So if you do the blue example without any interactable nearby then you will only get "1". You were too fast for the game.
If there is an opponent in range then the whole thing changes dramatically. If you press the "2" in "1,1,2" within 99.9 ms or three frames then you will get a guaranteed interactable. If you press it within 99.9 ms and 133.3 ms then there is a chance you get the interactable. Your normal combo is only guaranteed if you delay for at least 133.3 ms. You essentially have to delay your input for at least 4 frames to avoid the usage of the interactable during a combo.
HypothesisA player can now perform a 2in1 combo into background bounces and interactables using Light+Medium buttons on arcade sticks. This makes the game fully playable on 5 button arcade sticks.
This new feature sounds like a good thing does it not? A new feature that helps some players and doesn't affect others. However, computers don't understand the concept of "at the same time". There is always a sequence, timing or at least a priority involved when it comes to processing data. I assume that this change can impact players negatively. I think that pressing 1 and 2 in very fast succession can lead to either unwanted interactable use or swallowing inputs that would otherwise not happen. But is this really true? Let's find out.
Methodology
I'm using a Unix powered notebook with a special belkin bluetooth device. I hack the bluetooth dongle and give it the identifier of my PS3 sixaxis pad. Now my PS3 accepts command from my notebook. On the notebook I'm running software that is able to emulate key presses, execute macros and do other nifty stuff. All this has one simple goal. Eliminate human error and control every key press down to a single millisecond. I'm using macro scripts to empirically determine the properties and frame rates of inputs. This is done with a simple triage procedure where I start at some randomly determined value and then narrow it down to the real value. This is done two times to ensure validity. I was using CatWoman versus DeathStroke in practice mode in the Atlantis stage. This allows for fast testing because reseting the practice mode with "select" starts you out in front of an infinitely reusable interactible. As a control stage I used Arkham Asylum. I'm currently assuming that the results would be the same for other characters and different stages. I will need to verify this later. If you want to see how it works you can take a look at this video I did on the MK9 input bug a while back here:
Data
Injustice operates on a 30 frame input speed. The buttons you press are checked and processed every 33.3 ms. Negative edge has no impact whatsoever. I redid all tests with the option turned off and I did some additional verifications. Release check seems to only play a role in special moves and not normals but this is a topic for another time. I have used and verified my data with the following strings:
- 1,1,2
- f1,1,2
- 3,3,1+2
- j1,1,1,2
- 2,1 (not a combo for CW so this is a control test)
Button releases don't matter at all for normals. Only "button down" command are compared against possible combinations. This is also true for the 2in1 interactable input. As previously mentioned inputs are parsed every frame which means every 33.3 milliseconds. The way sequential inputs are parsed is very simple. A button press is considered to have happened after another button press if each of them are inside their own input frame. If both buttons have been pressed inside the same frame then it is considered to be a genuine simultaneous button press. Here is an illustration that summarizes my findings:
Each press of the green buttons is considered to have happened in sequence and will execute the CatWoman combo. Be advised that this illustration shows the minimum time needed or rather the fastest possible speed to do this combo. There can be multiple empty frames between the inputs. If you do it faster though then you get the blue example which results in the 2in1 input and the interactable being used.
There is a big, huge difference whether you are doing the string inside a combo within range of an opponent or not. The first example shows that doing 2in1 outside of a combo is difficult to do. You have to be fast enough and lucky enough to press both buttons within 1 frame. You will not be able to do this reliably. It is also important to understand that if there is no interactable nearby then the "2" is swallowed by the engine. The combo won't happen. So if you do the blue example without any interactable nearby then you will only get "1". You were too fast for the game.
If there is an opponent in range then the whole thing changes dramatically. If you press the "2" in "1,1,2" within 99.9 ms or three frames then you will get a guaranteed interactable. If you press it within 99.9 ms and 133.3 ms then there is a chance you get the interactable. Your normal combo is only guaranteed if you delay for at least 133.3 ms. You essentially have to delay your input for at least 4 frames to avoid the usage of the interactable during a combo.