Digital Fabrication for Arcade Cabinet Design
Instructor: Mark Kleback
Hours: Thursday 6:30pm - 9:00pm
Office Hours: Monday 2:00pm - 4:00pm
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 3)
Week 7 (March 10)
Week 8 (March 24)
Week 9 (March 31)
Week 10 (April 7)
Week 11 (April 14)
Week 12 (April 21)
Week 13 (April 28)
Week 14 (May 5)
Week 1: Introduction to Unity
- Class Overview and Goals
- Introduction to Unity
- Complete one 3D Unity tutorial from their website or YouTube
- Using standard assets, recreate a static scene from a film in 3D. Use a FPS Controller to move around, and incorporate 3D game objects, textures, and rigidbodies.
- Export your scene to WebGL and email me a link to your blog for this class
Week 2: Scripting in Unity
- Present scenes from last week
- Exporting a Project: WebGL vs Unity Web Player
- Introduction to Unity2D
- MonoDevelop - Programming in Unity
- Creating Prefabs
- Detecting Collisions
- Build a simple platform game in Unity2D
- Use the "OnCollisionEnter2D" function to detect collisions
- Use the "Instantiate" function to create a prefab. Use the "Destroy" function to destroy a prefab
Week 3: Sprites & Hardware Controllers
- Present scenes from last week
- GUI Skin - tracking score
- Sprite editing- creating sprites
- Introduction to hardware
- Arduino Leonardo
- Raspberry Pi
- Research the Golden Age of Video Games and play three different games. Note the layout, game mechanics, and controls. Write a blog post comparing and contrasting the three games, and what you liked and didn't like about each one.
- Incorporate an external sensor into your game from last week using Arduino
Week 4: Animations & Intro to Vectorworks
- Present Controllers
- Download Vectorworks2015
- Review: Sprite Editors
- Creating Sprite Animations from a Sprite Sheet
- Introduction to the Animator Controller
- Flipping a sprite along an axis using JS
- Order the parts for your hardware prototype
- Using UPA Toolkit, Piskell, or Photoshop, create a set of sprites for a 2D game. Create 3 different sprites. At least one should have an animation.
- Write a blog post describing a simple game you'd like to create using these sprites. What are the functions? Include in your post what kinds of hardware interfaces you might use, and why you chose them.
- BONUS:Import your sprites into Unity and create animations using the Animator Controller (you need to do this eventually anyway)
Week 5: Intro to Vectorworks
- Talk about games/controllers
- Intro to Vectorworks - Drawing 2D Shapes
- Unity - Bullet Example
- Unity - Particle Systems
- Unity - Storing Player Prefs
- 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.
- Using Canvas elements, create a "menu" for your game
Week 6: Fire the Laser
- Brief discussion about midterms
- Unity - Scrolling Background
- Unity - Parallaxing
- Unity - Materials
- Unity - Audio Components
- Laser Cutter Tutorial
- Finish your game and controller and be ready to present next week!
Week 7: Midterm Presentations
- Research Arcade Cabinets. Visit Barcade in Williamsburg and Astor Place. Look up some different styles of arcade cabinets from the 1980s - present. Find a cabinet that is interesting and write a blog about why you think so.
Spring Break - No Class
Week 8: Introduction to CNC and MasterCAM
- Talk About Cabinet Designs
- Groups for final project
- Introduction to MasterCAM
- Export dxf file from Vectorworks
- Clockwise vs Counterclockwise
- Pocketing vs Cutting
- CNC Demonstration
- As a group, brainstorm an idea for your final game and cabinet design. Post this idea to your blog with relevant references to existing games and cabinets.
- Follow one of the MasterCAM tutorials listed above and cut something out using the CNC. Try to use both a contour cut and a pocket cut in the same job.
Week 9: Analog Fabrication
- This class will be held in the MEETING ROOM
- Pitch ideas for final projects
- 3D extrusions and modeling in Vectorworks
- Analog Fabrication Techniques
- Using Vectorworks, make a 3D Rendering of your final cabinet proposal. This doesn't have to be the final shape or size, but try to think about actual measurements when designing it. Also think about the size restrictions of the CNC Machine.
- Build a BASIC (strictly mechanics, no sprites) version of your game. From this point forward, your group will present weekly progress reports on your cabinet and game.
Week 10: CNC Joinery
- Present cabinet designs
- Vectorworks: From 3D back to 2D
- CNC Joinery
- Intro to Micro Studio (Vive VR)
- Unity workshop
- Start cutting out your cabinet on the CNC machine. I want to see some progress next week in the form of wooden pieces
- Based on what we talked about in the Unity workshop, make some progress on your game and post to your blog.
- Start sourcing things like a screen, a computer, and your controls.
Week 11: Sound Effects and Music
- Present cabinet progress
- Hardware, Acrylic, Lighting
- Music Composition
- Sound Effects
- Unity Integration
- Start cutting out the pieces for your cabinet and assembling it. I want to see some physical progress next week.
- Compose some music for your game and start working in sound effects
Week 12: Installation and Finishing
- Apply for the NYU Game Center Incubator
- Sound Effects and Music (continued)
- Designing for Installations (Mac and PC)
- Reset Buttons
- Shell Scripts and Automator (OSX)
- AutoHotKey (PC)
- Finishes - paint and sealant
- Wood Filler
- Screen printing, stencils, wheat pasting
- Cut out your cabinet! Assembly should be mostly finished this week.
- Post progress to your blog.
Week 13: GAME JAM
Week 14: Presentation of Final Cabinet
MONDAY MAY 9: Public Arcade Showcase Party
- 6pm - 10pm in the Common Room
- 6pm-7pm Guest Crits
- 7pm-10pm General Public
- Food and Beverages will be provided
Corbin Y Ordel
FY (Fengyuan) Zhu
Joakim G Quach
Juan Jose Egusquiza
Kathleen S Temrowski
Kevin G Stirnweis
Michelle Hessel Alves
Paula Ceballos Delgado
Satbir Samantha Multani