7 ms·
A little slice of history regarding one of the technical foundations of Commander Keen, for those that aren't aware: "Then, the first breakthrough. John Carmac
by Arjuna 12y ago
A little slice of history regarding one of the technical foundations of Commander Keen, for those that aren't aware:
"Then, the first breakthrough. John Carmack devised a smooth, scrolling routine similar to that used for the background of Nintendo games but never before possible on the PC." [1]
The technique is called, adaptive tile refresh. [2]
[1] http://www.3drealms.com/keenhistory http://www.3drealms.com/keenhistory
[2] https://en.wikipedia.org/wiki/Adaptive_tile_refresh https://en.wikipedia.org/wiki/Adaptive_tile_refresh
- sprokolopolis 12y agoI remember reading in Masters of Doom that they had actually asked Nintendo if they could license games to get them on personal computers, Obviously, Nintendo declined. They were able to get the first level of Super Mario Bros running on personal computers and used that method in the Commander Keen series.
- hadoukenio 12y agoI recommend Masters of Doom to everyone. It's wonderful, historical, nostalgic and inspiring.
- prezjordan 12y agoSeconded. One of the best books I've ever read - I honestly wish I could forget it and start over.
- ekianjo 12y agoPretty good, but the technical explanations were pretty light at times. I'd really like to have the narration they had and on top of that, much more details about the technical side and how it was achieved. When you talk about literature you actually quote authors, when you talk about hackers I think it's appropriate to go back to the code and what it does, too.
- easytiger 12y agoIf you like that you will also like a book called Showstopper which is similar but about early challenges at Microsft building the NT kernel
- AtmaScout 12y agoIt is funny that you mention this book. I've read Masters of Doom and just received this one. I'm excited to read it.
- sprokolopolis 12y agoI meant Super Mario Bros 3. Sorry about that.
- sillysaurus3 12y agoDoes anyone know where the "adaptive tile refresh" source code is in the codebase?
- readerrrr 12y agoLook at id_rf.c and .asm files.
- vidarh 12y agoIt's fascinating that this was something new on the PC that late. This is roughly how most scrolling on the C64 happens (though it works by reducing the visible display by 8 hires pixels on either side of the screen, and scrolling at most 8 hires pixels before you need to shift "tiles" / characters). I'm not sure it was new with the C64 either. While most C64 games used sprites for the movable objects, there are absolutely exceptions that tracked damage. On the Amiga, however, the method described is basically pretty much how you're expected to do scrolling from the outset(it has much more extensive support for it than EGA did). AmigaOS even came with built in support for managing damage lists for such objects ("bobs" for "blittable objects") and double buffering from 1985, though most games would have used their own code for it. For these systems redrawing the whole screen was simply never seen as viable, or worthwhile. The Amiga hardware support for doing this kind of scrolling + the use of the blitter for moving game objects and replacing damaged sections made this method the obvious choice. Even double-buffering was sometimes seen as too wasteful, with a solution being to sort damage lists and tie updates to the raster interrupt to update the screen before the raster beam reached it.
- to3m 12y agoThe BBC micro had a similar arrangement to the Amiga or EGA, and this was the way a number of games (Repton, Exile, Ravenskull, Uridium, JCB Digger, amongst others) did their full-screen scrolling. (I think the stride was inferred from the displayed total though so when scrolling horizontally some flicker at the sides was pretty much inevitable.) Double buffering was rare, due to a distinct lack of memory, and games would have had to use dirty lists as a 2MHz CPU just isn't fast enough to redraw the entire screen each time.
- kabdib 12y agoYup. We were doing quite similar things on the Atari 6502-based computers (it helped that there was hardware scrolling, but only to a degree). The PC graphics hardware was just embarrassingly awful (it's like the hardware engineers on the CGA decided to make it insanely hard to do any animation -- WTF, you're doing a color display on a consumer product?) Ah well, they won, and Atari / Amiga / Commodore lost; better doesn't mean you win.
- caf 12y agoThat Wikipedia link claims that Commander Keen was the first PC sidescroller, but it was predated by (at least) Captain Comic. I'm not sure if you'd call Sopwith a sidescroller but it managed to scroll sideways on CGA.
- jodrellblank 12y agoAnd there's a Sopwith for iOS as well: https://itunes.apple.com/us/app/sopwith-barons/id577086057?mt=8 https://itunes.apple.com/us/app/sopwith-barons/id577086057?m...
- antimagic 12y agoWhen I read the description of how EGA worked, you can't help feeling that the engineers that created it had planned for exactly the use-case Carmack put it to. In particular, providing for a buffer that was larger than the screen, the ability to move the offset inside the buffer for the screen's origin, and wrapping of the buffer is exactly the feature set that you need to implement scrolling. I don't think it was blind luck that these features were all available on the card. This is often cited as the first example of Carmack's genius when it came to computer graphics, and he certainly deserves credit for being one of the first/astest third-party developers to realise the potential of the EGA card. But if I was one of the engineers that had designed EGA, I would be rather miffed to see how much Carmack is praised for this when it seems relatively clear that he was just using the hardware as it was intended to be used.