I really liked the arcade controller by elkayem and made a few that turned out so nice I gave them to family as Christmas gifts. I used the same kit ordered from banggood.com, it seems to be the least expensive of the many similar kits out there.
However when I received the kit, I couldn't help but notice that it had 10 buttons instead of just 8. Also my printer has 250mmx200mm bed instead of the 200mmx200mm bed that the original was designed to fit on, so I redesigned it so that it would have 8 buttons on top with the 2 small ones on the side, and would fit within 250mm instead of 200mm.
I re-did the design from scratch using FreeCAD, and included the file as well. It's fully parameterized so that you can easily change the button size, location, size of the box, etc.
The other major change I did is that I beveled the screw holes so that using a flat machine screw, the screw doesn't stick out from the surface of the case at all, either on the top or on the sides.
Also the control board for the joystick actually has ports for 12(!) buttons, and a port for enabling autofire. I would like to make a version of this that has two small push-buttons that could be used for enabling and cancelling autofire.
I printed this with a Prusa i3 mk2, which has a 250mm x 200mm print bed. I used PLA. I found I had a bit of lift on the corner when printing the main case, so when I printed it the 2nd time I used a 5mm skirt and I had no problem with corner lifting.
I printed both the top and the bottom with supports, though they might not be necessary for the 4mm screw holes. Supports are definitely suggested for the two holes on the side of the case for the two smaller buttons