Step 6: Design Your Game

Now we're getting to the fun part- game design. Granted, the elements you are going to be given are very limited, but that's where creativity comes into the picture. There are six built-in elements that will be used to create everything on your screen:

1.) Playfield
2.) Sprite 0
3.) Sprite 1
4.) Missile 0
5.) Missile 1
6.) Ball

Advanced programming will allow you to exploit the characteristics of each of these elements. For example, the flashing ghosts on PacMan allow the same sprites to be repeated and show up in multiple places on the screen, creating more characters. This will be explained in far better detail in the tutorials, but here are the basics.

Playfield- stored in 3 registers, with 4,8, and 8 pixels available in each. This will draw half the screen from left to right, then the screen can be repeated or mirrored. You can also re-write to the registers after drawing the first half to create a screen that is different all the way across. Basically you have 40 pixels across the screen. These could be changed on each scanline, but are normally coded in blocks of about 8 scanlines to save memory. The playfield in my exampled is mirrored, meaning the right half of the screens reflects, not repeats, the left half.

Sprites- For ease of explanation sprites are limited to 8 pixels wide. There are techniques of combining two sprites to act like one and even repeat them horizontally to get up to 48 (I believe) pixels across. For a beginner, just getting a simple sprite on the screen will be quite a task. The hard limit to sprite height is the entire screen, up to 192 pixels in NTSC systems. However, you have to keep in mind a character that takes up the entire screen is hard to design a game around. This is where design and creativity in keeping sprites smaller while still conveying the idea comes across. For reference the Robot design is 8x22 pixels shown here, while PacMan is 8x8. Sometimes you have to decide between size and more detail.

Missiles- There are also two built in missiles. These are normally used as straight lines or dots. This is what is shot in the game combat. These (I believe offhand) are what would be used as lasers in games like Space Invaders or Vanguard. They can also serve as design elements (the rails in Pole Position). You are only limited by your imagination, and of course the severe limitations of the 2600. The missile colors are often matched to the sprite of the same number.

Ball- Really, the ball is just like the missiles are far as I can tell. The only real difference I can tell is that the ball matches the color of the playfield. Designers of the game Adventure exploited this to actually make the ball the main character, which is why it shows up as a block instead of with more detail.
 This Instructable has inspired me to program an Atari 2600 game as my third year project wich is a huge part of my grade. Lovely guide!
Did you ever happen to work on this project? I wasn't sure if fall semester would be year three for you or not. If you make anything, I would love to see it!
Absolutely! I'm working on a Snake clone at the moment because I don't think I could handle anything more complex right now. I have not been updating my journal ofter at all, but today is my last school day which means the project period at my school has startet, so updates will come often. You can find the journal here:<br><br>http://programmingatari.wordpress.com/<br><br>Remember that it's for school, so I write perhaps a bit more than necessary since my project mentor isn't very tech savvy at all.
<p>This is incredible.</p><p>Do you think that it could be possible to 3d-print the cartridge enclosures ?</p>
<p>I wouldn't think it would be too hard, there's not really anything special about them. Lately, I've been looking at building an aluminum forge and molding techniques. It might be kind of interesting having an aluminum casing, although it would have to be combined with plastic so it wouldn't conduct electricity onto the board.</p>
<p>The difficulty should be to add the connector protection... You know, the plastic part that translate to unprotect the connectors.</p><p>But it can work without of course !!</p>
<p>Looks like someone has done it now - http://atariage.com/forums/topic/257455-3d-printed-2600-cart-shell/</p>
<p>how do you get the consle?</p>
<p>I would start with ebay, as they haven't sold in retail since the 90s.</p>
<p>The Atari Flashback (version 1) was designed and built with the ability to add a game cartridge slot and if you modify one with a cartridge slot, it can play all the old 2600 game cartridges.</p>
Is it possible to make something like attack on titan
<p>I'm not familiar with that, but many games/ideas have been ported, you just have to work within the limitations of the system. For example, one guy created a 2600 version of Halo, though it obviously only somewhat resembles the modern version.</p>
This is very interesting. I don't think I'll go to the trouble to actually do it, but I didn't know there was a whole hobby, tool set and community based around making retro arcade cartridges.
The boards link is not working.
Thanks... but this was published three years ago. Perhaps the board company is no longer in business or has moved in that time. If I get some time I'll try to find them or another board provider to put in place of them.
Dude i wish i could do that but i dont have an atari 2600 i would make FFVII for this, is there any way to do this on a Atari Flashback 2?
Don't let not having a 2600 stop you... the software emulators for the 2600 are very accurate, and can be used to develop and test games.
is it possible to write NES games onto atari carts? i can't find my dad's old NES, only the atari.
No, but if you have a ROM burner, you can put them on NES cartridges that match the type of cartridge used for that particular game. There are services around the web that will also do this for you for a fee. One of the reasons I know people do this is to update NES Tecmo Super Bowl rosters from time to time.
let me rephrase; i want to play NES games on an Atari system. not Atari games on a NES system.
Several things make what you ask impossible. A NES supports far more memory and processing power than the older Atari, but even if you have a very &quot;simple&quot; NES game it still could never work due to incompatabilities.<br><br>In general an easier answer is that no 2 gaming consoles are compatible (unless advertised as such, which usually adds cost to the console so most consoles do not do this).<br><br>Given enough programming skill and patience, someone &quot;could&quot; make a 2600 version of a NES game. You would be basically making a new 2600 game from scratch which has less graphics and sound, but you might be able to mimic the gameplay. This has been done before.
Im thinking about doing this. I was at a flea market 2 days ago and found an atari 2600 with the cables, 2 joysticks, ms pac-man, pac-man, real sports baseball, and asteroids for $10! (:
Also,&nbsp; if you happen to own a Sega Genesis controller&nbsp; it works in an atari.<br />
I&nbsp;didn't know that. I don't own one but I&nbsp;can get one pretty cheap
If i had an atari 2600 i would make Cloud, Sephiroth, Wolverine, The Joker (Dark Knight style) Weiss the Immaculate, Nero the Sable, Vincent Valentine, Jak and Daxter, Ratchet and Clank, Zack Fair, Claire Farron (a.k.a. Lightning), Bahamut, Link, Roxas, Axel, Reno, Sora, Xigbar, etc., etc. (i have about 100 more guys i could mention but my hand is getting tired)
now can you make shooting games, because i was thinking of making my own version of a video game called left 4 dead so i could play it at my a relatives' houses because none of them have xbox 360s
If you can dream it, you can achieve it! :)
TextEdit does work, just save as plain text ( .txt ), not Rich Text ( .rtf ). If you want to program any language, other than Assembly Line, than Macs are the way to go. No flames please, but it is easier to code on a Mac ( other than on 10.5 Leopard ).
Then you've never tried Linux + EMACS. I was never a EMACS geek (prefer Vim myself), but I've tried it, and kept it for a loooooong time.
&nbsp;I use Mac + EMACS. Don't think there's a difference.
&nbsp;They are the same.
Actually, you can access EMACS from a Mac, because Mac and Linux both use UNIX (SP?). Just go into Terminal, on 10.4 or 10.5, and type in "emacs"
O RLY? I've never used a Mac, so I guess I wouldn't know. I'm kind of anti-apple, for reasons I've had so long that I forgot them.
What OS do you use? Apple has changed, so less buggy. Use a Mac at an Apple Store ( they let you use Macs there) for ten minutes, then re-decide. Tell me the reasons when you remember.
I'm currently using Windows Vista, but I wish I had Linux. Too late now. I don't know if there are many Apple stores around where I live (Austin, Texas, so it's all Dell here). I think one of the reasons I don't like Macs is that I grew up with PC/Windows. I would have a hard time switching from what I have used for years, to Microsoft's major competitor. That's why I am still comfortable using Linux -- It's just kind of out there, not really conflicting with anybody. GNU is nice like that.
I found two Apple stores near you. 1: Barton Creek 2901 S. Capital of Texas Highway Austin, TX 78746 (512) 347-7888 2: The Domain 11410 Century Oaks Terrace Austin, TX 78758 (512) 691-4800 Hope you like the Apple stores.
I went to the one at the Domain. Couldn't separate myself from the iPod nanos. The huge-screen iMacs were huge. Wish I could have stayed longer, so I could check them out more. Prices weren't too tempting, though. (I also got a muffin :D)<br/><br/>I also went to the Apple section of my local Fry's. More huge iMacs, though I did get to stay a bit longer, so I explored a bit. I found iLife very interesting. The UI is a bit like GNOME (but only a little), and I'm not too picky with UIs anyways, so I don't think I'd have a lot of trouble there. Mac OS isn't compatible with MS tech (as far as I know), nor is Linux unless you have WINE (and even that's a pain), so my coding habits wouldn't have to change too much. I didn't look at the price.<br/><br/>The games at that macgames.com site you mentioned look familiar... GH3, The Sims X, Halo... Not too many of my favorite PC games, but I'm adaptable. (Just wondering, is there any kind of Windows emulator (or Not Emulator) for Mac that I could run games on?)<br/><br/>The last place I went was my local Goodwill Computer Center. They had a few old, gunky iMacs running Leopard there. Same stuff. &lt;$100.<br/><br/>Overall, I was impressed, but not by the price, and I've only just switched to Linux a few months ago. My and my dad are getting ready to build a new computer from scratch. Maybe I could <em>possibly</em> get one of those old iMacs and clean it up a bit. I'll think about it.<br/>
The iMacs are big. Love the computers, hate the price. What do you code? Could you explain quote Mac OS isn't compatible with MS tech (as far as I know), nor is Linux unless you have WINE (and even that's a pain), so my coding habits wouldn't have to change too much. /quote? Rather than UI, you mean GUI. The basic UI is almost the same, the GUI is different. On the Intel Macs, you can use BootCamp to run Windows OS. That way, you run Windows with Mac OS X speeds, and run Windows apps, even the start menu. What kind were the iMacs at Goodwill Computer Center? They aren't Gunky unless they are old. Are they Intel, or PowerPC processors? Google it, but you can build a computer using PC parts, and run Mac OS X on it. Price comes down a few thousand. Never buy RAM or Hard Drives from Apple, they overcharge. They overcharge for everything else too, but those things have better quality.
I like to program games. In my dark ages of using Windows, I would use DirectX for all of my games. When I upgraded to Linux, I had to start using OpenGL. I'm <em>sure</em> you can run OpenGL apps on Macs, right? It is, after all, <em>open.</em><br/><br/>I think the old iMacs were Intel, but I'm not sure. By 'gunky' I meant physically. They were covered in dirt, gunk and grime. Must be old.<br/>
In what language? Tiger and up has OpenGL and OpenAL installed with the OS. Check them out. If you can run them, then find out. You can clean out dirt, just not with water or soap.
Usually C or C++, but sometimes in Python. I've used other languages as well.
How do you do graphics in C?
Using OpenGL, DirectX, SDL, or any of the other graphics libraries there are out there...?
Could you explain that?
Windows xp is way better, windows vista gets more bugs.
I agree.
Seconded. (Or is it thirded?)
Thirded :-)
Okay, were <em>you</em> thirding, or were you implying that <em>I</em> was thirding? Oh, forget it.<br/>

About This Instructable



Bio: Whoever first said "sticks and stones can break my bones, but words can never hurt me" obviously never attended a ninja poetry slam.
More by yokozuna:Easy Homemade Pizza Christmas Decorations Using Coffee Cups Lighted Memorabilia Display 
Add instructable to: