Gamasutra: The Art & Business of Making Gamesspacer
Postmortem: Pixels Past's SCSIcide
View All     RSS
June 23, 2017
arrowPress Releases
June 23, 2017
Games Press
View All     RSS






If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Postmortem: Pixels Past's SCSIcide

February 26, 2003 Article Start Page 1 of 3 Next
 

SCSIcide, as its name suggests, is nerdiness to the core. You are a disk drive read head, and your mission is to read the color-coded bits of data as they scream past you on 10 separate data tracks. As each bit is read, your read head changes color to indicate which random bit you must read next. Read all of the bits in the required order and you advance to the next platter (level). If you take too long, your latency buffer times out, your disk crashes and the game ends. Your score is displayed at the top of the screen in, of course, hexadecimal notation.
-Ben Valdes, staff writer for Classic Gamer Magazine

SCSIcide (pronounced 'skuzzy-side') was my first design attempt for the Atari 2600 console. I wanted to create a game that was simple yet addicting, and would incorporate enough features to make the development of the game a challenge and learning process. From concept to completion, the project was essentially a one-person show. The original Atari 2600 game developers were tasked with all aspects of the process, including concept, graphics, sound, design, and implementation; twenty years later, the creation of SCSIcide was no different.

How does one decide to create a game for a 20+ year-old console? I became actively involved with the Atari 2600 development community in 1997. My hope was to use SCSIcide, my first programming attempt for the Atari 2600 and my first publicly released game, as a stepping-stone into design for other systems, notably the Game Boy Advance -- which also offers interesting design constraints. By day, I have my own product development and engineering firm and spend most of my time thinking of ideas, creating prototypes, and licensing them to interested parties. By night, I do the same thing (after a few rounds of SCSIcide).


The "homebrew" Atari 2600 game SCSIcide, released two decades after the manufacturer retired the console.

Essentially, SCSIcide is a psychotic, instinctive reflex game and was the first paddle-based homebrew game for the Atari 2600. Like the original Pong, SCSIcide was designed to be easy to understand yet difficult to master. Something that, if this were an arcade game, kids would be lining up and pumping quarters into the cabinet as quickly as they could.

The original idea was based on a rotating circular disk, mimicking a real hard drive. However, I knew programming the 2600 was rather difficult due to the limited memory environment and tricky timing requirements (see sidebar), so I settled on an easier horizontally based, single-screen game. The game has slight similarities to Kaboom!, a simple but devilishly fast-paced game that made me nervous every time I played it. I wanted to create a game that would replicate this nervousness.

Not only was there the challenge of creating a game that people would play, I also needed to design game packaging and build physical cartridges. From laying out a new circuit board for the old Atari 2600 cartridge cases, to drawing cartridge labels, to printing manuals, to building the cartridges, to testing, it was a successful journey. But, it wasn't without its problems.

What Went Right

1. Expecting changes in the game plan.

As with any engineering or development project, it's important to have an idea of your final goal before you start. With SCSIcide, the game concept essentially stayed the same from its inception (control a hard drive head and read bits of data). After deciding on a single-screen horizontal view, I set to work on developing the core game kernel, drawing of objects to the screen, and game play intelligence. I was prepared for design changes to the game plan as implementation progressed. Because the game plan wasn't completely set in stone, I had an opportunity to implement features I had not originally intended, many of which came up as the result of programming problems and bugs.

My design document was a single paragraph:

"The player will control the hard drive head (i.e. can move it left or right between tracks using the paddle). The hard drive platter will spin clockwise (starting slowly). One sector in each cluster (column) will be illuminated. The player needs to move the head back and forth and hit the button when the lighted sector is under the head (essentially "reading" the sector). After the player "reads" 8 sectors, the platter will increase in rotation speed (i.e. the next level) and another combination of sectors will be illuminated. Speed will increase for every 8 sectors the player can read. Each sector needs to be read in sequential order (i.e. one column after the next). The player will lose (or the game will be over) if he misses an illuminated sector. Scoring will be based on the number of sectors the player successfully read."

I originally envisioned the game to have a memorization component like Milton Bradley's popular "Simon" game, possibly reading the bits in the proper color order and then having to re-write them back to the disk (a la defragmenting). As I started to program the core game, I decided to axe that part in order to keep game play simple. This decision left me with extra RAM and ROM to use for other features of my game.

Instead of using the standard decimal scoring system that most games use (I had originally planned on just a 2-digit decimal score), I decided to implement a 6-digit hexadecimal scoring routine to add to the whole "hard drive" theme of SCSIcide. The first "byte" of the score became the level number, and the last 2 "bytes" of the score was the actual score. Towards the end of the game implementation, I had some unused memory space, and decided to create a title screen for a more "complete" gaming experience.

2. Solid development environment.


The SCSIcide development environment: PC, Atari 2600 Jr., Supercharger (plugged into Atari), and color TV.

This might sound like a no-brainer, but having a development environment that has been fully tested and all components are known to work can save you lots of hair-pulling when a bug mysteriously appears in your Atari 2600 game. Each piece of my development system, such as my Windows PC, the Atari 2600 Jr., the television, and the Supercharger (to load a game through the PC sound card directly to the real 2600 hardware) was individually tested. So were all of the software components: the text editor, Atari 2600 emulator, and 6502 cross assembler. After each component was known to be functional, I combined them to form my development suite.

Additionally, as the components were brought together to form the environment, they, too, were tested. For example, making sure the Supercharger works with this particular 2600 Jr. by trying to load known-good games and making sure the 2600 Jr. properly displayed graphics on this particular TV. By the time the entire environment was set up, I could be sure that if a bug or problem arose, the components themselves worked fine so I could remove some unknowns from the debugging process. Doing this helped me "Keep It Simple, Stupid" and let me focus on potential areas in the code that could have caused the problem.

3. Play testing.

So I had a concept for a game and was on the way to making it a reality, but in order to make it good, I needed people to check it out and throw some opinions and criticism at me. Most game studios can do this in-house, by showing off code or game snippets to fellow developers or maybe beta testing a version of the game during lunch. Since SCSIcide was a one-person project, I needed a way to get some other gamer's perspectives.

The entire development process of SCSIcide, from inception to completion, was provided on my website, including source code and compiled binaries of various incarnations of the game. By sharing my beta versions with the world (or at least those people who actually cared), I could receive much-needed comments about the game design, allowing me to tailor components as I went. I was also active on the Stella Development mailing list, which consists of a number of stellar Atari 2600 homebrew game designers and gamers eager to provide their expertise (see sidebar).

Some brilliant suggestions came from my play-testing colleagues. For one, some of the numbers and letters were hard to read with the font I drew by hand. I thought the font was fine, because I had been staring at it for a few days, but when I shared this version of SCSIcide, I received enough feedback about it to change the font to something a little simpler. Another suggestion was to have a "Latency Buffer" that the player needed to keep full by reading bits of data. The Latency Buffer decreases when the desired data bit is missed or if an incorrect data bit is read. When the buffer is empty, the hard drive crashes and your game is over. The buffer adds a sense of urgency to the game, especially at the higher levels when the data bits are moving fast. Little tweaks such as these led to a more exciting game to play than was originally intended.



The SCSIcide play screen.

Everybody has his or her own Great Idea™ about how any game should play. When receiving suggestions, I made sure to avoid feature creep by staying true to the original concept. I did not try to implement every suggestion offered, especially those that would affect my simplistic game model. Some great suggestions, which were unimplemented in this version of SCSIcide, were to include bad sectors (which would cause a hard drive crash if the read head simply touches the bad sector), vary the lengths of the data bits (requiring the player to keep the button down for a varying length of time to read the entire bit), and vary the data bit graphics.

Any way you look at it, play testing and sharing your game during the development process is an absolute necessity. I would say there is no way to have a successful and popular game without getting the opinions of insiders, such as co-workers, and outsiders, such as the general game playing public.

4. Prepared in advance for cartridge manufacturing.



Custom-designed 4K circuit board for use in standard Atari 2600 cartridge shells
(Purchasing information available at http://www.pixelspast.com/homebrew.)

About halfway through programming SCSIcide, I knew that I needed to have a plan for building the cartridges. My goal was to release 50 cartridges, complete with color game manual and packaging, at the 2001 Classic Gaming Expo in Las Vegas, NV. I had made a public announcement on the expo site and on various classic gaming mailing lists and websites. I wanted to generate some buzz. There was no going back.

The date was March 2001. I had exactly five months to complete the game, design a circuit board, receive the prototype, test it, receive a production order, burn EPROMs, solder chips onto the boards, put the assembled boards into cartridges, and clean and label the cartridges.

The first thing I did was to create a custom circuit board for use in the standard Atari 2600 cases. I didn't want to have to modify the existing circuitry in the old cartridges, which takes a lot of time and careful soldering. The 2600 boards I made for SCSIcide support 2K and 4K EPROMs. All necessary components are easily obtainable at most electronics stores. This made the manufacturing process much easier and trouble-free.

Once I had the circuit boards designed and manufactured, it was simply a matter of soldering the components onto the custom boards, preparing the cartridges (stripping the labels off old common Atari 2600 games, such as Combat, Pac Man, Missile Command, Asteroids, all cheaply available on eBay), removing the old guts of the cartridge, putting the new populated circuit boards in, testing, putting the cartridge together, testing again, and finally putting on the new label. Piece of cake! The 50 cartridges were successfully built by CGE and were extremely well received.

 


1. Soldering components.

2. Boards with ROMs.

3. Label removal.

4. Label preparation.

5. Testing.

6. Making cartridges.

7. Labeling.

8. The final product.
 

The various stages of SCSIcide cartridge manufacturing.


5. Cost-effective production.

I allocated a $500 budget to develop and build SCSIcide. With such a meager sum, I needed to have an efficient and cost-effective production process. The design and production of the cartridge PCBs and purchase of the EPROMs and logic ate up most of my available funds. By planning in advance, I knew I could save a lot of money by avoiding rush fees and expensive overnight shipping charges.

The packaging and presentation of SCSIcide was kept to a minimum: low-cost and simple, but effective. I wanted the game to stand out in a way that no other homebrew game in the past had. I wanted the packaging and appearance to be special but not so flashy as to take away from the simple experience of the game. I didn't consider using a cardboard box because of the manufacturing costs associated with high-quality boxes and offset printing. I have seen other homebrew and low-budget game vendors use a cheap inkjet printer and flimsy cardboard packaging. This was not an option for me. I decided to package the game and manual in an anti-static bag, like a hard drive commonly is. This was a cheap way to provide a "box" for the game. It was funny and catchy, since it helped keep the "hard drive" theme of the game, and the price was right - just under $0.15 a piece!


Article Start Page 1 of 3 Next

Related Jobs

UBM Tech
UBM Tech — San Francisco, California, United States
[06.23.17]

General Manager, Game Developers Conference
Disruptor Beam
Disruptor Beam — FRAMINGHAM, Massachusetts, United States
[06.23.17]

Director, User Acquisition
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[06.23.17]

UI/UX Director
Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States
[06.23.17]

IT Technician (Temporary)





Loading Comments

loader image