"The Early Days of id Software: Programming Principles" by John Romero (Strange Loop 2022)

  Рет қаралды 144,687

Strange Loop Conference

Strange Loop Conference

Жыл бұрын

As co-founders of id Software, John Romero and John Carmack created the code behind the company's seminal titles. The principles they defined through experience in id's earliest days built upon one another to produce a unique methodology and a constantly shippable codebase. In this talk, John Romero discusses id software's early days, these programming principles and the events and games that led to their creation.
John Romero
Romero Games
John Romero is an award-winning game programmer, designer and level designer whose work spans over 130 games, 108 of which have been published commercially. Romero is the "father of first person shooters" having led the design and contributed to the programming and audio design of the iconic and genre-defining games DOOM, Quake, Heretic and Hexen. Romero was also one of the earliest supporters of eSports and a current competitive DOOM and Quake player. To date, Romero has co-founded eight successful game companies including the likes of id Software. He is considered to be among the world's top game designers, and his products have won well over 100 awards. Romero most recently won a Lifetime Achievement award at the Fun & Serious Games Festival in Bilbao and the Legend Award at 2017's Develop: Brighton. One of the earliest indie developers, Romero began working in the game space in 1979 on mainframes before moving to the Apple II in 1981. He is a completely self-taught programmer, designer and artist.
------- Sponsored by: -------
Stream is the # 1 Chat API for custom messaging apps. Activate your free 30-day trial to explore Stream Chat. gstrm.io/tsl

Пікірлер: 117
@Hobbitstomper
@Hobbitstomper Жыл бұрын
Developing 13 games in a year, porting Wolfenstein in 3 weeks to the SNES, those time frames are insane. Nowadays a meeting can take longer than 3 weeks...
@jesustyronechrist2330
@jesustyronechrist2330 Жыл бұрын
TBF, games back then were exponentially more simple than nowadays. At surface level, a modern 2D pixelart platformer might look like it could run on an NES, but in reality, there's bunch more stuff happening under the hood, a lot more complex scripting and things to keep track of. Bad optimization? Sure, who cares, nobody's playing Shovel Knight on an NES anyways... Or are they?!?! It still is very impressive.
@madams4606
@madams4606 Жыл бұрын
​@@jesustyronechrist2330​I heard Mario 1 took 10 months
@teckyify
@teckyify Жыл бұрын
@@jesustyronechrist2330 well, yes and no. When you're doing everything the first time that's a whole different complication. Design-wise and technology-wise.
@DramaticalyEffective
@DramaticalyEffective Жыл бұрын
I am completely addicted to the story of ID. I don’t really know why. It’s just so inspiring. I listen to Masters Of Doom at least once a year.
@brunodantasm
@brunodantasm Жыл бұрын
I would say early Id may be the most inspiring game company due to being only a few charismatic people plus their amount of dedication, productivity & innovation. Definitely check out the recent (5-hour long!) Lex Fridman podcast with John Carmack as well.
@marbasfpv4639
@marbasfpv4639 9 ай бұрын
I love masters of doom! and Hackers, heroes of the computer revolution. Now Mr.Romero has released his autobiography "Doomguy" and its as good as masters of doom. Its great to read/listen to his own version.
@kirillholt2329
@kirillholt2329 8 ай бұрын
same...and I don't even like doom all that much (I do like quake though) just the whole 90's dev era radiates crazy inspiring energy
@anthonyobryan3485
@anthonyobryan3485 Жыл бұрын
That was the fastest 1.25 hours I've ever spent listening to a lecture. I was engrossed the entire time.
@andrewgbliss
@andrewgbliss Жыл бұрын
Its just as entertaining to hear the dev stories as playing the actual games. What a legendary time.
@RewdanSprites
@RewdanSprites Жыл бұрын
No matter how many time I hear the story I always show up to hear it again. I even have the book! (There's a new one coming out next year apparently!). Rock on John, rock on.
@deusprogrammer_thekingofspace
@deusprogrammer_thekingofspace Жыл бұрын
Masters of Doom? That's my favorite book. I listen to it on Audible while I work now-a-days. It inspires me to keep going.
@paulk314
@paulk314 Жыл бұрын
A new book coming out? What's the name?
@AlexanderBalchev
@AlexanderBalchev Жыл бұрын
@@paulk314 DOOM Guy: Life in First Person
@nateypoo
@nateypoo Жыл бұрын
Listening to John Romero talk about the history of id software is like listening to the grandpa I never had tell me bedtime war stories!
@AstronautDown
@AstronautDown 3 ай бұрын
Just a huge thank you to the person who asked the DnD question.
@ovinophile
@ovinophile Жыл бұрын
That answer to the D&D campaign question was so good. Depending on who you are, hearing it could be either terrifying or amazing.
@TaranovskiAlex
@TaranovskiAlex Жыл бұрын
It is always interesting to listen to John's Romero wisdom
@ReleeSquirrel
@ReleeSquirrel Жыл бұрын
Well that was exceptionally fantastic. Thanks for hosting and publishing that! Thanks to John Romero, too. Even though I'm a gamedev and often watch stuff like this to glean gamedev wisdom, I think my favorite part was hearing about John Carmack's D&D game.
@jberg5441
@jberg5441 Жыл бұрын
This is the most complete story I've found so far. Excellent talk
@brunodantasm
@brunodantasm Жыл бұрын
Definitely check out the recent (5-hour long!) Lex Fridman podcast with John Carmack as well.
@_Hawk78_
@_Hawk78_ Жыл бұрын
Id Soft made the best games I grew up with. Thanks so much for it! 🕹👍😀
@qwertyman1511
@qwertyman1511 Жыл бұрын
just like the development style, the presentation was quick and concise, leaving room for other things.
@amonynous9041
@amonynous9041 Жыл бұрын
I'll never forget the amazement when I first saw Doom on my friends computer as a kid.
@aldunlop4622
@aldunlop4622 2 ай бұрын
Nobody ever really seems to talk about Heretic or Hexen anymore, but even though I loved Doom, I preferred Heretic because I was more of a fantasy nerd than action in those days. I readd Lord of the Rings in the 70s and right after that D&D became huge. Then Quake 2 came out and I was a bit older, and into rock music and the music in Quake 2 blew my mind. I used to play in the living room with all the lights off and had my PC plugged into my sound system and it was insane. John & Co, you made this Gen Xer a happy man to this day. Thanks.
@oopus4
@oopus4 Жыл бұрын
I could listen to Romero talk for hours
@JohnDlugosz
@JohnDlugosz Жыл бұрын
17:00 Develop on a system that's superior to your target. I can relate to that. In the early 90's I took over the group developing the software for an industrial machine that used a '286 motherboard. The development machines were PCs built around this same board, because my predecessor wanted the development system to match the target system. It had a detrimental effect on the code, big time. The developers were loathe to change a header, because of the long compilation times. So instead of fixing or updating a core data structure, they would come up with crazy work-arounds that could be done in one CPP file. I came in with my personal '486SX budget machine, and quickly slashed through some of these outstanding issues, rebuilding clean in the time they took to incrementally make. As for needing the same hardware, that applied to the installed cards not the base PC, and targeting the 286 for generated code, and having a "slow clock" or "de-Turbo" mode for testing.
@achtsekundenfurz7876
@achtsekundenfurz7876 Жыл бұрын
Can confirm. Develop on good machines (with an OS that doesn't freeze after a bad pointer), and TEST on at least one baseline system.
@proosee
@proosee 4 ай бұрын
I think the most influential bug that became a feature was strafe jumping/bunny hopping in Quake, the fact that it is quite essential in some games to this day says a lot.
@GuyRutter
@GuyRutter Жыл бұрын
What a joy listening to John. Reflecting on my own life in software through the same eras and of course the awesome nostalgia of playing Doom and Quake. Carrying our whole system (with CRT) around to friends houses to deathmatch.
@johnmendon18
@johnmendon18 Жыл бұрын
As a kid who grew up on Doom IN Shreveport its funny to hear about id working off of Lakeshore Dr only a few miles from my childhood home.
@youreale
@youreale Жыл бұрын
The legend. Hats off.
@lerneninverschiedenenforme7513
@lerneninverschiedenenforme7513 Жыл бұрын
Awesome talk! Thank you so much for talking, filming und uploading!
@metamedian
@metamedian Жыл бұрын
So much insight to the art of making games! Thank you, John!
@Swagbastian
@Swagbastian Жыл бұрын
I love how he just says that they did some insane, groundbreaking stuff that most of us could only dream of doing, so casually.
@BryceMiller
@BryceMiller Жыл бұрын
Fun DnD story at 44:20
@hpbecraft
@hpbecraft Жыл бұрын
highlight of the talk.
@vectar
@vectar Жыл бұрын
This was awesome! Thanks to all involved. 🤩
@mdrakic
@mdrakic 2 ай бұрын
Amazing video, superb insight. Moral of the story: Talk to each other!
@Novous
@Novous Жыл бұрын
IIRC, Death Rally, and Tyrian, were both successful 90's shareware/DOS games that started from demoscene groups. There's probably a ton more. There were a lot of Finnish DOS indie games with stellar soundtracks in the 90's.
@AppliedCryogenics
@AppliedCryogenics Жыл бұрын
I was in high school for WOLF3D, college for DOOM, and at my first tech job for QUAKE3D. I
@TheMrMxyspptlk
@TheMrMxyspptlk Жыл бұрын
Thanks for this amazing journey through your creative minds
@impheris
@impheris Жыл бұрын
is always fun to hear about the early days of game dev
@geshtu1760
@geshtu1760 Жыл бұрын
Awesome talk! Every aspiring indie game dev should watch this
@JulianMakes
@JulianMakes Жыл бұрын
Incredible person what a great time and place to work they had!
@colinmaharaj
@colinmaharaj Жыл бұрын
53 and still at it, C++, making useful things.
@bransonS
@bransonS 6 ай бұрын
These talks are awesome. Amazing people doing amazing things. Such a great story and always interesting to hear these guys share. Now just to form a small team of multiple. exceptional, passionate, respectful geniuses and give them full ownership of their work. It’s easy!
@ayoubdadda1380
@ayoubdadda1380 Жыл бұрын
Awesome, great video!
@sociotechnical_software
@sociotechnical_software Жыл бұрын
Brillliant talk! I felt a slight contradiction in that slide about "writing your code for this game" and how all code was written afresh and then later admitting that engine code and elements were reused because they weren't going to get any better. I can imagine that from one perspective the game is new but the engine(s) are always improving.
@stephenbroderick7002
@stephenbroderick7002 Жыл бұрын
That was amazing. It never gets boring hearing about that time and what they did.
@murphy7801
@murphy7801 Жыл бұрын
Reminds me when your young you have so much energy. Such an interesting insight.
@TusharDeb
@TusharDeb 3 ай бұрын
Great story and great advices!!
@quakecon2009
@quakecon2009 Жыл бұрын
I'm going to have to watch it again...
@DJ-Illuminate
@DJ-Illuminate Жыл бұрын
I was doing web design in Madison in 1991. Only 5 servers for the web existed at the time and Madison had one. I found one of Wolfenstein shareware on our server.
@neptronix
@neptronix Жыл бұрын
Great talk.. thanks so much :)
@JohlBrown
@JohlBrown Жыл бұрын
tom hall's press shot is legendary (but also john's)
@tizianschmidlin5411
@tizianschmidlin5411 Жыл бұрын
I haven't fully watched it yet, this is mainly a note to myself to check if John tells what the bug that they had in the game since day one was and how they fixed it. Edit: 30:56 is the timestamp where this is answered. Thanks, me. You're welcome!
@guilherme5094
@guilherme5094 Жыл бұрын
So awesome👍👍!
@prashants5071
@prashants5071 7 ай бұрын
John Romero: Meanwhile Sandy Peterson: working at id software was like watching a nature documentary about a pack of hyenas devouring a carcass
@nickhuynh6321
@nickhuynh6321 Жыл бұрын
Friendship is the biggest take-away...
@-taz-
@-taz- Жыл бұрын
I always wondered how or why IBM put the scroll registers into the CGA, EGA, and VGA designs. I can remember when people sort of discovered it, and started using it. It was in "trainers" and demos. But why was it even there??? What was the intent? I don't think it was for game programming. And even then, it was just barely even usable. (I sure had a rough time, being a senior in high school, just starting to learn Pascal, ASM, and C/C++.)
@halgari
@halgari Жыл бұрын
So fun side-notes about all of that. The old video adapters had these scroll registers as you mentioned, and if you could configure the memory in such a way, you could draw to one part of video memory while displaying another. Once you were done drawing you could flip the "viewport" register to the other area and start drawing where you were just displaying. This double buffering allowed for flicker-free graphics. The problem was that no standard video mode was setup in a way that allowed for two screens of 8-bit color to fit in video memory at once. You heard Romero mention Michael Abrash. Abrash's discovery was that with a bit of mucking with VGA registers you could kick the cards into a undocumented "unchained mode" allowing for 8-bits of color on a 320x240 display, meaning we could finally get much richer color with double buffering. In addition, there was just enough video memory left around that these two buffers could have a border around them of extra tiles allowing for smooth panning around the screen.
@NostraDavid2
@NostraDavid2 Жыл бұрын
@@halgari Is that how they got 1024 colros on a 4bit-color IBM with the 8088 MPH demo?kzbin.info/www/bejne/r3m7qWalp7Nma7s
@perplexedmoth
@perplexedmoth Жыл бұрын
CGA was built on top of HD6845 (extremely common CRT controller chip in 80s), which has scroll registers for obviously scrolling the character display fast, and not having to copy the whole buffer.
@wolfgangfrost8043
@wolfgangfrost8043 Жыл бұрын
I do think it's funny that iD Software hired someone to do the SNES port of Wolf 3-D & got stiffed on it, then almost the exact same scenario played out when they contracted out Doom 1's networking code! Paid some guy who ran off with the money, they never got the networking code & ended up having to do it themselves.
@EnTransic
@EnTransic Жыл бұрын
Small company. Good friends. Do what you love to do. Embrace the grind. Success follows.
@chinering23
@chinering23 Жыл бұрын
28:47 That black box analogy is very true. I am in an agile job now and it's just like that. Normally I would do full stack but I cannot see half of what is going on, I hate it.
@pacesferry
@pacesferry Жыл бұрын
12:28 Keep looking at your functions and figure out how you can simplify further.
@VikingBoyBilly
@VikingBoyBilly Жыл бұрын
"No prototypes. Just make the game. Polish as you go. Don't depend on polish happening later. Always maintain constantly shippable code." This was not the current age of the game industry.
@benaloney
@benaloney Жыл бұрын
"We had no source control..." 💀
@CirclesandSounds
@CirclesandSounds Жыл бұрын
1:12:10 “Don’t you run from me, John!” - Decino 😂😝
@tolkienfan1972
@tolkienfan1972 Жыл бұрын
I like most of the core principles :-)
@killaken2000
@killaken2000 Жыл бұрын
I'm looking forward to Sigil 2
@clooclvloolv2217
@clooclvloolv2217 Жыл бұрын
Dangerous Dave II my first ever shooter
@Sharlenwar
@Sharlenwar Жыл бұрын
Damn, I miss the early days of where gaming was born from. I was too young to really experience it. I was a part of the console wars that happened with Atari, Sega, Nintendo, NeoGeo, Turbografix, etc.
@steelbrotherhoodof2359
@steelbrotherhoodof2359 Жыл бұрын
there are more proccesing calculations happening. pre processing 1. real time data proccesing 2. and post proccesing 3. good luck. curious ones. :p then, single tasking 1.switching-multitasking aka turn based 2. real time aka, simultanious tasking operations. "all at once" 3.
@silverquick32
@silverquick32 Жыл бұрын
The PHP on the screen at 28:40 seems highly out of place... :D
@weswoodell
@weswoodell Жыл бұрын
I got distracted for a moment then came back in the middle of his story about casting spells and talking to demons, and I'd missed the opening where he'd explained he was playing Dungeons and Dragons with his friends. I must say I was extremely confused for a minute there ... haha.
@killaken2000
@killaken2000 Жыл бұрын
20:03 does anyone know what the bug was?
@LunarLemonade
@LunarLemonade Жыл бұрын
I'd pay to read more about that D&D campaign.
@AdrianBoyko
@AdrianBoyko Жыл бұрын
Where does Zoidphun fit into all this?
@ben25890
@ben25890 Жыл бұрын
@44:23 the Dungeons and Dragons campaign talk
@colinmaharaj
@colinmaharaj Жыл бұрын
12:35 just a few hours ago I was still simplifying my code.
@MrBlaygor
@MrBlaygor Жыл бұрын
30:46 for what 11th hour bug Carmack fixed on Doom launch day
@CaptainWumbo
@CaptainWumbo Жыл бұрын
good principles I wish more people saw the wisdom in. common sense not so common in big tech
@ggzor
@ggzor Жыл бұрын
59:10 Wise Mystical Tree?
@JohnDlugosz
@JohnDlugosz Жыл бұрын
I have a question about the SNES port of Wolfenstein-3D. You said you had to learn the hardware, convert assets, etc. But was there a practical C compiler that targeted the 65816? You didn't mention having to learn assembly language and work out performance tricks on same.
@jc_dogen
@jc_dogen Жыл бұрын
presumably knowing 6502 from the apple 2 helped a lot
@antopolskiy
@antopolskiy Жыл бұрын
can someone PLEASE name the games at 6:06 ??
@dieterkalt4281
@dieterkalt4281 Жыл бұрын
this video should be double liked
@clooclvloolv2217
@clooclvloolv2217 Жыл бұрын
It is
@CarrotCakeMake
@CarrotCakeMake Жыл бұрын
Commander Keen 4 was so much fun. I wish someone had asked him if he had a favorite game of all the ones he worked on. Sounded like it might have been Doom.
@mrJety89
@mrJety89 Жыл бұрын
Slordax was the first game I EVER played
@JonathanRossRogers
@JonathanRossRogers Жыл бұрын
55:36 TIL that time == Wolfenstein.
@Marandal
@Marandal Жыл бұрын
Lovely interview with a vampire. always fun to listne to John
@JonathanRossRogers
@JonathanRossRogers Жыл бұрын
17:33 *nix FTW
@moe85moe85
@moe85moe85 8 ай бұрын
Some of the smartest developers even today all together back then. That’s more than just luck
@GPaulTheThrashKing
@GPaulTheThrashKing Жыл бұрын
Makes you want to start hacking on some games. I remember being in like kindergarden and playing Dangerous Dave off a floppy disc.
@DiarrheaBubbles
@DiarrheaBubbles Жыл бұрын
Oh wut?! I'm in Rocklin right now lol.
@pcboxservices
@pcboxservices Жыл бұрын
Same
@ropersonline
@ropersonline Жыл бұрын
33:33: Sounds like a constant continuous hackathon.
@DougDingus
@DougDingus Жыл бұрын
It is time for another "Time Warp" podcast John. Just saying.
@eobet
@eobet Жыл бұрын
Interesting talk, but Wikipedia tells a completely different, not as rosy story on the Quake development… also, how do you go from multiple games per year to Daikatana? Seems the most interesting part was left untold…
@JosifovGjorgi
@JosifovGjorgi Жыл бұрын
No TDD, no *DD, no Agile, no Waterfall, no latest tech buzz IdSoftware delivered 28 games in 5.5 years without version control system and just syncing between them. IdSoftware is mainly responsible for creating the gaming industry That is WOW, today with all the buzz, "latest" software process and it still hard to deliver good software. This talk will save you tone of money on "make a great software" consultants In summary: Sync with your co-workers, especially if you know that your code change can interrupt someone else work
@BartoszRybacki0
@BartoszRybacki0 Жыл бұрын
My hypothesis: Most of the "processes" are created by observing the successful companies. But it is hard to observer core behaviors and core principles so what is left are some rituals.
@neptronix
@neptronix Жыл бұрын
The tighter and smaller the team, the less you need those time sucking processes.
@TheChannel1978
@TheChannel1978 Жыл бұрын
@@neptronix Friends and personality match also helps. Without a good fit motivations of some members become a problem sooner or later.
@GodOfMacro
@GodOfMacro Жыл бұрын
working on something you are passionate about too
@peterfireflylund
@peterfireflylund Жыл бұрын
It was actually very agile.
@aloluk
@aloluk Жыл бұрын
So actually, he doesn't say write the entire game from scratch.
@ernies8828
@ernies8828 4 ай бұрын
I played and owned EVERY game made by John Romero and John Carmack. Not one of their games had any bugs. Not one. This is a practice of work ethic that has often fallen to the way side in favor of greed, early access garbage, and lazy people! Every game designer needs to emulate their impeccable work ethic. It is a lie that you can not make games without bugs. A game not mentioned was called Blake Stone, which I thoughourly loved from Apogee. One last thing I will mention is that I have reservations concerning the occult. I would never outwardly engage in any type of magic, witchcraft, or satanism, and that includes D&D.
@steelbrotherhoodof2359
@steelbrotherhoodof2359 Жыл бұрын
so, the buffer, a dedicated piece of ram. is limited. and filled with data, from multiple sources say software code and keyboard input and hard drive data. and empty with a clockcycle say X times a second. and then refilled. the data goes to the buffer. say, one by one, and the buffer (or cache) dispose that all together in go, too different things, like music and display.
@steelbrotherhoodof2359
@steelbrotherhoodof2359 Жыл бұрын
and then the buffer memory is filled with a higher frequentie or fps then it is emptied. say i.e. 30 hertz per proccesed data stream. per 5 megabyte. per s3cond. and then emptied 1 once a second. buffer under run. ( no use the full buffer memory array. and purge it before it reach its limits. ) buffer limit is by the programmer Pre-designed. or Pre-fixed. in size.that along side the rest of the ram memory usage. thus, " in the meanwhile" or " in the lean time" and alsobhas its own clock freqeuncy. good explaination sir, romero.
@aloluk
@aloluk Жыл бұрын
WTF, We still use hardware breakpoints in games dev now. On all platforms. On some its called a data breakpoint though.
@danboid
@danboid Жыл бұрын
Sorry John but Keen didn't pioneer game engines. Just off the top of my head I can think of Gary Kitchen's Gamemaker (1985), SEUCK (1987), Freescape (as used in Driller, 1987 and several later games like Dark side, Castlemaster etc) and there were several other game engines before Keen arrived.
John Romero - Quake Postmortem
47:07
TechTrain
Рет қаралды 33 М.
Зу-зу Күлпәш. Көрінбейтін адам. (4-бөлім)
54:41
YouTube's Biggest Mistake..
00:34
Stokes Twins
Рет қаралды 60 МЛН
I PEELED OFF THE CARDBOARD WATERMELON!#asmr
00:56
HAYATAKU はやたく
Рет қаралды 23 МЛН
"Game Development in Eight Bits" by Kevin Zurawel
39:41
Strange Loop Conference
Рет қаралды 535 М.
"Python Performance Matters" by Emery Berger (Strange Loop 2022)
38:51
Strange Loop Conference
Рет қаралды 77 М.
DOOM’s Development: A Year of Madness
44:12
WeAreDevelopers
Рет қаралды 803 М.
"Building Observability for 99% Developers" by Jean Yang (Strange Loop 2022)
40:28
Strange Loop Conference
Рет қаралды 20 М.
John Carmack Used to Supercharge Ferrari's!! | Joe Rogan
13:32
JRE Clips
Рет қаралды 377 М.
John Romero plays MYHOUSE.WAD - Part 1
1:14:06
John Romero
Рет қаралды 861 М.
"Concatenative programming and stack-based languages" by Douglas Creager
40:30
Strange Loop Conference
Рет қаралды 12 М.
ИГРОВОЙ ПК от DEXP за 37 тысяч рублей из DNS
27:53