I am in the process of making an Atari 2600 game. I have been given a lot of support and shown a lot of kindness, even at this very early stage. So I wanted to give back in a small way. In this blog post, I will make five arguments for why you, someone who has never done programming before, should get started in making homebrew games for the Atari 2600. This also applies to the 5200, and the 7800 -- and perhaps even to the Atari 8-bit home computers.
Development is Easier Than It Has Ever Been
You should get involved in making games for the 2600 because it is actually quite easy. Before 2005, you were forced to learn assembly language, the machine language of the Atari 2600 in order to make games. This is not the case anymore. There is now a high level language for programming 2600 games called batari BASIC, and it takes care of most of the difficult issues you will come across if you were forced to learn assembly.
Many people who had never learned a computer language before picked up batari BASIC and made their own games. You can find many of these games in the Atariage store. BASIC is one of the simplest programming languages that exist. It is designed to teach beginners how to program. Don't let the simplicity of the language fool you, however. batari BASIC possesses a suite of very advanced features which many programmers back in the 70s and 80s would have paid a great deal of money to use.
There also exist new kernels for batari BASIC that enable you to go beyond the limits of what the Atari 2600 can do alone. There exist the DPC+ kernel, which enhances the graphics of your games and allows you to make games which are more complex.
A long-time member of this forum, Random Terrain, also keeps an enormous encyclopedia for both batari BASIC and assembly language which you can use and reference free of charge. This is an invaluable source of information for beginners and experienced programmers alike.
It's Cheap to Get Started
Another reason you should strongly consider starting to make homebrew Atari 2600 games is that it is very cheap to do so. Your entire development environment for making 2600 games is most likely to be composed of freeware. This means all the components you need in order to develop, test, and finish the software version your game can all be found for free. Take my development environment for instance. I use the standard 6502 assembler program that everyone else on Atariage uses: DASM. DASM is free to download. I use the powerful linux text editor Kate for all my coding. Kate is a part of linux, so it too is free. Kate is, by definition, "Free Software". Finally there is the 2600 emulator everyone on Atariage uses, Stella. Stella is donationware. This means you may download it for free, but the project survives on donations from users in order to stay active. Stella is an invaluable tool for testing and developing games because it has a "debugger" mode, which allows you to step through your code line by line and watch exactly what is being executed.
That is the sum total of my development environment right now, and all of it was obtained free of charge. There is no need to "rent" the tools you need to develop 2600 games. You do not need to pay for any licences for software packages at all.
There also exists the batari BASIC compiler, which will transform high level BASIC into binary ROMs Ataris and the Stella emulator can run. This is likewise also free. There is also an Integrated Development Environment program called Visual batari BASIC, which is a powerful tool for simplifying a great many repetitive tasks which crop up while developing Atari games. This is also free. However, it only runs on Windows.
Aside from the actual tools you need to make Atari games, there is an entire encyclopedia of educational information all available free of charge online for your to peruse. All of this information on the internet will form the backbone of teaching you how to program for the Atari. Online there are:
- MOS 6502 assembly language tutorials on YouTube
- Many books teaching the fundamental concepts of BASIC on the AtariArchives
- The "live" development environment of 8bitworkshop.com
- Kirk Israel's Atari Programming 101
- Andrew Davie's Atari Programming for Newbies (can be found in the forums and on Random Terrain's website)
- SpiceWare's Collect tutorial on his blog
- As mentioned above, Random Terrain's batari BASIC encyclopedia
The History of 2600 Homebrew is Well Established
As I just described, there are well-established solutions to many of the biggest challenges for creating a 2600 game. Most of the time you will not need to come up with your own solutions for, say, the horizontal positioning of objects, because there is aleady an establised "community standard" for how to solve such a problem.
Finally, there are a whole suite of disassemblies of famous original Atari games, as well as the source code to many of the most popular homebrew games. Learning to read through these disassemblies will teach you skills and ways of thinking which will improve your games.
The Community is Large and Very Active
The Atariage forums is very large and very active! You can always always ask for help when you are stuck on programming your game. I know I do, and someone usually always replies to a request for help within 24 hours. This is the best thing about learning to program Atari games. There are many many experienced people on the forum who dedicate their time to helping others finish their games. These truly are wonderful people, because they do it for absolutely nothing. It is for these people that I wanted to write this blog post and bring attention to the fact that the Atari homebrew community is so fantastic.
There is no lack of people who are able to play test and debug your games! Simply posting the latest source code and binary to your games on a blog post or forum thread is enough to have someone potentially download your game and give you feedback. It's a wonderful feeling to have someone else check your work and appreciate it.
You are also able to turn your finished games into real Atari cartridges which you can play on real Atari 2600s. They can even be sold through the Atariage store! If that isn't a goal worth striving for, I don't know what is!