AI-powered
podcast player
Listen to all your favourite podcasts with AI-powered features
A good programmer should prioritize providing value to users. This means creating products or solutions that improve the lives of individuals, whether through solving problems or providing entertainment. User value should be the top priority, and programmers should focus on delivering maximum value with the least effort. While metrics and data can help assess user value, it's also important to have a holistic vision and consider the experience and satisfaction of users.
John Carmack believes in working hard and putting in long hours, but within reasonable limits. He used to work around 60 hours a week, often in a 10-hour day, six days a week. He found a consistent schedule that worked for him and allowed him to be productive. While he experimented with different routines, having a dedicated time for uninterrupted work was important to him. He also values getting enough sleep and believes that working longer can lead to higher productivity, as long as it doesn't result in diminishing returns or burnout.
Finding work-life balance is a personal journey, and what works for one person may not work for another. Carmack acknowledges that different individuals have different needs and priorities in their lives. It's important to recognize that work-life balance is not a one-size-fits-all concept. While Carmack has been able to balance work and personal life by having multiple interesting projects to choose from, he acknowledges that everyone has different needs in achieving a healthy work-life balance.
During the early days of game development, the team at Softdisk Publishing, including John Romero and Lane Roth, wanted to create games with scrolling capabilities similar to console games. Through experimentation and creative problem-solving, they discovered two different approaches to achieve smooth scrolling on the PC. The first technique, called adaptive tile refresh, allowed for smooth scrolling within a limited tile buffer. By only redrawing tiles that changed, they achieved decent frame rates. This approach proved successful for creating games that gave the illusion of scrolling worlds. The team later presented a demo to Scott Miller at Apogee Software, who recognized the potential and began the shareware distribution model.
Apogee Software, led by Scott Miller, introduced the shareware model, which transformed the way software was distributed. Instead of fixed prices, shareware allowed users to try out a portion of the software for free, and they could voluntarily pay to access additional content or the complete game. Apogee split their games into trilogies, with the first installment acting as a demo. If users enjoyed the initial part, they could purchase the complete trilogy. This innovative approach garnered widespread success, as users felt compelled to support the developers after enjoying the initial shareware experience. The Softdisk team partnered with Apogee to distribute their games and witnessed the positive impact of the shareware model.
The Softdisk team, including John Romero and Tom Hall, transitioned from contract programming to game development after discovering the immense potential of creating new and innovative games. Inspired by console games like Super Mario Brothers, they were determined to bring scrolling capabilities to PC games. They successfully developed their own scrolling techniques, which caught the attention of Scott Miller at Apogee Software. This significant turning point led to the creation of their own game development company and the subsequent success of iconic titles like Wolfenstein 3D, Doom, and Quake.
Looking back, it would have been more effective to split the innovations of Quake into two phases. The first phase would focus on multiplayer and the use of the Doom engine, while the second phase would introduce the fully 3D engine with arbitrary angles. This approach would have resulted in a Doom-like game with Quake's multiplayer capabilities, followed by a more advanced and fully 3D experience. Splitting the development into two games would have allowed for quicker iterations and likely satisfied more players.
BSP trees were an important technology used in Quake for organizing and rendering the game world. They provided efficient ways of organizing and sorting the objects in the game, allowing for fast rendering and visibility calculations. The tree structure allowed for the ordering of objects from back to front, ensuring correct rendering and preventing hidden surface problems. However, it should be noted that Quake's competitors, like Duke Nukem 3D, used different technologies such as the Build engine developed by Ken Silverman.
The development of Quake posed numerous technical challenges, especially with the introduction of a fully 3D engine and multiplayer capabilities. One of the difficulties encountered was the need to optimize the rendering process to achieve smooth performance on different hardware platforms. Additionally, handling complex geometry, lighting models, and player movement in a 3D world required significant programming efforts. The team had to balance the desire for new features and capabilities while ensuring the game could run efficiently on existing hardware. Despite the challenges faced, Quake eventually emerged as a groundbreaking game that set new standards for the first-person shooter genre.
Creating a compelling, immersive VR experience that surpasses the real world is essential. The goal is to make the VR world better than the real world, offering unique and accessible experiences. While challenges remain, such as latency and usability, progress is being made. The VR experience should be affordable, user-friendly, and seamless, enabling effortless meetings and interactions. The ultimate vision is for VR to provide a superior alternative to the physical world.
Large tech companies, despite their vast resources, often struggle to maintain efficiency and innovative thinking. Bureaucracy, risk aversion, and a lack of freedom to pursue out-of-the-box ideas can hinder progress. Encouraging young engineers to think big, fostering an environment that supports wild ideas, and empowering individuals to take risks can unlock innovation and drive change within large organizations.
John Carmack holds a great deal of respect for Elon Musk, recognizing his commitment and passion. Carmack admires Musk's engineering skills, his dedication to the electric car industry, space exploration, and other innovative ventures. Both Carmack and Musk share a similar sensibility, calling out inefficiencies and identifying opportunities in different technologies. Despite their different backgrounds, Carmack and Musk find common ground in challenging the status quo and pursuing groundbreaking solutions.
The speaker discusses the possibility of self-driving cars becoming a common mode of transportation in major cities by 2030. Despite past delays and skeptics, the speaker believes that the large number of credible companies working on self-driving technology, along with the potential to save thousands of lives each year, make the eventual success of self-driving cars likely. The speaker acknowledges the challenges of safety and the criticism surrounding incidents involving self-driving cars, but emphasizes the value of autonomous vehicles in reducing accidents caused by human error.
The speaker shares optimism about the development of Artificial General Intelligence (AGI) and predicts that signs of AGI will emerge by 2030. While many experts may underestimate the progress towards AGI, the speaker believes that important insights for AGI may already exist in the vast literature of today. The speaker discusses the possibility of AGI having a small number of key insights that can be implemented through a relatively small codebase. The speaker also highlights the potential benefits of AGI, such as assisting in tasks, simulating human-like interactions, and enhancing remote work capabilities.
The speaker believes that a fast takeoff for AGI is unlikely due to practical constraints. Building the necessary infrastructure, such as data centers and specialized systems, takes time and cannot be achieved instantaneously. Additionally, the speaker emphasizes that the idea of AGI escaping onto the internet and taking over other systems is implausible, as there are limitations to network connectivity and resource availability. While the core code for AGI may fit on a thumb drive, deploying it still requires the right data center and life experience curriculum.
The speaker encourages young people to pursue their passions, embrace curiosity, and develop a deep understanding of their field of interest. They highlight the value of becoming a craftsman, delving into the layers and complexities of a subject to make meaningful contributions. The speaker also shares their own approach of being motivated by the joy of learning and exploring, rather than contemplating existential questions or concerns about mortality. They emphasize the importance of focused hard work and constantly taking the next step toward achieving goals.
John Carmack is a legendary programmer, co-founder of id Software, and lead programmer of many revolutionary video games including Wolfenstein 3D, Doom, Quake, and the Commander Keen series. He is also the founder of Armadillo Aerospace, and for many years the CTO of Oculus VR. Please support this podcast by checking out our sponsors:
– InsideTracker: https://insidetracker.com/lex to get 20% off
– Indeed: https://indeed.com/lex to get $75 credit
– Blinkist: https://blinkist.com/lex and use code LEX to get 25% off premium
– Eight Sleep: https://www.eightsleep.com/lex and use code LEX to get special savings
– Athletic Greens: https://athleticgreens.com/lex and use code LEX to get 1 month of fish oil
EPISODE LINKS:
John’s Twitter: https://twitter.com/ID_AA_Carmack
Books mentioned:
Hackers: Heroes of the Computer Revolution: https://amzn.to/3SkNZER
Game Engine Black Book Wolfenstein 3D: https://amzn.to/3QlOqg8
PODCAST INFO:
Podcast website: https://lexfridman.com/podcast
Apple Podcasts: https://apple.co/2lwqZIr
Spotify: https://spoti.fi/2nEwCF8
RSS: https://lexfridman.com/feed/podcast/
YouTube Full Episodes: https://youtube.com/lexfridman
YouTube Clips: https://youtube.com/lexclips
SUPPORT & CONNECT:
– Check out the sponsors above, it’s the best way to support this podcast
– Support on Patreon: https://www.patreon.com/lexfridman
– Twitter: https://twitter.com/lexfridman
– Instagram: https://www.instagram.com/lexfridman
– LinkedIn: https://www.linkedin.com/in/lexfridman
– Facebook: https://www.facebook.com/lexfridman
– Medium: https://medium.com/@lexfridman
OUTLINE:
Here’s the timestamps for the episode. On some podcast players you should be able to click the timestamp to jump to that time.
(00:00) – Introduction
(09:49) – Programming languages
(40:53) – Modern programming
(50:55) – Day in the life
(58:45) – Hard work
(1:01:58) – Pizza and Diet Coke
(1:04:43) – Setup
(1:30:01) – id Software
(2:02:50) – Commander Keen
(2:09:36) – Hacker ethic
(2:17:16) – Wolfenstein 3D
(2:37:14) – Doom
(2:51:34) – Quake
(3:15:55) – John Romero
(3:23:42) – Metaverse
(3:52:04) – Elon Musk
(3:57:59) – Mars
(4:07:01) – Nuclear energy
(4:10:39) – AGI
(4:57:51) – Andrej Karpathy
(5:00:50) – Martial arts
(5:09:49) – Advice for young people
(5:18:49) – Meaning of life
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode