I'm curious--how is he able to make coding fast enough to be interesting to watch? It seems almost sped-up. I spend so much more time thinking than typing. Yet somehow he seems to be coding at a speed which would preclude a lot of think-time. I am confused, and a bit in awe.
And where is the part where strange crap happens that surprises you, and you spend 10 minutes staring at something and debugging it?
You have to realise that quite a lot of the ground work he is doing at this point is probably very familiar code. The fundamental code which scrolls the screen about, renders the sprites and moves the objects around the screen will be something he's written so many times it's instinctive.
I am so envious - if what you say is the case, how does he still manage to do it? I find it extremely hard to do routine tasks that I have done loads of times before. It is an extreme struggle for me to get enough motivation together.
I think what notch does really well is keeping the task at hand interesting to himself. Even looking at videos of him programming minecraft, you see that he does it to entertain himself. If a certain amount of time passes where he isn't liking what he's doing, he probably switches over to something interesting and keep the hard stuff in small bites for later.
It's a very good concept to work by, keeping things flowing and neither bore yourself to death nor skip on the hard things.
I don't disagree, but when I watched for about 15 seconds he was inserting printlns, trying to debug something related to sprite collisions. So I'd guess he still does some of that.
But the better answer is probably that he's been making games for two decades, according to wikipedia. Presumably he's long since worked through much of what you or I would need to think about when putting together a 2d tile game.
In fairness to you, I'd guess you, too, would code like a demon with such a short and hard deadline. I've watched previous of his codestreams and strange crap does happen, but instead of sitting and thinking for ten minutes, he codes and re-codes for ten minutes. Sort of thinking out loud.
I've noticed that a lot in this current stream. Instead of stopping to think and plan out how to do something, he keeps reiterating until he's satisfied.
He's satisficing. He's producing something quickly, rather than some optimal solution that takes much longer.
I too am amazed by this. I watched him program NoiseMap (which I assume is a random map generator, all trial and error. he went from double = double * double; to double = double * double * double * double;) and now he is applying it to the actual game world. Pretty amazing.
I don't know the exact rules of Ludum Dare, but if possible, I would have sketched out on paper (and if no prepared materials are allowed, memorized the important points) the general structure of the game, so that all I'd be doing during the 48 hours would be the actual programming.
Actually, he didn't do this. Part of the LD is that the theme/topic for the Dare isn't revealed until the game starts. He actually spent about twenty minutes staring at a 5-line text file labelled "ideas," just thinking out loud while he tried to come up with a game type.
That doesn't mean he didn't have a lot of prepared material. For example, when I was in school, I would have an essay planned out days in advance of an english exam, despite not knowing what topics were available until actually sitting the exam. With practice, its possible to bend and twist the given topics so your prepared material fits nicely. I imagine you could do the same with LD - plan the gameplay and art style and how different aspects should be coded in advance and then tweak it to suit the theme/topic once its been announced.
Oh, I see. I thought that the individual contestants came up with their ideas entirely on their own. I suppose this approach makes it much easier to judge, and more competitive as well.
And where is the part where strange crap happens that surprises you, and you spend 10 minutes staring at something and debugging it?