Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture (book review)

Masters of Doom is a 2003 book by David Kushner about John Carmack and John Romero cofounded id Software and produced video-games, including Doom and Quake.  

The book was read by Will Wheaton. I  retrospectively recognized his voice from the "Ready Player One" book. He has a very enjoyable and engaging reading style, very close to voice acting.

This was an OK book. It is engaging and worth a read if you don't know much about Carmack and Romero and early days of PC video gaming scene. Unfortunately the book lacks depth, and remains superficial in its analysis and observations. The characters covered, although interesting, come across always as one dimensional.  

One thing that stands out in the book is John Carmack's legendary focusing capability. Carmack is a learning machine. He can take off a couple weeks to master a new sub-area. In the book, he was quoted as saying that he likes the process [of learning and developing games], not just the end result. He took pride in writing clean code and refactoring complexity in a modular way, and he won't stop until he is satisfied with the quality of his craftsmanship.

Carmack has pioneered or popularized the use of many techniques in computer graphics, including "adaptive tile refresh" for Commander Keen, ray casting for Hovertank 3-D, Catacomb 3-D, and Wolfenstein 3-D, binary space partitioning which Doom became the first game to use, surface caching which he invented for Quake, Carmack's Reverse (formally known as z-fail stencil shadows) which he devised for Doom 3, and MegaTexture technology, first used in Enemy Territory: Quake Wars.

Romero is as interesting a character as Carmack. In the book, he comes off as a particularly shallow and hubris afflicted character. He has creativity and considerable programming skill, but he has been presented as someone who did not understand how much technology-dependent a business game development is. After Carmack fired Romero from id Software, it was clear that the new company Romero is starting was doomed. He was putting technology in second place, and wasting money on the most expensive and pompous office lease and renovations. There must be more than hubris in place, but in any case, Romero didn't accomplish any notable work after splitting ways with Carmack.

The book also introduces several other characters, but again it doesn't delve deeper exploring any of them. What is clear is that all of these characters are in some way or another troubled souls and outcasts. Revenge of the nerds was pretty topical for 1980s. (After 2015, unfortunately, the movie on vision became the revenge of the herds.)

In the early 1990s, these young, inexperienced, and mostly unschooled guys were on fire. They were churning one successful game after another. I think this was because PC programming was relatively new, and there were a lot of low hanging fruit. They were able to master things and produce breakthroughs on their own quickly without much support. 

After a decade their progress slowed down. Things got complicated, the games started taking many folds more time to develop. It got very hard to produce revolutionary breakthroughs as all the low hanging fruits are gone, and complexity started to reign. Our central challenge as computer scientists is to harness complexity and not to make a mess of it.

Today teenagers have a lot of resources on YouTube and Internet to support themselves as they learn programming technologies. In spite of this it is very hard now to master things quickly and get to the cutting edge to contribute, because things are much much more complicated in many spaces. There are no low hanging fruits in established domains any more. Producing new breakthroughs require a lot of effort, focus, and teamwork. Of course with innovation, there is no last nugget. Any new invention opens up dozens of new invention possibilities. 

Comments

Popular posts from this blog

Hints for Distributed Systems Design

Learning about distributed systems: where to start?

Making database systems usable

Looming Liability Machines (LLMs)

Foundational distributed systems papers

Advice to the young

Linearizability: A Correctness Condition for Concurrent Objects

Understanding the Performance Implications of Storage-Disaggregated Databases

Scalable OLTP in the Cloud: What’s the BIG DEAL?

Designing Data Intensive Applications (DDIA) Book