Introduction: Designing a Custom Fighting Game Controller

Whatever the reason may be..

you've decided an off-the-shelf option isn't for you.

In my case, I found a lot of the common designs to be ergonomically lacking. I needed something that would keep my hands as relaxed as possible to eliminate any tightness in the motions I repeat often.

I wanted to introduce more of an angular layout to better suite the way our hands naturally fall at our lap or desktop.

Your reasons for going custom might vary, but there are some essential tools and workflow considerations that will help you see out your vision.


(I am entering this design guide for the 3D print Contest as a student of Valencia College Orlando.)

Supplies

Need to have:

  • CADD (Fusion 360.)
  • 3D Printer & Material
  • Soldering Iron & 24 awg, insulated wire.
  • Brook Fighting Board PCB (or similar).
  • Arcade Buttons and/or Mechanical keyboard switches.

Nice to have:

  • 1/8" MDF board for prototyping your layout.
  • Hole Saws for cutting the MDF board.
  • An existing controller to compare your design to.
  • Patience and some acceptance that you may make mistakes.

Step 1: The Competition

Understanding the market..

of existing products is crucial in understanding which exact elements you'd like to improve upon and which you would like to borrow.


The Standard Fighting Game Controller style should be the most familiar to those outside of this community. This is what you would see in an arcade and it consists of a Joystick and several action buttons.

A common consideration of those looking to use a Joystick in their custom design is the distance between the left and right hands.

The Hitbox layout popularized what can be referred to as an "All buttons" layout. Instead of a Joystick to control the four directional inputs, we have dedicated buttons for each of these. This can be preferred in a lot of situations.

It is typical for a Hitbox style layout to have the Up button lower, where you could access it with either thumb.

A Mix Box, (or MX box) derives its MX title from the mechanical keyboard switches it uses. These are essentially Hitbox design with an arrow key cluster reminiscent of a computer keyboard.

Many who are familiar with PC gaming and using WASD for movement prefer this design.

Other Variants exist with many different combinations of these features but it can be helpful to identify the main distinctions.

Step 2: My Inspiration

After researching..

you can begin to identify to features important to your design. It can help to make a checklist. Your checklist would likely vary from mine depending on your specific needs.

For the visual design, I wanted to go with something "Gamey," with the Nintendo Gameboy Advanced serving as a loose, thematic template. I also took inspiration from custom ergonomic mechanical keyboards like the ErgoDox above.

Feature wise, I needed:

  • An individual button layout.
  • An Up button in the traditional arrow key layout.
  • A duplicate of this Up button in the form of a thumb jump button.
  • A more ergonomic slanting of the two button halves.
  • A small enough final product to fit into a backpack.

Step 3: Sketching It Out.

With ergonomics as my primary consideration..

I started by taking several hand tracings of myself, close friends and family members. I wanted to see where our fingers naturally fell on average.

I compiled these all in Fusion 360 and developed a rough middle ground. This led to a rather organic and amorphous arch of buttons. I tested this on some MDF board for a week before making some alterations.

A note on changes:

I went on make my buttons evenly spaced to better promote muscle memory. Even though my tracings did not make it into the final product, the process itself informed the overall angle of the design and distance between hands.

It's important to accept the new information you may learn mid-project and be willing to embrace it and move in a new direction if need be.

When you set out with clear design goals from the start, these speed bumps will smooth over much quicker as you realize what's best for the project itself.

Step 4: The Design Phase

Using Fusion 360..

I modelled all of my components, including the Brook Fighting PCB I would be using as the "Brain" of my controller.

I designed the top and bottom piece with a male/female ridge to help orient them together before being fastened by screws.

The buttons had to be dialed in just right to fit into the Kailh Choc White mechanical switches I used. I also designed and printed a quick jig for sanding these buttons. The custom drill bit allows you to sand them more evenly and much faster.

This would actually prove to be my most involved model to date. I learned a ton along the way, utilizing the various resources out there like the Fusion360 subreddit and the Fusion360 Student Discord server.

Step 5: Printing & Assembly!

As much as I wanted to jump right into the final print..

I spent a lot of my early time creating and printing tolerance tests for the hardware I would be using.

These print rather quickly and allowed me to test fittings and visualize how the hardware would come together before I started a single 15 hour print.

Final Assembly:

With my design fully printed in standard PLA material on my CR-10, I had to solder the leads of my mechanical switches to the Brooks Fighting Board.

There are some great Instructables out there specific to wiring up a Brook PCB in different ways. The methods will depend on the hardware you choose and can even be done without a soldering iron if you opt for a more traditional arcade button like the popular Sanwas.

Your method of fastening the controller will also vary greatly depending on your design. I went with a simple ridge to orient the top piece to the bottom piece, and 4 screws to hold it together.

Conclusion:

My aim with this guide is to walk you though some of the design choices I made and add a little more context for those who might want to design a custom controller but don't really know where to begin.

Step 6: Enjoy!

3D Printed Student Design Challenge

Grand Prize in the
3D Printed Student Design Challenge