John Carmack Keynote - Quakecon 2013
IGN3 HN recommenders · 2014–2021
101K views · talk · evergreen · Uploaded 2013-08-04
John Carmack's roughly three-hour QuakeCon 2013 keynote, delivered from a few bullet points. Topics include his Haskell experiments with functional programming and static typing, game state, and cloud gaming.
Recommended to Carmack fans as the keynote with his functional programming adventures and for his fluent, wide-ranging talk.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
42:03The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
1:00:43Jim Simons (full length interview) - Numberphile
Numberphile2
14:34Steve Jobs Stanford Commencement Speech 2005
JoshuaG
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
31:44The Value of Values with Rich Hickey
InfoQ
10 comments from Hacker News
If you liked his talk, definitely check out his QuakeCon keynotes and his talk about physically based lighting. [LINK] [VIDEO] [LINK]
In case you missed it, John discussed his functional programming adventures in Haskell at QuakeCon 2013... well worth a listen. "So what I set out to do was take the original Wolfenstein 3D, and re-implement it in Haskell." [...] "I've got a few conclusions coming from it. One of them is that, there's still the question about static vs dynamic. I know that there was a survey just coming out recently where the majority of programmers are still really not behind static typing. I know that there's the two orthogonal axes about whether types are strong or weak, and whether it's static or dynamic. I come down really pretty firmly, all my experience continues to push me towards this way, that strong, static typing has really significant benefits. Sometimes it's not comfortable, sometimes you have to build up a tight scaffolding to do something that should be really easy, but there are real, strong wins to it." [VIDEO] (Starts at approximately 1:21:16 in case the direct link doesn't work correctly.)
Boys and girls, I present my first game, Rocket Renegade. "Don't you want a little taste of the glory, see what it tastes like?" [1] I rocked all of the code and the music [2], so you can run and tell that. The sprite-based graphics appear courtesy of Daniel Cook [3]. Thank you, Daniel, for the graphics that you lovingly created nearly 20 years ago on the Amiga 1200. I hope that my game makes you feel proud and nostalgic. Thank you, John Dunbar [4]. John created Plasma Sky. He was kind enough to answer a number of development-related questions that I had. I'll add that you really need Plasma Sky in your line-up if you love you some shmups. I wanted to talk about a feeling I've been experiencing. I think that you may be able to relate, but the most notable experience that I had during development was working to get comfortable with hardcore, radical, relentless persistence. What I mean here is, I worked incredibly hard to make this game a reality. I hit many roadblocks with Swift in the early betas, and it was tough. Near launch, I hit a bug where things ran flawlessly on hardware, but would have a yard-sale on some, but not all, simulators. Beyond a single hardware unit, I had to rely on simulators due to budget constraints. I've logged millions of points playing this game so that it could be the very best that I could deliver. Millions of points . I've broken down in tears, for a complex reason that's hard to explain, but I'll try, because I feel like it's important to talk
Watch one of his keynotes. He sits down with some bullet points on a tablet and then talks for three hours: [VIDEO]
For something like a decade (2004~2005 until 2013), Carmack gave a fluent hours-long speech/discussion/brain-dump at QuakeCon. I doubt a few minutes's speech is something he needs "plenty of time to prepare and rehearse" for at this point. Recent examples: 2h50 2013 QuakeCon keynote [VIDEO] 2h20 2014 SMU talk [LINK] 1h30 2014 Oculus Connect keynote [LINK]
To sceptics: John Carmack believes that cloud gaming can be successful. Here's his view on this (2013): [VIDEO]
This is the part... John discusses his functional programming adventures in Haskell at QuakeCon 2013. "So what I set out to do was take the original Wolfenstein 3D, and re-implement it in Haskell." [...] "I've got a few conclusions coming from it. One of them is that, there's still the question about static vs dynamic. I know that there was a survey just coming out recently where the majority of programmers are still really not behind static typing. I know that there's the two orthogonal axes about whether types are strong or weak, and whether it's static or dynamic. I come down really pretty firmly, all my experience continues to push me towards this way, that strong, static typing has really significant benefits. Sometimes it's not comfortable, sometimes you have to build up a tight scaffolding to do something that should be really easy, but there are real, strong wins to it." [VIDEO] (Starts at approximately 1:21:16 in case the direct link doesn't work correctly.)
Perhaps possible in isolation or on a small team. I don't think this is practically achievable on teams that have grown past a certain size, though. To paraphrase Carmack, "Any syntactically valid code, that the compiler will accept, will eventually make it into your code base." [1] [1] [VIDEO]
John Carmack has some ideas on how to use immutable copies of the game state and functional programming concepts to create something that's easily parallelized. I saw it in an old QuakeCon keynote: [VIDEO]
John Carmack spent some time in one of his famous keynotes talking about functional programming. On the one hand, obviously video games tend to be very stateful, and implementing them in imperative terms is natural. On the other hand, tons of specific things you do inside a game (or in any program) can be described as pure functions, and doing that is often a great idea. I think it was this part of this keynote: [VIDEO]