YesNoOk

Show content

This section allows you to browse the content for this member. Note that you can only see content for which you have sufficient viewing permissions.

****
Vans is Offline
Contact Vans:

Vans

Contributor

Messages by Vans

    

Understanding the Joystick

 April 13, 2017, 03:57:36 PM View in topic context
 Posted by Vans  in Tiny Buffering! An easy, simple and compact buffering system!  (Started by Vans February 25, 2017, 04:04:10 PM
 Board: Development

Alright! In this mini section we will try to understand the joystick.

For this purpose let's think of a joystick for moment.


OUR GOOD FRIEND THE JOYSTICK

For the purpose of fighting games, we are concerned with detecting a total of 8 directions, the ones that form the (two) cross map(s):

UBUUF123
BNF456
DBBDF123

I will be using the notation to the left, although some of you might be used to numerical notation. The previous map should show what I'm referring to in any case.

For the remainder of the tokens and symbols, I will be using the MUGEN standard of notation, because I think it is appropriate. This is a quick summary of the symbols I'll be using and their meaning:

Tilde (~): Detection of a button or a direction release of the joystick.

Dollar ($): Cardinal-only. In a command sequence, presenting $U,$D,$F or $B means that any diagonal input within the range of that cardinal is accepted as a valid input in the sequence.

For example, detecting a command as the sequence {F,$D,B} means that the subsequences {F,D,B}, {F,DF,B}, {F,DB,B} are all valid for activating the command.
 
Understanding the joystick.

Fighting games were born as arcade games, so it is no surprise that fighting games have mainly been designed to make use of joysticks as the main source of input. Originally most games did not require many precise movements other than moving vertically and horizontally, so joysticks used to be 4-way, this means diagonals were either mostly muted or completely out of range.

When fighting games came around, the more popular 8-way was starting to get its big break, and fighting game design started to take advantage of that. That's where the special move was created.


X-MEN just assumes you don't know your movelist.

Now that diagonals are available to use, how can we make good use of them? Simple! We can detect joystick revolutions! In a certain sense, it is like drawing. Detecting revolutions was the first step to establishing what we know as special moves, but detecting revolutions is not entirely a trivial problem.

In this regard, we can actually think that there's two very special schools of detecting joystick motions: the Capcom school and the SNK school. To illustrate, let's look at this picture:


Images borrowed from SlagCoin

What you see is the area representation of two distinct joystick restrictor gates, on the left we have a square gate and on the right we have an octagonal gate. These two gates co-existed in arcade cabinets during the golden era of fighting games, and each developer tailored their input detection and games towards the specific gates the games were produced for.

The square gate (on the left) allows the joystick to map an equal area or region to every possible direction (marked as 11%). In a square gate each direction is given the same amount of priority in terms of detection.

One particular aspect of the square gate is that it is highly difficult to perform inputs by riding the gate, this means that for the most part the joystick should never be touching the "walls" of the gate. This added a layer of difficulty to beginners and people who were not used to playing arcade games.

Capcom, in particular, was a company that tailored their games for square gates, as their games would mostly be featured in cabinets with the Seimitsu LS-32 joystick, which came equipped with a square gate. This type of joystick restriction gate is now the standard used for consumer arcade panels and arcade cabinets in Japan.

The octagonal gate (on the right) modifies the shape of the walls to form an octagon and thus creates an uneven distribution for our 9 possible joystick positions.

While the octagonal gate restricts the area of diagonals by 5%, it also holds one special perk: the octagonal shape! By using an octagon shaped restrictor, this type of joystick would allow new comers to have a "guide" for accurately moving the joystick. In this type of joystick, one can verify the position of the lever at all times by touching the nearest wall. This makes playing games more welcoming!

SNK, in particular, was a company that tailored their games for octagonal gates, as their joystick for AES and MVS systems was a modified version of an LS-40, with an octagonal (and sometimes circular) gate. Octagonal gates are often recommended to beginners who haven't used arcade sticks before.

When designing a game, and especially a fighting game, it is very important to keep in mind the type of hardware you're tailoring inputs for.

What's the most important aspect about any game? Well, being able to fucking play it! - James Rolfe as The Angry Video Game Nerd.

Coke or Pepsi? What input design school to choose?

The way a game responds to user input is one of the most important aspects for leaving a lasting impression to a player. What's the best way to go about it? When thinking of the golden era of fighting games we obviously have to examine what Capcom and SNK did back in the day.

Let's discuss a little how Capcom does it.


I just wanted to post this broken stance Guile gif.

Capcom designed their games with the square gate in mind, that is, they designed their games with the idea that the joystick would have an even distribution in regions for every possible direction. This carried over to their command design too!

There's one particular motion that demonstrates this more clearly to us: the half circle motion.

For a Capcom game, the half circle motion is parsed as follows:

Code:
~B,DB,D,DF,F

This means that, the diagonals are all checked and are a necessary aspect of the motion. Since the distribution of our diagonals is even, performing this motion with 100% accuracy is not too much to ask as it is just one swift motion of our wrist.

But what happens when we go over half a revolution? That's where things get interesting.

Code:
~D,F,U,B or ~F,U,B,D or ~U,B,D,F or ~B,D,F,U or ~D,B,U,F or ~B,U,F,D or ~U,F,D,B or ~F,D,B,U

This is the command for detecting a 360 motion, in this case full accuracy with the 4 diagonals is no longer asked, only cardinal accuracy is important. One important factor for this is that muscle memory for controlling the upper portion of a joystick is not usually developed as fighting games are focused on the lower half most of the time.

One of the nice aspects of square gates is that since the gate is a square, it is very easy for us to confirm the location of the cardinals , this is why they're chosen as the pivots for greater motions such as a 360.

In short, Capcom keeps a very strict case of observing diagonals throughout an input and relies on cardinals to define simplified greater revolutions.

Now let's look at SNK!


Let's not get too hasty now, we are almost done.

SNK is a very special case, as they turned what used to be a limitation into a quirk or personality.

In the very beginning, SNK made commands the exact same way as Capcom did, which meant that each direction in a sequence would receive equal priority in every step of the way. That is, until one game changed it all.


This bad boy.

What do we do when we must define a Power Geyser? Power Geyser is a motion that requires a quarter revolution backwards followed by half revolution forwards.

If we recall that SNK favored octagonal gates, then we have to observe that the areas assigned to diagonals are smaller than they would be compared to a square gate. This means that by doing two wrist flicks in opposite directions is very likely to produce an unintended error during the input.

The solution? Let's make it more lenient!
Code:
~D,DB,B,DB,F

This is the original sequence definition for a Power Geyser in Fatal Fury 2. Notice that for the final half circle, only one direction is checked instead of three. This is the basis of what SNK would later do with their commands.

A modern Power Geyser or Hou'ou Kyaku now has this form:

Code:
~D,DB,B,$D,F

This is a now modern and evolved version of the original solution they designed back in the old days. This command design was chosen to eliminate the constant execution errors by missing one diagonal by mistake (often due to the diagonal areas being small), but it carries over all the way to modern times, even without octagonal gates being standard.

Half circles and 360 motions also follow this same principle:

Code:
~B,$D,F
~F,$D,B,$U or ~D, $B, U, $F or ~B, $U, F, $D or ~U, $F, D, $B or ~F, $U, B, $D or ~U, $B, D, $F or ~B, $D, F, $U or ~D, $F, U, $B

Conclusion.

Knowing the existence and differences between the design styles of commands is a very important aspect of creating (or emulating!) fighting games.

Not all the rules are set in stone, but it is a good idea to sit down and think who the target audience of your game is, based on your target audience they might appreciate a little more to find that the personality behind the inputs is something that rings close to home.

Now that fighting games are more popular and diverse, it is not surprising to see games that mix rules and ideas of both styles, but not without careful study of the reason and the ideas behind their design.

Before jumping in to any paradigm altering buffering things, I invite everyone to pay more attention to commands and inputs, as this is an area that is often not given enough care.

This concludes this mini section, let's discuss more code in the next one!
    

Re: Swiss Army Knife for WinMUGEN (English version).

 April 13, 2017, 01:22:45 PM View in topic context
 Posted by Vans  in Swiss Army Knife for WinMUGEN (English version). (Started by Vans March 19, 2017, 08:44:00 AM
 Board: Your Releases, 1.0+

For some reason, I can't even download Swiss Army Knife.

Were you able to? What's the problem? Sometimes the server takes a bit to load when something new is released, I hope the download worked fine after a while.

Any other reports, guys? Thoughts? Death threats?
    

Re: Krillin Z2

 April 13, 2017, 01:17:59 PM View in topic context
 Posted by Vans  in Krillin Z2 official wip- download now available. (Started by Daeron April 12, 2017, 12:32:09 PM
 Board: Official Z2 Char Dev

I remember there was a gif for an intro(?) in the OP, I thought it looked amazing!
    

Re: My FACE is a WIP thread.

 April 12, 2017, 11:54:42 AM View in topic context
 Posted by Vans  in My FACE is a WIP thread. (Started by Vans February 14, 2017, 06:38:15 AM
 Board: Projects

    

Re: KoF '98 Kyo Kusanagi Sprites

 April 09, 2017, 12:17:12 PM View in topic context
 Posted by Vans  in KoF '98 Kyo Kusanagi Sprites (Started by Slivern April 08, 2017, 05:03:47 AM
 Board: Development Resources

Kong messed up on a few rips. Missing colors (like Kyo), misalignment, missing and/or repeat sprites, etc.

Missing color cases aside (Kyo, Lin, etc) his rips are all KOF perfect.
    

Re: My FACE is a WIP thread.

 April 06, 2017, 04:57:16 PM View in topic context
 Posted by Vans  in My FACE is a WIP thread. (Started by Vans February 14, 2017, 06:38:15 AM
 Board: Projects

    

Re: My FACE is a WIP thread.

 April 03, 2017, 05:12:51 PM View in topic context
 Posted by Vans  in My FACE is a WIP thread. (Started by Vans February 14, 2017, 06:38:15 AM
 Board: Projects

    

Re: Which Fighting Game character should a beginner MUGEN author start with first?

 April 02, 2017, 07:35:07 AM View in topic context
 Posted by Vans  in Which Fighting Game character should a beginner MUGEN author start with first? (Started by Slivern April 02, 2017, 05:04:23 AM
 Board: M.U.G.E.N Discussion

People should try to convert something first. It does not matter which character is chosen, if the person is interested in learning how to code they will learn how to code, plain and simple.

A lot of people these days have the wrong impression that one character should cover every single aspect of MUGEN character coding, and this is false.
    

Re: Hitdef with multiple attributes

 March 29, 2017, 05:00:29 PM View in topic context
 Posted by Vans  in Hitdef with multiple attributes (Started by Ricepigeon March 29, 2017, 04:49:25 PM
 Board: Development

What the fuck.
    

Re: Nokia 3310 by Synck a.k.a DuckSS has been released!

 March 29, 2017, 09:36:40 AM View in topic context
 Posted by Vans  in Nokia 3310 by Synck a.k.a DuckSS has been released! (Started by Synck March 26, 2017, 09:04:17 PM
 Board: Your Releases, 1.0+

lmao
    

Re: Square Root Calculator

 March 28, 2017, 07:04:04 PM View in topic context
 Posted by Vans  in Square Root Calculator (Started by inktrebuchet March 28, 2017, 05:20:47 PM
 Board: Code Library

For a fun exercise, I came up with another way of calculating a square root after reading this thread. This is based on an old geometric construction by Euclides (I believe).

sqrt(x) = ((x+1.0)/2.0)*sin(acos((x-1.0)/(x+1.0)))

x should be written in float form.
    

Re: Square Root Calculator

 March 28, 2017, 06:43:07 PM View in topic context
 Posted by Vans  in Square Root Calculator (Started by inktrebuchet March 28, 2017, 05:20:47 PM
 Board: Code Library

x ** 1/2 is the square root of x.

There's many methods of calculating a square root: trigonometric, exponential, approximating via series, etc. If you ever make use of the exponential or trigonometric functions while you calculate it, you will end up with the same result.

I advice against wasting variables for doing this.
    

Re: Dude Mugen: a new MUGEN IDE

 March 22, 2017, 05:44:20 AM View in topic context
 Posted by Vans  in Dude Mugen: a new MUGEN IDE (Started by Jesuszilla February 04, 2017, 02:50:11 AM
 Board: Projects

I frequently use the KOF CLSN3 as my default box when I have a nothitby active, so that would definitely be handy.
    

Re: Swiss Army Knife for WinMUGEN (English version).

 March 22, 2017, 05:07:53 AM View in topic context
 Posted by Vans  in Swiss Army Knife for WinMUGEN (English version). (Started by Vans March 19, 2017, 08:44:00 AM
 Board: Your Releases, 1.0+

Indeed.

I should also mention that the trigger checking function only works with Winmugen as well.
    

Re: Vans's WIP thread of everything. -Ai-

 March 21, 2017, 02:17:53 PM View in topic context
 Posted by Vans  in My FACE is a WIP thread. (Started by Vans February 14, 2017, 06:38:15 AM
 Board: Projects

http://www.vans.trinitymugen.net/Betas/Ai_RW.7z

This is an alpha, so many features aren't done yet!

I've been hard at work updating my current batch of characters, and the upcoming update is gonna be the best one yet!

Things that Ai is still missing:

- Supers, the rest of Joy Joy Balloon.
- Compatibility with reflectors (she predates them!)
- A collapse animation (she explodes right now). :)
- A dizzy animation (I hacked one in).

And some other things.

 I will be updating my current batch and actively work on Ai now! Updating to buffering step 2 was very challenging as it had certain problems at the beginning.

Let me know what you guys think!
    

Re: Swiss Army Knife Debugger App

 March 19, 2017, 08:53:03 AM View in topic context
 Posted by Vans  in Swiss Army Knife Debugger App (Started by JustNoPoint January 27, 2017, 09:01:00 PM
 Board: Development

Hey everyone, after finally getting the text to look properly I have released the fully translated version here.

This was an amazing project for me, but it was also a very difficult one that took many hours to complete (around 220 hours real time).

The help function within this tool is absolutely ridiculous with its explanations and examples, this feature accounts for over 70% of the total text contained within the tool. I encourage everyone to use it to learn more about its functions, it is very thorough.

If anyone feels like helping a non-sponsored mexican mathematician to eat another bowl of rice for a day, there's a paypal link in my site. Any help is greatly appreciated.

Hope you guys enjoy it!
    

Swiss Army Knife for WinMUGEN (English version).

 March 19, 2017, 08:44:00 AM View in topic context
 Posted by Vans  in Swiss Army Knife for WinMUGEN (English version). (Started by Vans March 19, 2017, 08:44:00 AM
 Board: Your Releases, 1.0+



「窓無限の十徳ナイフ」


This is an English version of Swiss Army Knife for WinMUGEN ver. 1.08 by Anonymous. Translated by myself.

Swiss Army Knife is a debugging tool for WinMUGEN and MUGEN 1.0 that provides a great variety of ways of observing individual player data and variables in real-time.

Within the tool, the Help function provides context, explanations and examples on how to use the advanced debugging features.

This modified version only affects the following:
  • Fully translates the main program into English.
  • Fully translates the Help functions and its examples and explanations.
  • Re-formatted forms and windows to a better fit for English text.

You can get it at TrinityMUGEN => Downloads => Tools.

You can find more information and context in this thread
    

Re: Swiss Army Knife Debugger App

 March 16, 2017, 04:18:38 AM View in topic context
 Posted by Vans  in Swiss Army Knife Debugger App (Started by JustNoPoint January 27, 2017, 09:01:00 PM
 Board: Development

I am now looking into adjusting the forms for the English text.
    

Re: Swiss Army Knife Debugger App

 March 14, 2017, 09:53:48 AM View in topic context
 Posted by Vans  in Swiss Army Knife Debugger App (Started by JustNoPoint January 27, 2017, 09:01:00 PM
 Board: Development

There isn't one, we want to fix a couple of things first.
    

Re: Swiss Army Knife Debugger App

 March 14, 2017, 05:10:07 AM View in topic context
 Posted by Vans  in Swiss Army Knife Debugger App (Started by JustNoPoint January 27, 2017, 09:01:00 PM
 Board: Development

A quick update!

After many, many hours a full English translation of the tool has been now completed!

There's still a couple of things that have to be fixed (such as text box size), but all the text used within the application and its help functions are now fully translated.