Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

91% Positive

Analyzed from 2056 words in the discussion.

Trending Topics

#fabien#book#https#hardware#more#keen#similar#books#com#engine

Discussion (44 Comments)Read Original on HackerNews

evilturnip•about 5 hours ago
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.
_the_inflator•about 5 hours ago
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

bonzini•about 1 hour ago
To clarify, it does not need to be executed cycle exact on the IBM PC, only on the C64.
deaddodo•about 1 hour ago
I was going to say, smooth scrolling is one place where VGA was fairly simple to work with, since it didn’t have to deal with chunky graphics/bitplanes or specific timing tricks.

In fact, Carmack specifically states that packed pixels were the impetus for id’s side scrolling experiments that led to Commander Keen and its ilk.

lazystar•about 1 hour ago
> 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.

heh, is there a new meaning for ELIF? im not sure that there are many 5 year olds who would understand that ;-)

kevindamm•about 1 hour ago
ELI5: explain like I'm five,

ELIF: explain like I'm forty.

hbn•about 4 hours ago
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.

vunderba•about 3 hours ago
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.
hbn•about 3 hours ago
Ah I couldn't remember if that was only confirmed in Doom Guy. Regardless, it's still worth a read.
LarsDu88•about 4 hours ago
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.
mrob•about 3 hours ago
>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.

wk_end•about 3 hours ago
I get what you're saying, but the comparison to "racing the beam" is maybe a little misleading, because the point is that you aren't "racing" the beam. Rather, the system is operating in perfect lockstep with the beam. From the software perspective, you set the scene up and then sit back while it draws. And then in the abstract and from the hardware's perspective it's not even one line at a time, it's one dot at a time.
mrob•about 2 hours ago
>Rather, the system is operating in perfect lockstep with the beam.

That's the same as the Atari 2600. It just occurred to me that the name "racing the beam" is misleading because you can't be too fast either. "Matching the beam" would be a better name. My point is the graphics hardware in both the 2600 and in tile+sprite consoles assembles the graphics just before it's sent to the video output without buffering the whole frame. The main difference is the 2600 graphics hardware is typically reconfigured every line while the later consoles' graphics hardware is typically reconfigured every frame (although re-configuring between lines is usually also possible, and some games left it unchanged on some screen refreshes to save CPU time at the expense of lowering frame rate).

>from the hardware's perspective it's not even one line at a time, it's one dot at a time.

Mostly true, but I tried to make the description generic to as many systems as possible, so "line" is IMO more broadly accurate because a line is composed of dots. The Neo Geo is a tile + sprite system too, and it renders to line buffers.

matheusmoreira•15 minutes ago
These videos do an excellent job at explaining how the SNES works:

https://www.youtube.com/playlist?list=PLHQ0utQyFw5KCcj1ljIhE...

woutersf•about 4 hours ago
If you want to play it you can do that here: https://www.playdosgames.com/play/commander-keen-4
LarsDu88•about 4 hours ago
Someone ping Fabien Sanglard! Looks so much like his site!
ndiddy•about 1 hour ago
Wow I assumed it was one of his books before I saw your comment. Thanks for pointing that out!
charlietran•about 3 hours ago
Author's note from the book:

"...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, explore 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. To give it a personal twist, I inverted the title and cover to white."

fabiensanglard•about 3 hours ago
> To give it a personal twist, I inverted the title and cover to white.

That is a great idea.

LarsDu88•about 2 hours ago
Imitation is the greatest form of flattery!

I suppose there's still Quake 3 Arena and DOOM3 to complete the full "John Carmack" early 90s to early 2000s technical overview series.

Or maybe something with the Sega Saturn. I heard the Sonic X-treme team worked so hard to make a 3d Sonic game for that platform in the mid 90s that multiple team members had to go on medical leave!

sasas•about 2 hours ago
How do you feel about this book mirroring your prior art in both format and structure? Were you consulted beforehand?

[EDIT] - I see in the Keen book's source git commit logs that you reviewed and assisted with proof reading beforehand, so may we assume that this is all above board and sanctioned by you?

bel8•about 3 hours ago
And his site looks like another thousand, as I'm sure he knows.

We consume his site for the content, not for the minimalistic design that exist since the inception of the universe.

sasas•about 2 hours ago
It appears the author is leveraging Fabien's branding by copying not only the style of post but more importantly the formatting and style of Fabien's books. Even structurally the book appears quite similar.

If you didn't double check the author while skimming this Keen book, you may well be mistaken that it was written by Fabien.

I took a quick skim of the content, it looks great - tempted to purchase a copy to support the author for their efforts (and have it sit on the bookshelf next to two other very similar looking books...) but need to sit on this for a while.

Maybe I'm overthinking this. Would like to hear Fabien's take on the situation.

[EDIT] It looks that the Keen book author copied and pasted direct sections[1] out of Fabien's book's TeX[2].

[EDIT] The git commit history has comments that indicate that Fabien reviewed the book, e.g. "updated all chapters after feedback Fabien" and "Proofread Fabien Sanglard en hardcopy review", so perhaps this is all sanctioned.

[1] https://github.com/bsmits74/Keen_White_Papers/blob/master/sr...

[2] https://github.com/fabiensanglard/gebbdoom/blob/master/src/b...

bombcar•6 minutes ago
He responds to this thread here: https://news.ycombinator.com/item?id=48546779
pan69•about 4 hours ago
Great write up. Reminds me of Cosmodoc, which is similar source but analyzes Cosmo’s Cosmic Adventure instead of Commander Keen.

https://cosmodoc.org

bluedino•about 2 hours ago
Would love to hear about the other Apogee and Epic games, like Epic Pinball, Tyrain, Halloween Harry, Jill of the Jungle, Duke Nukem...
to11mtm•39 minutes ago
> Tyrain

... Well, we do at least have OpenTyrian... (Edited to add; And OpenTyrian2000)

> Epic Pinball

Best I can find for Epic Pinball is an old thread on Pinball Fantasies [0] but I think it almost counts cause there was shared dev work between the two...

> Halloween Harry

TBH that one would be fairly interesting, especially compared to Duke Nukem 2 (Part of me thinks they might be similar/same engine)

> Jill of the Jungle

That one honestly WOULD be a fun one to look at... Best I can find is Xargon [1] but part of me always got a vibe that Xargon was some semi-upgraded Jill engine...

> Duke Nukem

TBH Duke Nukem '1' would not be that exciting to me. AFAIR it's mostly an adapted CK1-3 engine, letter-boxed with status window to make it easier to calc the redraw.

Duke Nukem 2, is far more interesting since it's a different, more powerful engine (VGA, digital audio support, but AFAIR only required a 286).

[0] - https://news.ycombinator.com/item?id=28667945

[1] - https://github.com/dos-games/vanilla-xargon

kridsdale1•12 minutes ago
IIRC (from being a kid) Harry was 256 color and DN2 wasn’t quite. Also it felt like it had much better frame rate. But I’m sure that could be engine evolution too. Interesting, I hadn’t ever thought of the connection before.

Though the “hot babes stuck in alien pods” from Harry showed up as a central plot point in DN3D.

jzelinskie•about 2 hours ago
Sorry for the "asking for more"-style comment, but it would be amazing if this came in epub and not just PDF.
Waterluvian•about 2 hours ago
Given its open source in latex format, it should be pretty easy to render it in any format that isn’t asking for significant decision-making on how to structure and format it.

Ie. Rendering to PDF or HTML would be pretty straightforward. Rendering to video, audio, or as a chocolate bar would require more authorship. Would epub be much more work?

ChrisArchitect•about 4 hours ago
Of related interest:

Reconstructed Commander Keen 1-3 Source Code

https://pckf.com/viewtopic.php?t=18248 (https://news.ycombinator.com/item?id=46321982)

doctorpangloss•about 3 hours ago
Have LLMs made all arcana about games engineering meaningless?
ForHackernews•about 3 hours ago
Another game from the same era: https://cosmodoc.org/
nnnnico•about 4 hours ago
this looks like a copy of fabien's site, plus the topic is very related and likely trampolining on his brand :/
dang•about 3 hours ago
I can understand the feeling of loyalty to a widely admired figure (and deservedly so!) but this isn't a great way to respond to someone else's work. Unless there's some evidence of ill intent, why not just classify it as an homage?

"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

"Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith."

https://news.ycombinator.com/newsguidelines.html

mrandish•about 3 hours ago
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 the first page 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.

lelandfe•about 3 hours ago
57 lines of CSS and the only distinguishing characteristic, the use of Deja Vu Sans Mono, isn't present.

This is trampolining on his "brand" as much as my text editor is

sasas•about 2 hours ago
The book's source has verbatim copy and pasted TeX ripped from Fabien's books which was licensed under GPL.
lelandfe•about 1 hour ago
They should address that, then. It's still not trampolining on a so-called brand, which as far as I can tell does not exist.
bel8•about 3 hours ago
First, shallow dismissals are against HN guidelines, for a good reason.

And 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.

BigTTYGothGF•about 3 hours ago
From the preface: > 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, explore 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. To give it a personal twist, I inverted the title and cover to white.
wk_end•about 3 hours ago
Yeesh, until I saw your comment I thought this was Fabien. I'm sure it's not intentional but this goes beyond "homage" and into "deceptive". The replies to this claiming to not see what the issue is are inexplicable to me.

The work on the book itself looks fantastic, so it's a shame about the site design.

sasas•4 minutes ago
It's often helpful not to immediately assume bad faith without further enquiry. It appears that Fabien had reviewed the book beforehand and he has reposted John Carmack's tweet[1] linking the book.

[1] https://x.com/ID_AA_Carmack/status/2066577536339923091

Advertisement