Game Engine Black Book Postmortem
fabiensanglard.net
fabiensanglard.net
Programming for most of us has moved a long way from the metal our code eventually executes on. And it's quite fun to go real low level and understand at an almost atomic how to make a computer do what you want it to do.
That's why this (and Michael Abrash's earlier Graphics Black Book that served as inspiration for this)is so much fun. As an kid who grew up playing games on these machines at that time it all seemed like magic. With quality documentation and the power of nostalgia you can now fully understand (and appreciate) what the likes of Carmack achieved in the early 90s on these machines and now we too can go in and hack around and achieve the same results.
I hope the book does well and Fabien can do the proposed 486 and Pentium companion editions.
This is a really cool thing with today though - the technical barrier to creating and publishing physical books (and ebooks too of course) is just so so low. Making it financially viable and worth it is another thing. I certainly hope this does well and will buy a physical copy.
As computer performance improvements decelerate, we're starting to see more specialization into particular tech verticals. This specialization makes it harder for people to break into.
For example, it used to be that if you wanted to crunch more data in Excel, you'd just wait six months for the better intel chip. It was faster and easier to do that than write custom software. Now the new chips are only marginally better than the last, and we need to rely on distributed systems linking dozens or hundreds of computers.
A 10 year old kid in the 1990s could easily create and launch a website from scratch, which was the state of the art medium at the time. It will be far more difficult for a 10 year old in the 2010s to grab terabytes of data and process it easily.
What's changed is that it is today even _possible_ "for a 10 year old in the 2010s to grab terabytes of data and process it". Wait a little while for the "easy" part :)
Write HTML, copy to server, press f5/open URL. It doesn't get easier than the 90s in that regard. You didn't even need a framework for that, so ... I'm not so sure.
In many ways I find that easier than dealing with cable companies and their systems.
The comment was about the reduction of progress, which is like talking about derivative functions. The value of the function is the goalpost, and it moves.
I disagree, because i was that 10 year old kid in the 90s who fantasized about having his own website and domain - but had no idea how to go about the domain and the only way i knew for making a website was to keep my computer online all the time. So all i did was to make random "fake" sites in Netscape, pretending to be the real thing :-P.
Today it is so easy it is a no brainer. Of course at the same time, since it is so easy now, nobody is impressed by that anymore :-P.
One thing I never get tired of is taking stuff apart. I can rarely reassemble them, alas, but such is life. I see it as doing my part to ease recycling of electronics. In fact, I let my then 2-yo daughter help me take the family color laser printer apart last year. Great fun, great fun.
Now, a couple of things one can do as a curious adult is buying a simple embedded system such as Atmel-based arduino, TI MSP430 Launchpad, or STM8-based devboard, for just a couple of dollars. Set up a toolchain and a LED blinker project, programming in C (asm is a little bit _too_ low level to start with, while Arduino is a little bit too high).
1. First, I write just the ideas I want to convey, in bullet points. I don't worry too much about the exact phrasing of these ideas, or how they flow together. If I want to put a diagram, I just sketch a quick concept idea on a notebook.
2. Next, I go through and turn all the ideas into readable paragraphs. This is easy because I know what I'm going to say, I just have to figure out exactly how I want to say it.
3. In the last step, I worry about formatting, like making sure the fonts are consistent, the size and margins on images, etc. This is a purely mechanical task and it's nice not worrying about it when writing.
The core parts of LaTeX are very simple to learn, and you get to produce high-quality documents fairly easily thanks to its sane defaults. However, once you want to get a bit advanced, all its abstractions leak and it's impossible to comprehend anything without knowing implementation details.
I already have the wolf3d source code building in dosbox with borland c++ 3.1. Great fun awaits!
Thanks for finishing it Fabien.
Hey Fabien, if you read this, you're super cool and you write amazing articles.
He put years into making this book, you want to read it ("love"), but you won't buy it because he wants to protect his labor of love? (Not interested in arguments why DRM is ineffectual as it has no bearing on this).
Buy the paperback. I just did. If you would really and truly "love" to read it, then buy it.
But really, is the DRM just an excuse? A reason not to part with $32 dollars? A way to virtue signal that you are appreciative of his work without actually showing that appreciation in the only way that matters?
(I didn't mean for this argument to become a larger criticism of how people act to new products and services in general; but I guess that's what it has become).
Or I can buy a single book that takes up more room than my entire library combined. No thanks.
As far as DRM goes, people are going to pirate it, and I'm not. But I also don't want to pay money to get a worse, more limited experience than those who pirate it. If the DRM prevents me from doing things that would be trivial for a pirate, something has gone horribly wrong. Yet that's our standard now.
The "solution" is to pay for the legitimate version and then get the pirate anyway. I often do that with stuff that can't contain malware/viruses (such as movies and tv shows).
How about we as a society realize how backwards this whole system is and just drop DRM?
I have ethical principles. And one of them is to avoid buying DRMed stuff - even if I loved to read it.
> Buy the paperback. I just did. If you would really and truly "love" to read it, then buy it.
In former days when I simply had no money, I pirated movies. Now I have sufficient money to buy a Bluray disc. But I won't (but won't pirate either). Since I will strongly avoid buying DRMed stuff and don't want to finance companies who DRM their products. If they put out DRMed stuff, they don't want me as a customer and don't want my money - a clear message to me that I respect as a potential customer.
DRM can be a big enough reason to not buy something. I once bought a game, only to realize I need a Games For Windows Live account to play it, then promptly pirated a "DRM free" version and played it without GFWL because I don't want another gaming service.
It would be nice though to be able to buy it in an unrestricted format in the first place.
I sometimes wonder if DRM is more successful at turning potential thieves into customers or turning away potential customers.
I hate drm but I want to put money into things I want more of. So I held my nose and paid for the eBook. I hope drm free emerges later though.
Source https://twitter.com/fabynou/status/905856105003155457 and https://twitter.com/fabynou/status/905857276174413824
So you seriously want more of DRM? Buying something despite DRM gives the market a clear signal that DRM is not so bad after all.
I dislike DRM as well, but as long as I could easily remove it I was okay with it.
I've bought a lot of ebooks from Amazon for my Kindle. Now that their most recent DRM scheme (KFX) has been uncracked for a long time, I'm having second thoughts about ebooks.
Tell the author that you despise DRM. And as soon as a DRM-free version appears, buy. This sends a clear signal to the market.
On the other hand: As long as the author only sells a DRM-tainted electronic version, he gives a clear signal to the world that he abhors customers who are against DRM. Why should I give him my money then (or more money than necessary)?
[1] https://poseidon01.ssrn.com/delivery.php?ID=5550640311191070...
I'm guessing it will be up within a few days.
You don't have to guess, you helped make it a bit of a flame-fest. Asking for a DRM-free version is not unreasonable (they're quite common among self-published technical books), you started accusing the poster of being a stingy liar.
A way to virtue signal
Just 'signal' or 'suggest' or simply 'say' would do here. 'Virtue-signal' is a way to vice-signal 'I am a pompous butthead who is a accusing you of being a fraud. Good day, Sir!'.
I'll buy this book in a heartbeat if either of those two acronyms goes away. Ideologically the DRM should go, but practically I'd rather the PDF would go.
Definitely without PDF, audiences would not benefit from the very careful editing that has been done, plus other tools associated to fixed-layout renderers, like freehand drawing.
No audience benefits from DRM, but definitely a part of it does from the PDF format.
I understand the benefits of PDF. My Kindle Voyage does not. If I had a 13" eink display with frontlighting, plenty of storage, the ability to read all my books that I've purchased, in slim profile, with low weight, then I'd love PDFs. But based on what's available and what I'm willing to spend, I've settled on the Voyage, which is perfect for my needs in all respects apart from size. Which means PDF is right out.
Of course, EPUB makes sense for allowing reading on a variety of screen sizes/devices, but expecting PDF to disappear ignores important use cases.
I typically prefer kindle (which I read on a kindle paperwhite and occasionally on iPad, although I prefer PDF here), but if I'm reading on laptop or desktop, I prefer PDF. When possible, I like to have both Kindle and PDF formatted books, so that I can read whatever I prefer for the device I'm currently using.
But, besides all of that, if I can only choose a single of those formats, I would choose PDF.
What formats would you prefer? Serious question.
My own position on PDF is that it has the central problem that it is a very complicated format for which it is error-prone to write a sufficiently compliant implementation. But most alternative ebook formats also have a rather complicated specification, so most common alternative ebook formats arre replacing one evil by another.
Most of that likely has to do with visibility — Kindle and Amazon are highly-used storefronts and platforms. But part of it is also I think fewer people actually do want a PDF version.
PDF does look much better than EPUB — it has the fonts and layout that I carefully crafted for the print edition. But it's less flexible and responsible to the device you're viewing it on. That quickly takes its toll. A beautiful page layout that you have to keep pinch-zooming and scrolling around on to see everything isn't really "beautiful" when you consider the whole user experience.
Thanks for both providing that resource and for making it available in whichever I bought, Kindle or EPUB. The website is also very pleasant to read, and I like the way you handled asides across breakpoints.
I am very surprised though, that there are essentially no large tablets on the market, as I think 12.* is the minimum for comfortable reading, and I assume there is plenty of people using tablets for reading.
I understand that cramming a Windows-capable machine in 13.5 inches and 700gr is reserved to high end machines, but I wonder why they don't do that with ARM CPUs (I'm aware of the Chuwi, but it's 1.1 kg, and 700 is barely the limit for reading for hours).
But the "color" books like the Red Book or the Orange Book have other actual names, and people just gave them the "color" name because they were classic references. It's like this one just presumes that it's as important as the others and has to have a classic name.
Disclaimer: This complaint is obviously not serious.
It's more likely a reference to the Michael Abrash games programming black book (a big, thick, book of finicky assembly-level hacks for general use in the DOS era), which I'm sure is an inspiration for this work, and this one, as with Sangard's blog, could be seen to be a game-specific spiritual successor.
How pretentious that is, I'll leave you to figure out.
And the 'red book' of CD audio, the spec originally was in a red binder.
Interestingly, the vulkan book is also red
also: graphics red books are more like anotated standards
In this case, I think the title is well-chosen.