SlideShare una empresa de Scribd logo
1 de 102
Descargar para leer sin conexión
The Early Days of id Software
John Romero @romero
Madrid | November 29 - 30, 2018
I D S O F T WA R E ’ S
E A R LY D AY S
A S T O L D B Y J O H N R O M E R O
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
Inside Out Software
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Carmack Adrian Carmack(not related!)
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
Me
John
This is John’s Dungeons and Dragons
table where we played all our sessions
NES with SMB3 running on it and
an Advantage joystickThe 1st level
of our demo
Cheap
chairs
386/33s from
Softdisk
Eraser fluid
Whiteboard
DeluxePaint II
with tiles
NES with SMB3 running and
Advantage joystick on a 13-channel
TV set. VCR under NES.
More cheap chairs
Bedsheet used
as tablecloth
Founded February 1, 1991
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“No prototypes. Just make the
game. Polish as you go. Don’t
depend on polish happening
later. Always maintain
constantly shippable code.
QUICK STORY!
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“It’s incredibly important that
your game can always be run
by your team. Bulletproof
your engine by providing
defaults upon load failure.
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“Keep your code absolutely
simple. Keep looking at your
functions and figure out how
you can simplify further.
S TA G E 2
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“Great tools help make great
games. Spend as much time
on tools as possible.
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“We are our own best testing
team and should never allow
anyone else to experience
bugs or see the game crash.
Don’t waste others’ time. Test
thoroughly before checking in
your code.
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“As soon as you see a bug,
you fix it. Do not continue on.
If you don’t fix your bugs your
new code will be built on a
buggy codebase and ensure
an unstable foundation.
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“Use a development system
that is superior to your target.
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
QUICK STORY!
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
• at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i want
an inventory system in a medieval version of DOOM would play. it turned out great 

• at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i wan
an inventory system in a medieval version of DOOM would play. it turned out great 

• at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i want
an inventory system in a medieval version of DOOM would play. it turned out great 

• at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i wan
an inventory system in a medieval version of DOOM would play. it turned out great 

John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“Write your code for this game
only – not for a future game.
You’re going to be writing
new code later because you’ll
be smarter.
• at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i want
an inventory system in a medieval version of DOOM would play. it turned out great 

John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
QUICK STORY!
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
“Encapsulate functionality to
ensure design consistency.
This minimizes mistakes and
saves design time.
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
QUICK STORY!
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018
Turbo Mode
28 Games
5.5 years
Fewer than 10 developers
“Try to code transparently. Tell your
lead and peers exactly how you
are going to solve your current
task and get feedback and advice.
Do not treat game programming
like each coder is a black box. The
project could go off the rails and
cause delays.
“Programming is a creative art
form based in logic. Every
programmer is different and
will code differently. It’s the
output that matters.
The Early Days of id Software
John Romero @romero
Madrid | November 29 - 30, 2018
Thank You.
Instagram: @theromero
Twitter: @romero
john@romero.com
S I G N E D B Y R O M E R O
P O S T E R S € 1 0
B O O K + P O S T E R € 3 0
C A S H O R PAY PA L J O H N @ R O M E R O . C O M

Más contenido relacionado

Similar a John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018

[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School💻 Anton Gerdelan
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeypprem
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
 
Crear y leer códigos qr desde el terminal desde linux
Crear y leer códigos qr desde el terminal   desde linuxCrear y leer códigos qr desde el terminal   desde linux
Crear y leer códigos qr desde el terminal desde linuxPabloMastrilla
 
KeyLoggers - beating the shit out of keyboard since quite a long time
KeyLoggers - beating the shit out of keyboard since quite a long timeKeyLoggers - beating the shit out of keyboard since quite a long time
KeyLoggers - beating the shit out of keyboard since quite a long timen|u - The Open Security Community
 
Introduction To Game Programming
Introduction To Game ProgrammingIntroduction To Game Programming
Introduction To Game ProgrammingDien Wong
 
Lecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR ProgrammingLecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR ProgrammingKobkrit Viriyayudhakorn
 
Game Development Session - 3 | Introduction to Unity
Game Development Session - 3 | Introduction to  UnityGame Development Session - 3 | Introduction to  Unity
Game Development Session - 3 | Introduction to UnityKoderunners
 
PlayerOne - Seminars Introduction
PlayerOne - Seminars IntroductionPlayerOne - Seminars Introduction
PlayerOne - Seminars IntroductionLuca Galli
 
Computing basics
Computing basicsComputing basics
Computing basicsluke32
 
Project presentation
Project presentationProject presentation
Project presentationHarsh Sharma
 
DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1DeepMevada1
 
project on snake game in c language
project on snake game in c languageproject on snake game in c language
project on snake game in c languageAshutosh Kumar
 
First game using c language
First game using c languageFirst game using c language
First game using c languageSaurabh Khetan
 
Write More Python Games
Write More Python GamesWrite More Python Games
Write More Python GamesFionaSarah
 
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)Mihai Gosa
 

Similar a John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018 (20)

[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School[Game] Programming I Didn't Learn in School
[Game] Programming I Didn't Learn in School
 
Easy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkeyEasy coding a multi device game with FireMonkey
Easy coding a multi device game with FireMonkey
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
Pong
PongPong
Pong
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 
A mazing Game
A mazing GameA mazing Game
A mazing Game
 
Crear y leer códigos qr desde el terminal desde linux
Crear y leer códigos qr desde el terminal   desde linuxCrear y leer códigos qr desde el terminal   desde linux
Crear y leer códigos qr desde el terminal desde linux
 
KeyLoggers - beating the shit out of keyboard since quite a long time
KeyLoggers - beating the shit out of keyboard since quite a long timeKeyLoggers - beating the shit out of keyboard since quite a long time
KeyLoggers - beating the shit out of keyboard since quite a long time
 
Introduction To Game Programming
Introduction To Game ProgrammingIntroduction To Game Programming
Introduction To Game Programming
 
Lecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR ProgrammingLecture 1 Introduction to VR Programming
Lecture 1 Introduction to VR Programming
 
Indie Game Development Intro
Indie Game Development IntroIndie Game Development Intro
Indie Game Development Intro
 
Game Development Session - 3 | Introduction to Unity
Game Development Session - 3 | Introduction to  UnityGame Development Session - 3 | Introduction to  Unity
Game Development Session - 3 | Introduction to Unity
 
PlayerOne - Seminars Introduction
PlayerOne - Seminars IntroductionPlayerOne - Seminars Introduction
PlayerOne - Seminars Introduction
 
Computing basics
Computing basicsComputing basics
Computing basics
 
Project presentation
Project presentationProject presentation
Project presentation
 
DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1
 
project on snake game in c language
project on snake game in c languageproject on snake game in c language
project on snake game in c language
 
First game using c language
First game using c languageFirst game using c language
First game using c language
 
Write More Python Games
Write More Python GamesWrite More Python Games
Write More Python Games
 
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
 

Más de Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Más de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Último

Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxNeo4j
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNeo4j
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024Brian Pichman
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTopCSSGallery
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.IPLOOK Networks
 

Último (20)

Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptxEmil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
Emil Eifrem at GraphSummit Copenhagen 2024 - The Art of the Possible.pptx
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
Novo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4jNovo Nordisk's journey in developing an open-source application on Neo4j
Novo Nordisk's journey in developing an open-source application on Neo4j
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development Companies
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
 

John Romero - The Early Days of Id Software: Programming Principles - Codemotion Madrid 2018

  • 1. The Early Days of id Software John Romero @romero Madrid | November 29 - 30, 2018
  • 2. I D S O F T WA R E ’ S E A R LY D AY S A S T O L D B Y J O H N R O M E R O
  • 17. John Carmack Adrian Carmack(not related!)
  • 29. Me John This is John’s Dungeons and Dragons table where we played all our sessions
  • 30. NES with SMB3 running on it and an Advantage joystickThe 1st level of our demo Cheap chairs 386/33s from Softdisk
  • 32. DeluxePaint II with tiles NES with SMB3 running and Advantage joystick on a 13-channel TV set. VCR under NES. More cheap chairs Bedsheet used as tablecloth
  • 35. “No prototypes. Just make the game. Polish as you go. Don’t depend on polish happening later. Always maintain constantly shippable code.
  • 39. “It’s incredibly important that your game can always be run by your team. Bulletproof your engine by providing defaults upon load failure.
  • 42. “Keep your code absolutely simple. Keep looking at your functions and figure out how you can simplify further.
  • 43. S TA G E 2
  • 46. “Great tools help make great games. Spend as much time on tools as possible.
  • 56. “We are our own best testing team and should never allow anyone else to experience bugs or see the game crash. Don’t waste others’ time. Test thoroughly before checking in your code.
  • 58. “As soon as you see a bug, you fix it. Do not continue on. If you don’t fix your bugs your new code will be built on a buggy codebase and ensure an unstable foundation.
  • 60. “Use a development system that is superior to your target.
  • 72. • at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i want an inventory system in a medieval version of DOOM would play. it turned out great 
 • at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i wan an inventory system in a medieval version of DOOM would play. it turned out great 

  • 73. • at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i want an inventory system in a medieval version of DOOM would play. it turned out great 
 • at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i wan an inventory system in a medieval version of DOOM would play. it turned out great 

  • 75. “Write your code for this game only – not for a future game. You’re going to be writing new code later because you’ll be smarter.
  • 76. • at the beginning of i started working with Raven Software and developed Heretic using the DOOM engine. i want an inventory system in a medieval version of DOOM would play. it turned out great 

  • 91. “Encapsulate functionality to ensure design consistency. This minimizes mistakes and saves design time.
  • 97. Turbo Mode 28 Games 5.5 years Fewer than 10 developers
  • 98. “Try to code transparently. Tell your lead and peers exactly how you are going to solve your current task and get feedback and advice. Do not treat game programming like each coder is a black box. The project could go off the rails and cause delays.
  • 99. “Programming is a creative art form based in logic. Every programmer is different and will code differently. It’s the output that matters.
  • 100. The Early Days of id Software John Romero @romero Madrid | November 29 - 30, 2018
  • 101. Thank You. Instagram: @theromero Twitter: @romero john@romero.com
  • 102. S I G N E D B Y R O M E R O P O S T E R S € 1 0 B O O K + P O S T E R € 3 0 C A S H O R PAY PA L J O H N @ R O M E R O . C O M