Inside the Homebrew Atari 2600 Scene
angryflute writes "'Have you played Atari today?' was an ad jingle for the Atari 2600 VCS game console during its reign in the early years of the video game industry, from the late 1970s to early 1980s. That question that could apply even now, according to an O'Reilly Network article, thanks to the passion of programmers who've continued to make new Atari 2600 games for the past few years."
i would make it a requirement to code an enjoyable 2600 rom :p :D.
The ammount of work that goes into creating an entertaining title while only working with 4k of rom space and 128 bytes of memory is staggering. Mind you, most of my emails are larger than 4k....
I dunno, maybe im just being sappy, but it really brings a smile to my face to see coders throwing themselves into what i can only characterize as a digital bootcamp, simply for the love of the game.
Long live passionate programmers
What's with people ripping off the first paragraph and submitting it as their text? Do they just assume we're not going to read the article, and are therefore being clever, or are they just lazy? That whole submission, with the exception of six words, is ripped from the top paragraph of the article.
A lot of "bloat" comes from increasing levels of abstraction away from the hardware, and numerous levels of interfaces between different system layers to allow for more modular code, more reusable code, and generally, safer code. Coding an application for a modern machine with all its fancy hardware would be pretty tricky without these interfaces already written for people. Sure, somebody has got to write the low-level interaction gubbins in the first place, but once it's done, it's done. If software houses wrote for the hardware to reduce bloat, we'd never see any games or software. Praise the bloat. The bloat be praised.
[That's not to say that an understanding of what the machine is actually doing with the code wouldn't help people when designing software systems, I agree that it would certainly be beneficial. It's just not necessarily where all the bloat comes from. The lack of understanding is probably more and more relevant as more and more layers of abstraction are added. And there's always room for one more layer of abstraction!]
I thought the 2600 had a line buffer. Basically a 40 or 80 bit shift register into which the pixels are written and then they are written to the video screen. This is my recollection from a presentation that the creator of the 2600 (the same guy who did the Amiga I think) had on the hardware internals.
What is all the portability for? In the end 99,9% of the products end up running on Wintel. I think that it would still be nice to have software developped in Assembly language, and it would even be profitable, but this goes against current market practices, that require cheap programmers (even if they are not too skilled), and short development periods.
Optimize last?? Hello?? Have you taken any programming courses?
How real, optimized engines are written (i.e. Quake, Doom, Unreal) is by:
- writing it first in a 'high' level language (probably C, which isn't high any more, but you get the picture)
- making sure it works
- finding out what parts are slow
- optimizing these in assembly, and making sure they get the same results as the slower, easier to debug version.
Writing the whole thing in assembly would just be ludicrous. Did you ever use the first version of wordperfect for windows?? Written in assembly, and boy was it buggy. And not noticeably faster than anything else.
If you optimize first you will never get anywhere meaningful.