Fabien's site is an invaluable resource, but I think I've read it all over the years and he one has post specifically on Commander Keen, and that's focused on just the adaptive tile refresh (https://fabiensanglard.net/ega/). This book is 211 pages on the entire game.
On page 11 this author credits Fabian's excellent analysis of Doom and Wolfenstein as the inspiration to attempt the same for Commander Keen.
> "Fast forward to 2021, I discovered Fabien Sanglard’s website and began reading his Game
Engine Black Books on Wolfenstein 3D and Doom. Inspired by those works, I wondered
whether I could do something similar for Commander Keen: open up the source code, ex
plore the files, and piece together a picture of the overall architecture and the clever tricks
used. The style, dimensions, and structure of this book are intentionally similar to Fabien’s
Game Engine Black Books, as an homage to those masterpieces."
Just skimming so far, but this book looks like a valuable contribution to the genre of retro game code analysis. Obviously, it will build on the work of others who've done adjacent research. In a page 87 footnote the author refers readers to Fabien's site for detailed instructions on installing a DOSBox and Borland C++ dev environment.
This content-heavy but minimal design is not unique.
Text inside a centered element, text-heavy but also packed with images, exists from the times of formatinng websites with `<table>` tags in DreamWeaver or Microsoft Frontpage 98.
If you're talking about the highly detailed article, can we not gatekeep this? I want more of that on the internet, not less.
Masters of Doom is a great book on the history of id software, which includes the origins of the development of smooth scrolling by Carmack and Romero, which was groundbreaking at the time on PC.
It should be noted that John Romero released his own book, Doom Guy, a few years ago which contradicts some of the accounts in Masters of Doom. MoD is probably the more thrilling read and I enjoyed both books, but some of the stories need to be taken with a grain of salt.
I also think Doom Guy is worth a read because it gives a lot more insight into what happened at Ion Storm and how the Daikatana project fell apart. And some important context about the infamous "John Romero's about to make you his bitch" ad (mainly that he really didn't want to publish it at all). But I digress.
Yeah that's confirmed in Masters of Doom as well - sounds like Romero was a bit hesitant about it but Mike Wilson, the marketing guy, pushed him into it.
The underlying mechanics of Carmack's technique is very similar to the full screen smooth scrolling effect on C64 at any speed and distance. It is nowadays referred to as DMA delay.
ELIF: You trick the CPU to display screen data at a different starting point than as designed by the hardware. This is tricky and need to be executed cycle exact.
Here is the explanation in detail together with all major top notch effects. The article is a legend and kind of the bible of doing the most sophisticated effects on C64. Some effects have since then even more and better explained and exploited due to cross platform development possibilities and better tooling, but understanding all mechanics here is a necessity to play a role in the Champions League of C64 demos, besides and also being able to implement the techniques mentioned here:
https://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt
Lovely book. Skimming through it. One thing that might help contextualize it is a brief discussion of the how contemporary hardware like the SNES rendered sprites so efficiently compared to the PC hardware at the time. It's not obvious to modern readers why a PC with significantly more powerful compute capabilities would struggle to keep up with significantly slower Nintendo hardware at the time for sprite rendering.
>It's not obvious to modern readers why a PC with significantly more powerful compute capabilities would struggle to keep up with significantly slower Nintendo hardware at the time for sprite rendering.
To put it briefly, 4th generation and earlier games consoles saved on expensive RAM by not having frame buffers [0]. The CPU wrote a description of how to construct the scene using tiles and sprites to a smaller video ram, then dedicated video hardware converted this to the video signal one line at a time. The whole frame gets rendered from scratch every video refresh, so there's no need for tricks like Commander Keen's adaptive tile refresh. Scrolling at 60 fps (or 50 fps for PAL hardware) is as cheap as changing a single value in video memory. It's like the famous "racing the beam" of the Atari 2600, except less flexible and done by dedicated hardware so you don't tie up the CPU.
On the PC, the CPU writes the actual graphics to a frame buffer, then the graphics card outputs the contents of the frame buffer as the video signal. The naive approach to scrolling requires rewriting the entire frame buffer, so tricks to avoid redundant writes are highly beneficial.
[0] Except for the Atari Lynx, which was a portable system with a screen resolution of only 160×102. I can't think of any other exceptions, but maybe there are more.
this looks like a copy of fabien's site, plus the topic is very related and likely trampolining on his brand :/
Fabien's site is an invaluable resource, but I think I've read it all over the years and he one has post specifically on Commander Keen, and that's focused on just the adaptive tile refresh (https://fabiensanglard.net/ega/). This book is 211 pages on the entire game.
On page 11 this author credits Fabian's excellent analysis of Doom and Wolfenstein as the inspiration to attempt the same for Commander Keen.
> "Fast forward to 2021, I discovered Fabien Sanglard’s website and began reading his Game Engine Black Books on Wolfenstein 3D and Doom. Inspired by those works, I wondered whether I could do something similar for Commander Keen: open up the source code, ex plore the files, and piece together a picture of the overall architecture and the clever tricks used. The style, dimensions, and structure of this book are intentionally similar to Fabien’s Game Engine Black Books, as an homage to those masterpieces."
Just skimming so far, but this book looks like a valuable contribution to the genre of retro game code analysis. Obviously, it will build on the work of others who've done adjacent research. In a page 87 footnote the author refers readers to Fabien's site for detailed instructions on installing a DOSBox and Borland C++ dev environment.
I fail to make the connection.
This content-heavy but minimal design is not unique.
Text inside a centered element, text-heavy but also packed with images, exists from the times of formatinng websites with `<table>` tags in DreamWeaver or Microsoft Frontpage 98.
If you're talking about the highly detailed article, can we not gatekeep this? I want more of that on the internet, not less.
probably worth linking to it, if that's the case.
i think you are referring to this one? https://fabiensanglard.net/
Masters of Doom is a great book on the history of id software, which includes the origins of the development of smooth scrolling by Carmack and Romero, which was groundbreaking at the time on PC.
It should be noted that John Romero released his own book, Doom Guy, a few years ago which contradicts some of the accounts in Masters of Doom. MoD is probably the more thrilling read and I enjoyed both books, but some of the stories need to be taken with a grain of salt.
I also think Doom Guy is worth a read because it gives a lot more insight into what happened at Ion Storm and how the Daikatana project fell apart. And some important context about the infamous "John Romero's about to make you his bitch" ad (mainly that he really didn't want to publish it at all). But I digress.
Yeah that's confirmed in Masters of Doom as well - sounds like Romero was a bit hesitant about it but Mike Wilson, the marketing guy, pushed him into it.
Fun fact for C64 guys:
The underlying mechanics of Carmack's technique is very similar to the full screen smooth scrolling effect on C64 at any speed and distance. It is nowadays referred to as DMA delay.
ELIF: You trick the CPU to display screen data at a different starting point than as designed by the hardware. This is tricky and need to be executed cycle exact.
Here is the explanation in detail together with all major top notch effects. The article is a legend and kind of the bible of doing the most sophisticated effects on C64. Some effects have since then even more and better explained and exploited due to cross platform development possibilities and better tooling, but understanding all mechanics here is a necessity to play a role in the Champions League of C64 demos, besides and also being able to implement the techniques mentioned here: https://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt
If you want to play it you can do that here: https://www.playdosgames.com/play/commander-keen-4
Lovely book. Skimming through it. One thing that might help contextualize it is a brief discussion of the how contemporary hardware like the SNES rendered sprites so efficiently compared to the PC hardware at the time. It's not obvious to modern readers why a PC with significantly more powerful compute capabilities would struggle to keep up with significantly slower Nintendo hardware at the time for sprite rendering.
>It's not obvious to modern readers why a PC with significantly more powerful compute capabilities would struggle to keep up with significantly slower Nintendo hardware at the time for sprite rendering.
To put it briefly, 4th generation and earlier games consoles saved on expensive RAM by not having frame buffers [0]. The CPU wrote a description of how to construct the scene using tiles and sprites to a smaller video ram, then dedicated video hardware converted this to the video signal one line at a time. The whole frame gets rendered from scratch every video refresh, so there's no need for tricks like Commander Keen's adaptive tile refresh. Scrolling at 60 fps (or 50 fps for PAL hardware) is as cheap as changing a single value in video memory. It's like the famous "racing the beam" of the Atari 2600, except less flexible and done by dedicated hardware so you don't tie up the CPU.
On the PC, the CPU writes the actual graphics to a frame buffer, then the graphics card outputs the contents of the frame buffer as the video signal. The naive approach to scrolling requires rewriting the entire frame buffer, so tricks to avoid redundant writes are highly beneficial.
[0] Except for the Atari Lynx, which was a portable system with a screen resolution of only 160×102. I can't think of any other exceptions, but maybe there are more.
Great write up. Reminds me of Cosmodoc, which is similar source but analyzes Cosmo’s Cosmic Adventure instead of Commander Keen.
https://cosmodoc.org
Someone ping Fabien Sanglard! Looks so much like his site!
Of related interest:
Reconstructed Commander Keen 1-3 Source Code
https://pckf.com/viewtopic.php?t=18248 (https://news.ycombinator.com/item?id=46321982)