Digital Fabrication for Arcade Cabinet Design
Instructor: Mark Kleback
Hours: Wednesday 6:30pm - 9:00pm
Office Hours: Monday 1:30-3:30 or by appointment
In the past five years, we've seen a strong influx in the indie game community here in NYC. Babycastles gallery, the NYU Game Center, and the Death By Audio Arcade are all showcasing games in public spaces. Many of these galleries are starting to display custom arcade cabinets that are impressive manifestations of these games.
In this class, students will use Unity to create a simple multiplayer game that can run on a Windows, Mac, or Linux computer. They will learn to use scripts that will launch this game on startup, and interface with hardware like buttons and joysticks using microcontrollers.
In the second half of the class, they will learn how to construct an arcade cabinet with digital fabrication tools like laser cutters, 3D printers, and CNC cutters. The class will culminate in a finished arcade cabinet that displays the game and can run uninterrupted for months in a public venue.
- Build a simple multiplayer game using Unity
- Prototype a hardware controller for Unity game or other software application
- Using Vectorworks, design an enclosure for the game. Incorporate a finished design for the controller
- Fabricate the enclosure using a CNC router and/or laser cutter. Finish the exterior of the cabinet using paint or stain.
- Learn about different tools for installation design, including startup scripts, embedded Linux systems, screens, and power management
- Install the finished product in a group show at the end of the semester
Class Participation 20%
Blog and Documentation 20%
Download a free (watermarked) version of Unity 3D
Download a free student version of Vectorworks
How to Build an Indie Arcade Cabinet
An Arcade Cabinet Made From Felted Wool
Week 1 (January 28)
Week 2 (February 4)
Week 3 (February 11)
Week 4 (February 18)
Week 5 (February 25)
Week 6 (March 4)
Week 7 (March 11)
Week 8 (March 25)
Week 9 (April 1)
Week 10 (April 8)
Week 11 (April 15)
Week 12 (April 22)
Week 13 (April 29)
Week 14 (May 6)
Week 1: Introduction to Unity
- Class Overview and Goals
- Play one or more indie games talked about in class. Try to find one with unique inputs and game play. Be prepared to talk about game mechanics next week.
- Find a Unity tutorial online for 2D game design.
- Using the game we created in class, or a brand new game, try to figure out how to create multiple objects out of a single prefab. As an extra challenge, try to implement a scoreboard.
Week 2: Game Mechanics
- Present games from last week
- Instantiate function
- GUI Skin
- Using the Asset Store
- Sprite Sheets
- Pixel Editor
- Use Photoshop or a similar design program to build assets for a game. You may use the same game as last week, or build a new one. Create original assets for your players, enemies, bullets, balls, backgrounds etc.
- Write a blog post about the game you'd like to create. Include pictures of your assets, the style of game play, and examples of similar game mechanics used in existing games. Email me a link to your blog post before next week's class.
Week 3: Hardware Controllers
- Present games from last week
- Introduction to Hardware - Examples
- Ultimarc UltraStick
- Interfacing with Arduino via Serial
- Raspberry Pi - all in one
- Unity - creating bullets, particle systems, and triggers
- Incorporate a hardware controller into your game/application. This can be a proof of concept on a breadboard. Playing the game should feel as natural and intuitive as if you were using a mouse or keyboard. Post a video to your blog of the working prototype, with an explanation as to why you chose this particular interface.
- If you haven't already, incorporate your sprites into your game using animations when necessary.
Week 4: 2D Design in Vectorworks
- Present hardware controllers
- Introduction to controller design
- Look at examples of various controllers
- Introduction to Vectorworks - drawing shapes
- Dimensioning, using calipers
- Unity - Multiple scenes
- Order the parts for your hardware prototype
- Draw a design for your controller in Vectorworks using three views. Use exact measurements and notate all dimensions. Be sure to include all buttons or sensors that will be used for the game. Post the finished drawing to your blog with a description as to why you chose this size and shape.
- Create a menu screen for your game
Week 5: Field Trip to Waka Waka
- Write a blog post about one of the games at this event - what you liked about it, what you didn't like about it. If possible, try to talk to the developer and ask about how they made the game, the cabinet, and the difficulties they ran into during the build process.
Week 6: Fire the Laser
- Exporting dxf files to Illustrator
- Running a job on the laser
- Materials and settings
- Creating Dovetail joints
- 3D Design in Vectorworks - Building a box
- T-joints for screws
- Cut out a prototype for your hardware controller using the laser cutter. Be sure to measure the exact dimensions of your buttons/sensors using a caliper before cutting the holes. Make sure you test it with the game to make sure it works. Post documentation of this prototype to your blog.
Week 7: Midterm Presentations
- Present game and controller
- Over spring break, acquire a screen or monitor for your cabinet. It can be an old television, a cheap monitor from Craigslist, or one of those $200 HDMI screens from Adafruit. Test your game on the monitor and make sure you like it, because from here on out, this is the screen size you'll be designing around.
- Research arcade cabinet designs. Choose a unique cabinet, and write a blog about why this was a good or bad design choice. Try to point out technical details about hardware and shape, as well as graphic design and color. What is your overall impression?
Spring Break - No Class
Week 8: Introduction to CNC and MasterCAM
- Introduction to MasterCAM
- Import dxf file, don't try to draw anything
- Clockwise vs Counterclockwise
- Pocketing vs Cutting
- CNC Demonstration
- Do the MasterCAM Tutorial and get acquainted with how the CNC router works. If you're feeling ambitious, try making a marquee for your game.
Week 9: Computers and Embedded Linux Systems
- CNC Progress Report
- Installation Design - which Computer is best?
- OS X vs Windows vs Linux
- Shell Scripts and Automator
- Scheduling and BIOS
- AutoHotKey Scripts
- Embedded Linux - using Raspberry Pi or UDOO
- CNC Joinery in Vectorworks
- Mechanical Joinery
- Cut out and assemble the pieces for your cabinet. Use the MDF provided, or purchase lumber from Prince Lumber. During the cutting and assembly, take pictures and post the progress to your blog. From this point forward, there should be a blog documenting your progress each week.
Week 10: Analog Fabrication & Flair
- Cabinet Progress Report
- Unity - Adding sound and music to your game
- Wood Working - Build a Box
- Drilling holes on the drill press
- Console template
- The hand router
- Paint and Wood Stain
- Screen Printing
- Large Format Decals
- LED Strips
- Backlit Marquee
- Order LEDs and hardware this week!
- Buy paint/stain at Blick or other local hardware store
- Continue working on cabinets. After assembly, paint or stain exterior and add hardware for controller. Post an update to your blog with this week's progress. Address any problems you may have run into.
Week 11: GAME JAM
- Cabinet Progress Report
- Introduce guest experts
- GAME JAM - Work on games in your groups with expert advisor
- Get your game to a playable state for next week. With cabinet construction finishing up, expect to begin showcasing your game and cabinet in the lounge.
Week 12: Installation
- Cabinet progress report
- Unity - combining multiple projects
- Porting game to installation computer
- Individual group meetings
- Mount the screen and computer in your cabinet and connect the control interface. By next week, there should be a playable version of your game inside the cabinet.
Week 13: Robustness and Error Handling
- Cabinet Progress Report
- Unity - High Scores and Player Preferences
- Reset Buttons
- On/Off switches
- Next week will be a trial run for the show! Plan to have your cabinets set up and ready for guests to play
Week 14: Presentation of Final Cabinet
Zhuoying (Joy) Li