Hacker News new | past | comments | ask | show | jobs | submit login

I think John Carmack is one of my favorite people to watch present. If you haven't watched his long rants about using FP in game dev @ QuakeCon a few years back you should.

It was QuakeCon 2013, although I'm not sure which part: https://www.youtube.com/watch?v=VUxcVzpeFqc




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."

https://www.youtube.com/watch?v=Uooh0Y9fC_M#t=4876

(Starts at approximately 1:21:16 in case the direct link doesn't work correctly.)


Another great quote from that same talk is akong the lines of

"Any syntactically valid code, that the compiler will accept, will eventually make it into your code base."


This is great when you're re-implementing Wolfenstein.

Not so much when you're doing exploratory computer science, or blue-sky prototyping. To build upon his analogy, scaffolding is most helpful when you have a reasonable knowledge of the shape of the building.

"It depends on the context" isn't exactly a shocking discovery however.

I love Carmack, love his presentation style, and when he talks from experience, I listen.


> Not so much when you're doing exploratory computer science

I'm not sure. The following experiment is outdated (I'd love to see it redone more rigorously and with modern languages) and has several methodology flaws, but "An Experiment In Software Prototyping Productivity" (1994, Paul Hudak et al) shows that Haskell and static types are actually great for rapid prototyping and exploratory programming, even in the face of vague or incomplete requirements. This runs contrary to common sense, which is why the experiment was fascinating.


Thanks very much for sharing this. Awesome.


Yeah, he is really quite good at this. (I wonder if it came naturally to him, or if it's just a matter of practicing very regularly for like 20 years?)

I wish he would give Elon Musk some mentoring on how to communicate with a technical audience. Or just a regular audience, I guess.


I'm under the hypothesis that (good) game developers know how to talk to people (or at least how to present things to people) because part of game design is thinking about how to manipulate people's emotions into wanting to (or even being eager to!) face a challenge you've set out for them.

It's similar but not identical to the reasoning for actors and directors to be good entertainers and interviewers. Those folks constantly think about manipulating people's emotions in general, but game design is completely focussed on just manipulating people into excitement or flow states — and that just so happens to be the emotion you (usually) want people to have in reaction to a presentation: the feeling of "I'm going to go out— and buy their thing —and change the world."


I like that idea. It's also true that a field like game development, which is both collaborative and interdisciplinary, pretty much requires excellent communication skills. Being a game designer is less about having amazing "ideas" or "vision" (everyone has those) and more about your ability to align everyone's ideas and vision in the same direction.

Personally, I prefer to describe "thinking about manipulating people's emotions" as _empathy_, but that's just me.


> Personally, I prefer to describe "thinking about manipulating people's emotions" as _empathy_, but that's just me.

Empathy is the core skill, yes, but there's a sort of... I almost want to say an instinctual disgust? that people also have to overcome, when they want to turn empathy around to use it to change someone else's mind, rather than just using it to predict someone else's mind. You have to become at least a little bit of a sociopath, is maybe the problem.

See, other people have different foundational beliefs—different axioms they're working from. To use "empathy aikido" on them—to come up with arguments that will convince them of something, not slowly and laboriously from logical first principles, but by building up quickly from what they already assume to be true—you have to be willing to make arguments that are true under their axioms, but not under yours. That is, you have to be willing to use arguments that you think are false, just because the person you're trying to convince will believe them.

It feels weirdly like lying; like you're a politician swaying the populace with empty rhetoric. But you're not saying things that nobody would believe (if given long enough to think about them); you're instead just getting into the head of—empathizing with—the person who holds those axioms, and then saying things that you—as that person—really do believe.

This is why, I think, there's a big divide between people who like or hate the idea of "salesmanship": some people fundamentally see it as lying, while other people fundamentally see it as empathizing.

Personally, I think it can end up either way—some people "sell" an idea while holding back a bunch of facts that, under their axioms, are total deal-breakers. Others, though, "build a bridge" between their interlocutor's world-model and their own, using their arguments to help the other person build a world-model enough like their own that they can then present the facts that they believe to the listener, and the listener can understand them through the "consensus schema†" they built.

https://en.wikipedia.org/wiki/Schema_(psychology)

People who are said to have "reality distortion fields", I'm guessing, are just good at making those kind of points that build a consensus schema, that they can then state plain "facts" against which will seem—within the consensus schema—to be obvious, rather than having to convince you of each fact through argument. Despite the gnawing feeling that accepting that consensus schema into your brain is sort of an indoctrination into a cult, it's really the less ethically questionable of the two options, in my mind: the speaker doesn't have to say anything they don't actually believe (other than the arguments required to build the consensus schema.)


> That is, you have to be willing to use arguments that you think are false, just because the person you're trying to convince will believe them.

I think genuinely arguing over whether something is true or false, is rarer than it seems. More often, I think we find ourselves arguing over which things are important, or how we should feel about something. In which case, I think you can put yourself in someone else's shoes and still be perfectly sincere.


Thank you for this comment - that's a really striking way of looking at these things. Makes me wonder just how many human interactions involve being that little bit of a sociopath. E.g., "putting your best foot forward" for a job interview or first date can feel like a kind of dishonesty, although it's expected in those cases. I wonder how you could start drawing a definitive line between "good" empathic manipulation and "bad" sociopathic manipulation, when even just smiling at someone can be manipulation of a sort?


> "That is, you have to be willing to use arguments that you think are false, just because the person you're trying to convince will believe them.

It feels weirdly like lying; like you're a politician swaying the populace with empty rhetoric. But you're not saying things that nobody would believe (if given long enough to think about them); you're instead just getting into the head of—empathizing with—the person who holds those axioms, and then saying things that you—as that person—really do believe." -derefr

Response to derefr: If you are willing to use an argument that you think is false then, by definition, you are lying [even in situations where the lie can be mistaken for truth by others].

and

> "E.g., 'putting your best foot forward' for a job interview or first date can feel like a kind of dishonesty, although it's expected in those cases. I wonder how you could start drawing a definitive line between "good" empathic manipulation and "bad" sociopathic manipulation, when even just smiling at someone can be manipulation of a sort?" -zazen

Response to zazen: If it feels like dishonesty then it most definitely is. Consider cases where the interviewee simply lacks confidence but puts on a facade to appear otherwise. As for drawing a line between "good" and "bad" manipulation, reference derefr's note:

> "To use "empathy aikido" on them—to come up with arguments that will convince them of something, not slowly and laboriously from logical first principles, but by building up quickly from what they already assume to be true—you have to be willing to make arguments that are true under their axioms, but not under yours. That is, you have to be willing to use arguments that you think are false, just because the person you're trying to convince will believe them." - derefr

The addition of "but not under yours" constitutes manipulation on grounds which are aside from truth.


I think you're misunderstanding what I mean by "axioms" here—a lot of these fundamental beliefs that inform which arguments you have to use with people to convince them, are "orthogonal to truth"—that is, things that aren't part of a causal graph, like normative or theological beliefs.

It takes a different thought process to convince someone that e.g. climate change is happening, if they're a Young Earth Creationist, than it does if they're a paleontologist. It takes different arguments to convince someone to donate money to charity if they're a deontologist than if they're a consequentialist. None of these axiomatic positions affect what (empirically discoverable) facts are true, per se; they just affect what facts are relevant to changing one's mind about what one should do—that is, these axioms influence how the "is" statements† a person hears will affect their confidence in various "ought" statements.

https://en.wikipedia.org/wiki/Is–ought_problem

So, this kind of "empathy aikido" is less about modelling a person who believes different facts are true, as it is about modelling a person who cares about the truth-value of different facts than you do. It's not that you might have to believe [X thing you believe is true] to be false; it's that you will have to pretend that [X thing you believe being true] is not a compelling argument, and might be so unimportant that you've never even thought about it and never will. Whereas the truth-value of [Y thing you don't care about] might be, to the person you're talking to, the most important thing in the world; the "trick" is figuring this out and then using a (true) argument about Y to convince them, despite thinking personally that only X, and not Y, holds any real sway over the truth-value of your conclusion C.

It can still feel bad, but I hope you can see how that intuition is less grounded here in any real injustice you're doing. Telling a virtue-ethicist that it is "noble" to e.g. donate to the Against Malaria Foundation, when you think that "nobility" is complete poppycock and the only thing that matters is that those donations mean people won't die, isn't an example of a lie. It is a manipulation, but not an illegitimate one—because, from the other person's perspective, it's just the honest truth.


Empathy = understanding the other, including on emotional level in such a way that the other feels understood.

Nothing to do with changing them.

If the other did not feel that deep understanding, empathy did not take place.

Source: I teach empathy with a worldview rooted in nonviolent communication. This is the definition I use; it is not universal.


Carmack is more of a game engine engineer than a game designer, as evidenced by the lacklustre design of id games after Romero left.


Romero did not leave, Carmack fired him, in his own words, for "not working hard enough."



Eh, judging from the Masters of Doom book, i wouldn't take his words seriously considering the tension that existed at the time between the two and how Carmack basically burned out himself during Quake's development. Romero wasn't the only one who left id at the time.


Why the downvotes?


Quake III Arena (Graeme Devine) was a fantastic game, although Doom 3 and RAGE weren't particularly inspiring.

Doom (2016) was released after Carmack left, but it's one of the best shooters they've made.


Q3 always suffered from the fact that it was released right around Unreal Tournament which was a far superior game, especially in level design.


Its a matter of preference, I think. I was only able to play UT growing up, thanks to its software renderer, and finally played Q3 (Quake Live) in college.

Q3 is more minimalist, which makes competitive play more interesting. Q3 has also maintained a competitive scene to this day where UTs seems to have fizzled out.


Quake 3 Arena is still one of the best multiplayer shooters ever, so I can't agree with your statement.


It has great game mechanics, but in all other manners of design it feels like a hodgepodge of unrelated assets thrown together. Quake 1 had a similar problem early in development, but they managed to tie it together. Quake 3 didn't even bother with a true singleplayer campaign, which seems like a winning move in hindsight, but at the time it was a departure from the norm and I can't help but feel like it was a move they did out of necessity.


While surely being a marvel of software engineering and level design, it had nothing in common with Quake I and II. It is not my intent to be critical here, but QA3 felt like a circus, especially compared with other multiplayer shooters such as the original Unreal Tournament, which had a wonderful mysterious atmosphere to it.


I was just playing something recently and thought "This feels like an Unreal Tournament Space Castle." Can't remember what game it was.

UT99 had some fantastic level design. Facing Worlds, Phobos, HyperBlast, Deck 16, Coret, etc.


Q3 is intentionally stripped down. Primarily due to Carmack's direction. Iirc from his old plan files.


I think it's less this and more that being able to present this information is the mark of a really good technical leader.


Great perspective.


Carmack used to have serious speech tick where he would always say hmmm at the end of the sentence. It has gradually wanished https://www.youtube.com/watch?v=ivfG64QUeH4&feature=youtu.be...

Often when something looks easy and efortless there is lots of work behind it.


For a while he was saying "on there" all the time too. But I think that has been reduced in his recent talks.

Public speaking well is hard. Most are not good at it, myself included.

That said, I'll take a poor speaker (Musk, older Carmack) over a PR drone any day.


He still has it, he just says "aye" instead.

I remember he said he had some kind of training on how to deal with the "hmmm" and it got better, but the "aye" remains.

(Not complaining, I loved his talks before with all "hmmms" and still do, "aye" and all)


but the "aye" remains

It's an engineer thing. Like Scotty from ST:TOS.


Linked video is still a great talk. Carmack comes off as someone who could talk about anything for a literal fortnight, so the 'mmm' may've been a tick where he was forcing himself to shutup & let the interview continue


Probably helps that he is in a field that is so esoteric that he really doesn't have a lot of other people to talk to this stuff about.

It's not like people go home and talk to their partners about vertex shaders for a half hour.


Although in his case he probably could, I believe his wife is very bright.


From what I gather she is, my only point is that when you are in a dense field, generally your partner isn't too enthusiastic when you get into the minutia you've spent a 1000+ hours in that year, so when you get the chance to really talk about it, you gush.

Granted I've watched every QuakeCon keynote that was posted and enjoyed them all (along with reading every .plan). His enthusiasm is infectious. Yet even then he is breaking it down to the big things that happened that year, not the day-to-day stuff.

If it were over the dinner table every night, I'd probably lose my mind.


Wow.

This has reminded me that I used to have the same tick.

I was mocked a bit because of it in middle school and set on to remove it.

it took a conscious effort at first but I have not thought about this tick since that time.


I'm completely the opposite. I really enjoy watching Elon Musk spatter his nervous stream-of-consciousness at an audience.

No-one should be forced into attempting something unnatural to them, to satisfy the whinging of the the peanut gallery.


Carmack really should have quit Oculus when Facebook bought it and gone on to work for Musk at SpaceX. Both are workaholics, too, so they'd probably get along quite well. Plus, Carmack is a big fan of space rockets.

Perhaps Musk needs to go to him and tell him, Steve Jobs-style:

"Do you want to work for a company that invades people's privacy for the rest of your life, or do you want to come with me and change the world?"

Carmack's skills are being wasted at Facebook.


Perhaps he got burnt out on space...

https://en.wikipedia.org/wiki/Armadillo_Aerospace


Last history bit claims

> As of August 2013, Carmack was "actively looking for outside investors to restart work on the company’s rockets"

Before stating assets were sold, likely due to lack of investment. SpaceX has the investment. Carmack & Musk also exchange tweets re rocketry at times


There's no way they purchased Oculus without buying Carmack for a set period of retention. That's a major part of the attraction for FB.


Musk has already offered Carmack a job a couple of times on twitter. Not verbatim but it was close to that line.



>Both are workaholics, too, so they'd probably get along quite well.

Or a clash of wills of epic proportions...


I found a really odd video of him speaking in 1998:

https://www.youtube.com/watch?v=hnJDQKcaS8g

So yeah, he was good back then too.


>>I wish he would give Elon Musk some mentoring on how to communicate with a technical audience. Or just a regular audience, I guess.

Musk is an effective speaker in my opinion. To be effective, you need not be eloquent, engaging, and charming. Musk has his foibles and stumbles around a lot, but that is part of who he is. I appreciate it.


You're being downvoted, but I do agree. Musk isn't a very good speaker and he seemed very nervous at his IAC talk about colonizing Mars.


He didn’t strike me as very nervous, but if he was, he had good reasons: He announced that they would halt production of Falcon rockets after building a big enough batch of them and completely focus on building spaceships. He announced to endanger the only big revenue stream SpaceX has in favor of an unproven technology in the hope to solve all problems and start production before the last Falcon rockets seize to be reusable.


> Musk isn't a very good speaker and he seemed very nervous ...

Sort of.

Looking back, he sounded much more confident when he was younger [0] perhaps because he hadn't yet experienced life altering events like the loss of a child or coming close to bankruptcy at the end of 2008 after sinking his networth into SpaceX and Tesla.

I think his seeming lack of confidence when he speaks publicly today is a latent acknowledgement that the stakes are much higher relative to his PayPal days when the Internet was incipient, and that failure is still a possibility, regardless of the amount of resources he may have sunk into his investments.

[0] https://youtu.be/jbXhReHXTH8


I 've watched most of his talks - the ones I could find - and its really such a pleasure to listen to him; he just shows up and rants about all kinds of subjects, without breaking a beat, and rarely if ever following a script or notes he compiled earlier.

I am not sold on the premise of VR myself; nowadays it comes down to novelty byte-sized demos or "games", with the occasional random mainstream game offering "VR support" (whatever that means, which usually doesn't mean much).

There's also the practical issue of strapping yourself to gadgets and wires, and on top of that, this is still expensive. That said though, I trust Carmack, Abrash and other smart folks elsewhere will solve those problems, and wind up building better alternatives and "next gen" killer apps that do justice to the term(VR) will be developed and we 'll all eventually experience it.


Agree. Whenever I come across a keynote of his, I tell myself "ok, just watching this for 10 min, then get back to real work", and then usually what happens is that I find myself 2 h later after the presentation, totally amazed by all the cool stuff that's going on in Carmack's lab.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: