Digital Fabrication for Arcade Cabinet Design
Instructor: Mark Kleback
mark@kleebtronics.com
School: NYU/ITP
Hours: Thursday 6:30pm - 9:00pm
Office Hours: Monday 2:00pm - 4:00pm
Github Repo
Course Description
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.
Syllabus 2015
Objectives
- 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
Grading
Class Participation 20%
Blog and Documentation 20%
Midterm 30%
Final 30%
Resources
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
Syllabus
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
- Introductions
- Class Overview and Goals
- Introduction to Unity
Resources
Homework
- 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
Resources
Homework
- 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
- Canvas
- Sprite editing- creating sprites
- Introduction to hardware
- Arduino Leonardo
- Raspberry Pi
Resources
Homework
- 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
Resources
Homework
- 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
Resources
Homework
- 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
Resources
Homework
- Finish your game and controller and be ready to present next week!
Week 7: Midterm Presentations
Resources
Homework
- 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
Resources
Homework
- 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
Resources
Homework
- 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
Resources
Homework
- 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
Resources
Homework
- 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
- Collaborators
Resources
Homework
- 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
Futher Resources
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
Students
Corbin Y Ordel
FY (Fengyuan) Zhu
Ian Gibson
Jesse Donaldson
Joakim G Quach
Juan Jose Egusquiza
Kathleen S Temrowski
Kevin G Stirnweis
Michelle Hessel Alves
Nicole He
Olivia Cueva
Paula Ceballos Delgado
Peiyu Luo
Satbir Samantha Multani
Wangshu Sun
Xiwei Huang
Yuan Gao