The NAU ACM Game Cabinet

The NAU ACM Game Cabinet is an entirely original creation conceived and built here at the ACM to showcase playable student-created games and actively promote enthusiasm for computing and technology. The goal was to create a permanent fixture of NAU Student Life and encourage conversation centered around quality student projects.

Inspiration:

The whole idea behind the design of the Game Cabinet began as a nostalgic trip to the arcade. We remember fondly bringing our quarters to the arcade and play all afternoon...why can't we bring this same experience to other engineers in the building? We're not only showing off the games...we're now giving people the full experience!

Many games on the cabinet are clones of earlier arcade game classics - and what better place to house them but a student-built arcade cabinet? Every student game is controlled using the classic joystick and button controls similar to how the original games would have been played in the arcade during the time of their initial release. It's not only a great way to show others what kinds of projects we've created here at NAU as Computer Science students, but it's also a nostalgic tribute to the original spirit of gaming.

Current Games:
All of the games created on the the Game cabinet were created by NAU Computer Science students during their time here at NAU. They were created either as individual projects, as projects for the CS499: Game Development course or turned in as projects for CS471: Virtual Worlds (which is being offered next semester) Current games on the Game Cabinet include:

Want to add yours? See How Do I Add My Completed Game to the Cabinet?

How Do I Add My Completed Game to the Cabinet?

Congratulations, you've completed your game! After working on it so hard, you'll likely want to make sure it's playable on the Game Cabinet for the rest of eternity! You'll be happy to hear that it's actually pretty simple to get your game ready for Cabinet-release. First things first, make sure you meet the game requirements:

If you meet all the previous requirements (minus the majority vote), then you'll be happy to know that it's all pretty easy from here on out. Now, it's time to prep your game to meet the technical requirements.
Follow these simple directions:

  1. If you didn't develop your game in Plasmacore, you'll first need to generate an executable (MyGame.exe) file from within the context of your development environment (refer to your documentation).
  2. Create a game.desc file (in Notepad or other text editor) and add it to the base level of your Game directory, according to the directions here.
  3. Re-map your game control keystrokes to use the control board by following the instructions here.
  4. Make sure you adhere to the ACM's Quality Guidelines to ensure your game runs smoothly and bug-free on the Game Cabinet system.

Once you've finished prepping your game for Game Cabinet release, all that's left is to attend the next ACM meeting and present your game to the ACM Club. The club will then hold a vote to determine whether your game meets the standards for release (This isn't a popularity contest, just a vote to make sure you've met all the requirements). If this vote passes, then you're in!

Welcome to the NAU Game Developer's Hall of Fame!

Game Description Language

In order for a game to be loaded into the arcade menuing system it must provide a game.desc file in the base game directory. This file contains a number of key/value assignments that tell the menu information about the game.

Format your key/value pairs like so:

key: value

An example of a complete game.desc file:

name: Tetric
description: The best Tetris clone ever made!
thumbnail: thumbnail.png
screenshot: screenshot1.png
screenshot: screenshot2.png
screenshot: screenshot3.png
author: Joe Flieger
title: tetric.png
players: 2
program: dist/Tetric.exe

All paths below are relative to the directory that your game.desc resides in. It is important that there is only one game.desc file in your directory structure. If there is more than one, the file that the menu chooses to use is undefined. Placing it in the base directory of your game folder is the easiest way to ensure this. Each one of these assignments must appear on its own line and the space after the colon is NOT optional.

This is a list of all required keys for proper display in the menu:

Key Description
name: The name of the game
description: A brief description of the game. Must be on a single line.
thumbnail: Path to a 256x152 image used in thumbnail view of game. Path is relative to the game's base directory
screenshot: Path to a 512x303 image relative to the game's base directory. May be specified multiple times for multiple screenshots.
author: Names of the Game Developers. May be specified multiple times for multiple developers.
title: Path to a 256x64 title graphic for the game. The path is relative to the base directory of the game.
players: Max number of players the game supports
program: Path to program executable relative to the game's base path

Remapping the Game Controls

The Game Cabinet control board was designed and hand-wired by Ryan Raub himself. But you won't have to do anything nearly as complicated to get it working with your game ;)

Here are the keystroke inputs that are sent to your game by the control board:

The two glowing blue trackballs control the mouse input. Although we currently have two different trackballs wired into the control board, at this time they only control the same mouse input (this will possibly change in the future).

Key Event Requirements:

  • Your game must exit immediately upon receiving a "Menu" (Keystroke 3) Event
  • Other Controls (for reference):

    • Restart the Menu System: Hold Player 2 (Keystroke 2) while pressing the button sequence: A B B A. The only way to hard reboot the actual machine is from inside the Cabinet (An ACM Officer should have the key to open the box). The boot sequence is programmed to start the ArcadeOS upon hard reboot.
    • Start Screensaver Immediately: Hit the Left Bumper Button (Keystroke Left-Shift). This may cause the ArcadeOS to become unresponsive for a second or two while loading the Screensaver.