Designing a keyboard-based game controller

User avatar
uncletobai

13 Jan 2017, 17:57

I have always been pretty clumsy on traditional thumb based game controllers, so I wanted to build a MX-switch based one for simple games and retro emulation. Another reason is that i like pressing MX buttons :D.

Recently reddit user 13_bit posted a selfmade controller specifically for Stardew Valley. He made this controller for his young son, so he opted to go for a more intuitive, but suboptimal layout.


Basically there will be two main clusters, one for navigation, and one for the buttons like A B X Y on the SNES-controller.
There's a few ideas / concerns I have with regards to an 'optimal layout'.

1. Should the layout be symmetrical?
If so, you could ideally use either cluser as navigation cluster.
I personally tend to use my right hand for navigation, when navigation is the hard part of the game, for example in hardcore platformers like "Jumper" or "I wanna be the guy". For classical NES / SNES games, left hand navigation would be more natural.

2. Should either of the clusters be angled?
A slight 5-10 degree angle on the key clusters could be comfortable to use, but a navigation cluster where the UP key doesn't point straight up doesn't look that good.

3. And most importantly: What should the clusters even look like?
For the "A B X Y"- cluster, i think either one of these blocks would work great:

Image
Image

The two additional keys would allow for two things:
-> Use 3 keys in a single row for games where there's 3 keys which you have to use a lot, like jump, shoot and roll.
-> use the two additional keys as R1 or R2 keys (the ones on the back of a playstation controller for example)

A navigation cluster like this:
Image
looks pretty but could be straining for the middle finger.
A more classical WASD layout is probably more comfortable.
Image
By adding two additional keys you could make the controller symmetrical:
Image

or close to symmetrical:
Image

I think this layout is pretty good, but it would kind of irk me to use this layout for games with right hand navigation.
I prefer the staggered cluster over the non-staggered one though...

(Case Design:
For this project an all-acrylic case seems like the best idea.
All layers made out of a single sheet of 3mm acrylic should work, but means that I have to hot-glue the switches in place.)

(Keycaps:
I think a flat profile like DSA or XDA would work great here, especially in bright colours)

I would love to hear your input on the layout ideas and what your ideal layout would look like!

Matt_

13 Jan 2017, 18:27

Whenever I'm playing games with the keyboard instead of a controller (which is most of the time, even for emulation), I use ESDF for directional controls, and whatever I need on IOPKL'. But I always map "jump" to space, because it feels so natural. Start/Select on T and U. It's mostly idiosyncratic, you should use what feels the most comfortable to you.

Why not try a hinged design? This way you could adjust it to be either straight or angled:

Image

You may not need the two extra keys on the arrow cluster.

Also, you don't need to glue the switches if you use a 3mm plate, just create notches on the underside:

Image

User avatar
GEIST

13 Jan 2017, 18:30

I like your layout choices and the fact, that you share them. But two things came to my mind

1.The L and R buttons should be at the top or maybe better on the back of the controller, for a faster access.
2.The whole design seems huge to me, maybe you should rethink the spacing.

I made both points assuming that this will be a handheld game controller. If it's meant to be laying on a table and using the L and R buttons with the thumbs it seems like a great layout. But then you should consider at least a few additional keys for macros.

Findecanor

13 Jan 2017, 18:38

I think it looks great. I think that arcade controllers otherwise usually have the buttons in an arc around the right hand so that you could have one button per finger, but I have never played much arcade so I have no opinion.
Do print your layout on paper in 1:1 scale and try that out before you order acrylic to be cut.

If you order laser-cut acrylic that is opaque then you could use two layers of 1.5mm acrylic and glue them together to achieve like that red plate in the photo: the uppermost layer for snapping the switches and the lower layer slightly bigger to allow for the snap to function.
However, if your keycaps are too tight on the switches then those would be tighter than the switches in the plate and you would still have to use glue to prevent the switches from being pulled out too easily. This is the case with DSA profile in PBT plastic and also often with Cherry MX Clear.

HuBandiT

13 Jan 2017, 19:34

I would consider 3D modelling and printing custom size/shape keycaps that fit onto the stems of your MX switches. You are not limited to rectangular designs and arrangements that way, but you can put the keys much closer or be much more free with the angles. And then you could also 3D print a case for it.

User avatar
uncletobai

13 Jan 2017, 21:02

Thanks for your inputs!
Matt_ wrote: Why not try a hinged design?
Also, you don't need to glue the switches if you use a 3mm plate, just create notches on the underside:
Hinged controller is a good idea, but maybe it wont feel as stable when using it on my lap.
I've thought about notches in the 3mm plate, but that will require CNC'ing and unfortunately I only have access to a laser cutter.

@GEIST:
this is meant to be used on a table or sitting on my lap :)

@findecanor:
two glued plates are a good idea!

@hubandit:
is 3d printing keycaps easy to do? i thought i've seen some reports somewhere saying that it's a very inconsistent process, especially with amateur gear

HuBandiT

14 Jan 2017, 00:50

uncletobai wrote: @hubandit:
is 3d printing keycaps easy to do? i thought i've seen some reports somewhere saying that it's a very inconsistent process, especially with amateur gear
I do not have much firsthand experience with keyboard-related 3D printing.

FDM (the nozzle-squirting-drawing process based 3D printing that is most used in amateur gear) can be not so great indeed - especially when temperature is not adjusted properly. Look at this video https://www.youtube.com/watch?v=xkbV_PIJM3M from around 2:04, the guy studied FDM-printed pieces under an electron microscope in a material science lab; make it full screen, you'll see 2-3 slides with the microsctructure of the fibers at various melting temperatures.

What I was referring to for example is SLS, which is offered by shapeways.com or similar companies if you can find at reasonable prices. Still not as high quality as a real, injection molded piece, but already provides much better characteristics than FDM.

Take inspiration from this thread, where suka follows along the evolution of his self-designed, 3D-printed 3D-curved input devices: workshop-f7/my-diy-keyboard-collection- ... t2534.html

And who knows, maybe if you come up with a good design, and find enough interest, maybe a group buy can be organized for proper injection molding (of at least the keycaps, if not the housing).

User avatar
GEIST

14 Jan 2017, 01:01

I'm by no means an expert in this field, but I tried a lot of FDM and SLA. And I printed a tiny keyboardcase in SLS.
From my experience I would say FDM is unusable for keycaps ( it will work, but it will look horrible) and SLS would work, but it got a slightly rough surface (like some rough keycaps, probably more intense). SLA will work and will look great, but it's by far the most expensive printing method from these three.

Image
Here
you can find more informations about this topic

HuBandiT

14 Jan 2017, 01:08

GEIST wrote: And I printed a tiny keyboardcase in SLS.


Oh, very nice and practical project there! I like it!


One way to cheat with FDM that I saw some guys use at my 3D printing place: the base layer (the face meeting the 3D printer table) will be smooth and flat (and if you are caring for your mounting film, even respectably nice shiny).

User avatar
vvp

14 Jan 2017, 21:24

I printed few keycaps with FDM. They are not very pretty but they are well usable. You can improve their look quite bit if you sand them a paint with acetone (for ABS) or tetrahydrofuran (for PLA). Here is an example non-standard keycap which was not sanded. It was only painted with acetone:
keycap.jpg
keycap.jpg (48.45 KiB) Viewed 3041 times
Nothing special but one can get a strangely shaped keycaps for experiments in about 15-30 minutes (not including design time only the printing and post-processing). The FDM keycaps can look much better if you use 0.1 mm (or smaller) layer height and Ø 0.35 mm nozzle and slow print speed. The example picture was Ø 0.5 nozzle and 0.2 mm layer height. The print speed was slowed down so that one layer takes 15 seconds. Sanding before painting helps quite a bit too.

Post Reply

Return to “Workshop”