::[[User:Oldmanwang|Oldmanwang]]: Ahh, now I see the problem to be solved. Still not sold on the current design, will look into making a better one.
::[[User:Oldmanwang|Oldmanwang]]: Ahh, now I see the problem to be solved. Still not sold on the current design, will look into making a better one.
::: Moved your design to [[Template:MoveData/testcases]]. See [[Template_talk:MoveData/testcases]] for discussion. [[User:RogerDodger|RogerDodger]] ([[User talk:RogerDodger|talk]]) 15:32, 1 February 2021 (UTC)
:::[[User:Oldmanwang|Oldmanwang]] 10:44,1 Feb 2021 (UTC): New design:
=== ===
{{MoveDataHeader2}}
{{MoveData2
|moveNo=2
|id=Lee-R.d/f+3+4
|name=Rage Drive
|input=R.d/f+3+4
|target=m
|damage=25
|range=3.01
|tracksLeft=8
|tracksRight=15
|startup=i16~17
|recv=r38
|block=-1
|hit=[[Lee combos#Staples|+55 (+35)]]
|notes={{Plainlist|
* Hit vs BT +10a (+1a)
* Bullet time 20f on hit
* Bullet time 10f on block
* Transition to r39 MS with f~n
* Transition input can be delayed 11f}}
}}
{{MoveData2
|id=Lee-1
|name=Jab
|input=1
|target=h
|damage=7
|range=2.03
|tracksLeft=5
|tracksRight=7
|startup=i10
|recv=r17
|block=+1
|hit=+8
|notes={{Plainlist|
* Recovery is ''very'' slightly off-axis to the right, changing the tracking of follow up moves}}
}}
{{MoveData2
|moveNo=9
|id=Lee-2,1,1
|name=Combination Drei
|inputLead=2,1
|input=,1
|startupRoot=i10
|startup=,i20~21
|targetLead=h,h
|target=,m
|damageLead=10,8
|damage=,18
|recv=r30 FC
|range=4.36
|block=-12
|hit=+3
|ch=[[Lee combos#Staples|+26a]]
|stageBreak=Floor break
|notes={{Plainlist|
* Input can be delayed 4f
* Combo from 2nd CH}}
}}
{{MoveData2
|moveNo=33
|id=Lee-f+3,3,3,3,3,4
|name=Acid Storm
|inputLead=f+3,3,3,3,3
|input=,4
|targetLead=m,m,h,h,h
|target=,h
|damageLead=6,3,3,3,3
|damage=,20
|startupRoot=i15
|startup=,i20~21
|recv=r32
|block=-7
|hit=+20a
|screw=Screw
|notes={{Plainlist|
* Combo from 5th hit [[Lee combos#Staples|+61a (+44a)]]
* Move can be delayed 17f
* Input can be delayed 16f
* Transition to r35 HMS with 3
* Transition input can be delayed 26f
* Alternate input
** f+3,3,4
** f+3,3,3,4
** f+3,3,3,3,4}}
}}
{{MoveData2
|input= }}
:::Line above frame data; line across from input and line next to notes are carry-overs from MoveData being on the same page, which I haven't put on MoveData2. Not supposed to have spaces after inputLeads, move boxes are meant to have gaps between them, see [[Template:MoveData2#Example|here]] for intended look.
:::I wanted to make it so each parameter fell in the same place, regardless of what was and wasn't defined, so that the user always knows where to look. The parameters I've put in the column before the frame data are just what I figured were the most common to be added to notes, let me know if you think they could be used better. The two main columns I named 'frames' and 'whiff', I figure the frames info is more useful at close range and the whiff is more useful at a distance.
:::Issues I'm aware of but not sure of how to fix:
:::* startupRoot's push parameters down, obscuring which is which. I don't see the value in having the startupRoot displayed personally, when there are several other indicators of where the move stems from.
:::* Moves with large inputs (i.e. 10hit combos) go off screen on phones.
:::* " | " after target and before damage, shows even when those parameters aren't described. This is mainly an aesthetic issue for moves like stances.
:::Ideas I'd like to implement that I think require altering Javascript:
:::* Display Notes toggle: (show/hide) and (all/all) buttons on the far right column of the first row which toggle display of notes for particular moves or toggle display for all moves.
:::* A stance button shortcut: a script that can recognise when something has been put into the move name parameter between brackets i.e. Hitman (HMS), so that anytime HMS is written inside an input-ctn parameter, it would become a link that scrolls to the point of the page where that stance is first described in brackets as a move name. This could also help with follow up moves and chain throws for finding move roots. Could even have it so that the brackets abbreviation was hidden for a cleaner design.
:::Whaddya think?
Revision as of 15:32, 1 February 2021
Why isn't this just a normal table?
A lot of people's reaction to—
NameThe name of the move in the English localization.Most often directly from the in-game movelist, but can also be a community name.
AltOther inputs that also perform this move, written in notation.
InputThe input to perform the move, written in notation. This is often used as the move's name.For strings, the input of the previous moves in the string is shown but washed out.
Hit levelThe hit level of the move.Capital letters mean it hits grounded.For strings, the hit level of the previous moves in the string is shown but washed out.
DamageHow much damage the move does without any modifiers.For strings, the damage of the previous moves in the string is shown but washed out.
RangeThe maximum range recorded of the move hitting Lars on-axis. (For Tekken 7, it's vs Heihachi.) Assume an error of about ±0.03.For strings, this is the range of the whole string.This measurement shouldn't on its own be used to compare characters: larger characters get more "range" by this measure, but their opponents do too.
Left TrackingThe tracking score to the attacker's left.Roughly speaking, when up close, if the defender sidesteps or sidewalks right for no more than this many frames, the move still connects.
Right TrackingThe tracking score to the attacker's right.Roughly speaking, when up close, if the defender sidesteps or sidewalks left for no more than this many frames, the move still connects.
BlockThe frame advantage on block.Blank if the move can't be blocked (e.g., an unblockable or an aerial attack).For breakable throws, this is the frame advantage when the throw is broken.
HitThe frame advantage on hit.Blank if the move is not an attack, e.g. is a stance transition only.For throws, this is the frame advantage after the throw.
CHThe frame advantage on counter hit.Blank if this is the same as on normal hit, i.e. there is no special behavior on counter hit.
StartupThe active frames of the attack. The "i" stands for "impact", i.e. impact frame.If there is more than one hit, a comma indicates that frame 1 is now the frame after the last active frame of the previous hit.For strings, therefore, this usually has a leading comma.
RecoveryThe total number of frames, the recovery frames, and what stance the move recovers in, if any.The "t" stands for total and "r" for recovery. If no stance is listed, the move recovers in the default, standing position.For strings, the total frame count is from the start of the string with no delays.
NotesAnything that doesn't fit elsewhere.Many common move properties, such as whether a string can be delayed, go here.See Movelist#Notes for standard wording of common properties.
—is that this is a big mess, and why isn't this just a good ol' fashioned table? So to start with, here's what this data would look like as an ordinary table:
Input
Name
Hit level
Damage
Range
Startup
Crush
Recovery
Block
Hit
CH
Left Tracking
Right Tracking
Notes
1
Jab
h
7
2.03
i10
r17
+1
+8
5
7
Recovery is very slightly off-axis to the right, changing the tracking of follow up moves
1,2
h,h
7,9
2.83
,i12
r20
-1
+5
Move can be delayed 4f
Jail from 1st attack
Transition to r21 MS with f~n
Transition input can be delayed 6f
1,2,2
h,h,m
7,9,14
,i20~21
r31
-13
-2
Move can be delayed 5f
Input can be delayed 7f
Combo from 2nd CH with 5f delay
1,2,2,3
Left Right Combo to Revolution Zwei
h,h,m,h
7,9,14,23
,i21~23
r31
-3
+17a (+8a)
Tailspin
Input can be delayed 17f
Move can be delayed 13f
Combo from 3rd hit with 8f delay
Transition to r37 HMS with 4
Transition input can be delayed 29f
Now, personally, I think that alone answers the question. But if not...
If you're viewing this on a monitor, then this might not actually look that bad to you. For the first time using it, it's almost surely easier to scan, because single-row tables are far simpler and you've read plenty of them before.
Of course, the simple table is actually bigger and has tonnes of dead space and even with all that dead space our poor name, input, hit level, and damage fields are wrapping.
The culprit is that pesky notes section.
“Just cut down those notes then! Why don't you just write NCC, NC, S!, KND, HC, SH, RC, OCh etc. like my pappy did back at the TZ farms?” Well, because they just aren't good enough.
You're forcing readers to remember even more notation.
You're forcing everyone to decide on what notation to use for every little thing (this is a huge headache).
How are you describing half of what's there in any kind of meaningful notation?
What happens when someone wants to write something in the notes that you didn't think of some notation for? They just leave it out?
The whole point of the notes is to be a free form field. It needs some space. There's a lot of weird stuff in Tekken, and sometimes you need to use words to describe that stuff. Notation isn't good for handling edge cases.
So our notes are gonna be taking up a decent amount of space anyway.
Once that's accepted, it's just a matter of filling up the remaining space effectively. Instead of the data being all in one row, it can span across multiple rows. We can use various visual cues to create a visual language that when learned, makes it easier to scan the table for what you're looking for:
Input is extremely large and with a line coming out of it, making it the focal point, since this is the main thing you're scanning for
Name is paired with input but is much smaller, since it's more common for people to identify moves by the input
Hit level and damage, being the two other fields that can get very long, are paired together
For strings, we emphasize the input, damage, and hit level that this move actually represents
The fields that are specifically about frames are grouped together and subgrouped by whether it's frame advantage or the attacker's frames
Tracking scores are visualized into a line that gets longer the more tracking there is
And it has the really, really big upside that you can read it all on your phone. The distinct visual presentation for each field lets it be reorganized and still read the same way.
But it does take some getting used to.
Now, this specific design is far from perfect, and anyone capable of improving on it is welcome to try. But its problems are not that it's not just a simple, 1-row table, because that just... doesn't work.
Why all this +17a (+8a) crap?
Most frame data just lists any kind of knockdown as KND, Launch, JGL, CS, or something similar. This is pretty weird to do, because shouldn't the frame data have the, you know, frame data, not visual information? Nobody needs to lookup what kind of knockdown a move does. It's pretty obvious.
On top of that, doing that doesn't tell readers:
Whether the knockdown can be teched or not
How much oki there is
How much time there is to connect with a pickup
What combo can be done
By being specific about the frames, and linking to the combo page when a combo exists, we answer all the relevant questions without having to define 20 different acronyms for every type of knockdown in the game.
The reason people didn't do this before was probably that getting this data was really hard. But you can get it all from the builtin frame data display now, so, you know, maybe we should use it?
14 columns? Just show the startup, block, and hit frames!
—and put the crush frames into notes, and don't bother with tracking scores or range or...
Okay, well that's just giving up. There's tonnes of places out there that already list all this rudimentary frame data. We're aiming for a bit more than that. RogerDodger (talk) 17:39, 22 January 2021 (UTC)
Although
That's a lot of info to expect a person to fill up for every single move, Lei has 174 individual moves, with a lot of them being strings, can you imagine how many entrties that is. That's a full time job to just do it, and then there might be secret balance changes specifically to those +25a (+36a) that you just can't keep track of. And it doesn't seem to be a database, like RBNorway's FrameBot is, just text on a page, unconnected to any other page
It took me about a week to fill in Lee movelist, but most of that time was the notes section (particularly all the delay timings), range, and tracking values. Just getting the frame data takes less than a minute per move. It would take someone more time to decide "is this KND or CS or Launch... do we write DMG if there's guaranteed damage?" for knockdowns (e.g. figure out what you would write for Lee's ws2,3 on hit) than to just copy the frame data straight from the game. In any case, it's not expected that one person fill in everything, nor that they do it all at once. You can leave stuff blank if you don't have time to measure it. And technically speaking it is a database, just not a strongly typed one. (RBNorway's is not strongly typed either.) RogerDodger (talk) 04:54, 24 January 2021 (UTC)
Having signifiers next to each metric removes the need for the reader to familiarize themselves with the formatting.
Having each metric lined up also improves readability.
Would be perfect if it were possible to change the background color for the next 2 rows, every 3 rows to a lighter shade of black/dark grey; to visually distinguish individual moves, especially to split up one move's notes from the next.
Not sure how this is an improvement over the current layout. It's still a multi-row layout, except without any of the visual cues and graceful degradation (try viewing the layout with empty values or on mobile). Comparison:
Recovery is very slightly off-axis to the right, changing the tracking of follow up moves
1
i10
+1
+8
r17
4
Left Right Combo to Revolution Zwei
h,h,m,h
7,9,14,23d
Tailspin
Input can be delayed 17f
Move can be delayed 13f
Combo from 3rd hit with 8f delay
Transition to r37 HMS with 4
Transition input can be delayed 29f
1,2,2,3
,i21~23
-3
+17a (+8a)
r31
NameThe name of the move in the English localization.Most often directly from the in-game movelist, but can also be a community name.
AltOther inputs that also perform this move, written in notation.
InputThe input to perform the move, written in notation. This is often used as the move's name.For strings, the input of the previous moves in the string is shown but washed out.
Hit levelThe hit level of the move.Capital letters mean it hits grounded.For strings, the hit level of the previous moves in the string is shown but washed out.
DamageHow much damage the move does without any modifiers.For strings, the damage of the previous moves in the string is shown but washed out.
RangeThe maximum range recorded of the move hitting Lars on-axis. (For Tekken 7, it's vs Heihachi.) Assume an error of about ±0.03.For strings, this is the range of the whole string.This measurement shouldn't on its own be used to compare characters: larger characters get more "range" by this measure, but their opponents do too.
Left TrackingThe tracking score to the attacker's left.Roughly speaking, when up close, if the defender sidesteps or sidewalks right for no more than this many frames, the move still connects.
Right TrackingThe tracking score to the attacker's right.Roughly speaking, when up close, if the defender sidesteps or sidewalks left for no more than this many frames, the move still connects.
BlockThe frame advantage on block.Blank if the move can't be blocked (e.g., an unblockable or an aerial attack).For breakable throws, this is the frame advantage when the throw is broken.
HitThe frame advantage on hit.Blank if the move is not an attack, e.g. is a stance transition only.For throws, this is the frame advantage after the throw.
CHThe frame advantage on counter hit.Blank if this is the same as on normal hit, i.e. there is no special behavior on counter hit.
StartupThe active frames of the attack. The "i" stands for "impact", i.e. impact frame.If there is more than one hit, a comma indicates that frame 1 is now the frame after the last active frame of the previous hit.For strings, therefore, this usually has a leading comma.
RecoveryThe total number of frames, the recovery frames, and what stance the move recovers in, if any.The "t" stands for total and "r" for recovery. If no stance is listed, the move recovers in the default, standing position.For strings, the total frame count is from the start of the string with no delays.
NotesAnything that doesn't fit elsewhere.Many common move properties, such as whether a string can be delayed, go here.See Movelist#Notes for standard wording of common properties.
(Only 2 entries cause putting the data in with the table is a real pain.) If you want to continue experimenting with new designs, you should do it as a template. There's no way we're going to have people writing tables out manually. If it uses the same parameters (which it probably should) then you get test cases for free. (Just copy the Lee movelist to another page and find+replace “MoveData” → “MoveData/sandbox”.) RogerDodger (talk) 10:02, 28 January 2021 (UTC)
Oldmanwang: Ahh, now I see the problem to be solved. Still not sold on the current design, will look into making a better one.