{"id":4120,"date":"2019-09-21T13:05:43","date_gmt":"2019-09-21T20:05:43","guid":{"rendered":"http:\/\/mattfife.com\/?p=4120"},"modified":"2019-09-21T13:13:02","modified_gmt":"2019-09-21T20:13:02","slug":"the-details-of-fighting-game-logic","status":"publish","type":"post","link":"https:\/\/mattfife.com\/?p=4120","title":{"rendered":"The details of fighting game logic"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"245\" height=\"176\" data-attachment-id=\"4121\" data-permalink=\"https:\/\/mattfife.com\/?attachment_id=4121\" data-orig-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/09\/giphy.gif?fit=245%2C176&amp;ssl=1\" data-orig-size=\"245,176\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"giphy\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/09\/giphy.gif?fit=245%2C176&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2019\/09\/giphy.gif?resize=245%2C176&#038;ssl=1\" alt=\"\" class=\"wp-image-4121\"\/><\/figure>\n\n\n\n<p>Making a button-mashing fighting game like Street Fighter has some surprisingly sophisticated logic when it comes to frame-perfect animation hits and combos. Strange Wire does an awesome job describing the difficulties and some ways to solve them.<\/p>\n\n\n\n<p>What are those difficulties? Problems like checking hit and hurt boxes at the right parts of animation frames. Attaching events at the right parts of the animations can be tricky &#8211; especially if animators are still tweaking them. And the ever-present issue of keep the code clean.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-cZIFnceRFjg\/XWqMq2sJyHI\/AAAAAAAAAGw\/obJI0XLzqGw09FdxA0NwuKA72gcgoJ70wCLcBGAs\/s1600\/Cycle_de_vie.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-cZIFnceRFjg\/XWqMq2sJyHI\/AAAAAAAAAGw\/obJI0XLzqGw09FdxA0NwuKA72gcgoJ70wCLcBGAs\/s640\/Cycle_de_vie.jpg?w=640&#038;ssl=1\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<p> Definitely worth a read whether you&#8217;re doing 2D to 3D fighters.<\/p>\n\n\n\n<p><a href=\"https:\/\/strangewire.blogspot.com\/2019\/09\/frame-specific-attacks-in-unity.html\">https:\/\/strangewire.blogspot.com\/2019\/09\/frame-specific-attacks-in-unity.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Making a button-mashing fighting game like Street Fighter has some surprisingly sophisticated logic when it comes to frame-perfect animation hits and combos. Strange Wire does an awesome job describing the difficulties and some ways to solve them. What are those difficulties? Problems like checking hit and hurt boxes at the right parts of animation frames. Attaching events at the right parts of the animations can be tricky &#8211; especially if animators are still tweaking them. And the ever-present issue of&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/mattfife.com\/?p=4120\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,5],"tags":[],"class_list":["post-4120","post","type-post","status-publish","format-standard","hentry","category-technicalprogramming","category-technical"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4WECr-14s","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/4120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4120"}],"version-history":[{"count":2,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/4120\/revisions"}],"predecessor-version":[{"id":4123,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/4120\/revisions\/4123"}],"wp:attachment":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}