Jonathan Blow
On this episode of On the Metal, we interview legendary game designer and programmer Jonathan Blow. Join along as Jonathan takes us from collision detection on the Atari 800, through porting Doom to SGI's famous set-top box, starting a game company at the worst possible time, his adventures with the (in)famous Cell processor, making several hit games -- and his more recent experiences with a new programming language of his own creation.
You can find Jonathan on Twitter at https://twitter.com/Jonathan_Blow.
Some of the highlights of the show include:
Some of the highlights of the show include:
- The Witness: https://en.wikipedia.org/wiki/The_Witness_(2016_video_game)
- Prince of Persia: https://en.wikipedia.org/wiki/Prince_of_Persia_(1989_video_game)
- Prince of Persia source code: https://github.com/jmechner/Prince-of-Persia-Apple-II
- Sprite: https://en.wikipedia.org/wiki/Sprite_(computer_graphics)
- Atari 800: https://en.wikipedia.org/wiki/Atari_8-bit_family
- Atari CTIA (chip performing, among many other things, collision detection for the Atari 800): https://en.wikipedia.org/wiki/CTIA_and_GTIA
- Commodore 64: https://en.wikipedia.org/wiki/Commodore_64
- VIC-II (CTIA-equivalent chip found in the C64): https://en.wikipedia.org/wiki/MOS_Technology_VIC-II
- Skeletal animation: https://en.wikipedia.org/wiki/Skeletal_animation
- GPGPU: https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units
- GeForce 2080 Ti: https://en.wikipedia.org/wiki/GeForce_20_series
- Cell microprocessor: https://en.wikipedia.org/wiki/Cell_(microprocessor)
- Dennard scaling: https://en.wikipedia.org/wiki/Dennard_scaling
- Amdahl's Law: https://en.wikipedia.org/wiki/Amdahl%27s_law
- Embarrassingly parallel: https://en.wikipedia.org/wiki/Embarrassingly_parallel
- Client-side prediction: https://en.wikipedia.org/wiki/Client-side_prediction
- Particle system: https://en.wikipedia.org/wiki/Particle_system
- Minecraft: https://en.wikipedia.org/wiki/Minecraft
- Red Dead Redemption 2: https://en.wikipedia.org/wiki/Red_Dead_Redemption_2
- Rewinding time to address lag: https://en.wikipedia.org/wiki/Lag#Rewind_time
- Chronostasis (the illusion of time standing still after eye movement): https://en.wikipedia.org/wiki/Chronostasis
- Counter-strike: https://en.wikipedia.org/wiki/Counter-Strike
- SimCity: https://en.wikipedia.org/wiki/SimCity
- Trinity: https://en.wikipedia.org/wiki/Trinity_(video_game)
- Brian Moriarty: https://en.wikipedia.org/wiki/Brian_Moriarty
- Infocom: https://en.wikipedia.org/wiki/Infocom
- Lost Treasures of Infocom: https://en.wikipedia.org/wiki/The_Lost_Treasures_of_Infocom
- Netrek: https://en.wikipedia.org/wiki/Netrek
- Apollo Computer: https://en.wikipedia.org/wiki/Apollo_Computer
- Silicon Graphics (SGI): https://en.wikipedia.org/wiki/Silicon_Graphics
- Time Warner's "Full Service Network" (SGI Orlando project): https://www.nytimes.com/1994/12/12/business/time-warner-s-time-machine-for-future-video.html
- Netscape Communications: https://en.wikipedia.org/wiki/Netscape
- Doom: https://en.wikipedia.org/wiki/Doom_(1993_video_game)
- Wolfenstein 3D: https://en.wikipedia.org/wiki/Wolfenstein_3D
- Ultima series: https://en.wikipedia.org/wiki/Ultima_(series)
- SGI engineers transferred to Nvidia, ca. 1999: https://www.eetimes.com/sgi-graphics-team-moves-to-nvidia/
- Quake: https://en.wikipedia.org/wiki/Quake_(video_game)
- Quake source code: https://github.com/id-Software/Quake
- John Carmack: https://en.wikipedia.org/wiki/John_Carmack
- Michael Abrash: https://en.wikipedia.org/wiki/Michael_Abrash
- Total Entertainment Network: https://en.wikipedia.org/wiki/Total_Entertainment_Network
- boo.com: https://en.wikipedia.org/wiki/Boo.com
- Braid: https://en.wikipedia.org/wiki/Braid_(video_game)
- SIMD: https://en.wikipedia.org/wiki/SIMD
- Pentium U-pipe and V-pipe: https://en.wikichip.org/w/index.php?title=File:24281603.pdf&page=8
- Data-oriented design: https://en.wikipedia.org/wiki/Data-oriented_design
- Jonathan's rant on Rust: https://www.youtube.com/watch?v=4t1K66dMhWk
- Catherine West's closing keynote at RustConf 2018: https://www.youtube.com/watch?v=aKLntZcp27M
- JAI language: https://en.wikipedia.org/wiki/Jonathan_Blow#JAI_language
- "Worse is better" and the "MIT approach": https://en.wikipedia.org/wiki/Worse_is_better
- Smart pointer: https://en.wikipedia.org/wiki/Smart_pointer
- D language: https://en.wikipedia.org/wiki/D_(programming_language)
- Entity-component-system: https://en.wikipedia.org/wiki/Entity_component_system
- Jonathan's talk "Preventing the Collapse of Civilization": https://www.youtube.com/watch?v=pW-SOdj4Kkk
- Tcl: https://en.wikipedia.org/wiki/Tcl
- Dropbox's Python 2 to Python 3 migration: https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one-of-the-largest-python-3-migrations-ever/
- Resource acquisition is initialization (RAII): https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization
- Microkernels: https://en.wikipedia.org/wiki/Microkernel
- Anders Hejlsberg: https://en.wikipedia.org/wiki/Anders_Hejlsberg
- Dynamic linking: https://en.wikipedia.org/wiki/Dynamic_linker
- Hygienic macros: https://en.wikipedia.org/wiki/Hygienic_macro
- DWARF: https://en.wikipedia.org/wiki/DWARF
- Unix philosophy: https://en.wikipedia.org/wiki/Unix_philosophy