

Notch live coding for Ludum dare 22 - hjalle
http://sv.twitch.tv/notch

======
hucker
It's interesting to see such a prominent and talented coder do his work on
(what looks like) a totally stock Eclipse install. Not that there is anything
wrong with it at all, but it puts into perspective all the time "wasted" by
thousands of programmers (myself included) around the world tweaking their
vimrc to perfection, obsessing over tiling vs traditional window managers, and
in general worrying a great deal about the "optimal" workspace.

It's rather refreshing to see someone that just does his work with tools that
are sufficient to do the job.

Come to think of it, I see this phenomena quite often at the university I
attend. The "average" guys have regular flamewars on what language is best or
whether vim or emacs or some IDE is the ultimate tool, MacBook Pro versus
Thinkpad and so on, while the actual top guys keep churning out quality code
in whatever language fits the task on whatever machine available at the time
with whatever OS is on that machine.

This is obviously a great simplification and a single anecdote, but I think
there is some truth to it. Masters of art obsess over the artwork itself, not
the tools used to create it.

~~~
akkartik
I see the same data and come to the opposite conclusion. People with 10x my
brain power can deal with dumb tools, verbose languages, a malicious codebase,
architecture astronauts. I'm too stupid to do what they do, so I try to pick
my battles and live where it's simple.

I'm not arguing for obsessing over tools, or for flamewars. But perhaps the
dumber you are the more you should pay attention to foundations.

~~~
mechanical_fish
Books on pool and billiards will teach you how to execute a proper billiards
shot. Every one of them, from Willie Mosconi's book of the 1940s to the very
latest, will tell you that you should stroke the cue forward and back along a
straight path, as if it were running in a groove, avoiding swerves, which will
be difficult to control. You should particularly avoid swerving your cue and
hand during the final delivery and follow-through.

But there are a few rare and precious films of Willie Hoppe, possibly the
greatest billiards player of all time, who won fifty-one world titles at a
time when billiards was one of the most popular sports in America and was
played in every U.S. city by every gentleman of taste. Check out Willie
Hoppe's billiard stroke, starting at about 1:10 in this YouTube video:

<http://www.youtube.com/watch?v=cQynRebhP1Y>

From this evidence, it would appear that Willie Hoppe ruled the world of
billiards with the worst stroke ever known to man. His cue literally skews
through a ten-degree angle between the start of his delivery and the end, and
his hand twists too. Wikipedia sheds some light on this:

 _Hoppe's peculiar style of stroke was a result of his career as a child
prodigy. He barely reached the table and had to stand on a box. In [his book]
Hoppe emphatically advised players not to use his way of directing the cue._

The moral of this story is that grandmasters will take lousy tools and build
amazing things, because they are grandmasters. We, on the other hand, are
probably not grandmasters, may not want to invest tens of thousands of hours
before we get some decent results, and will not actually be harmed if, at the
start of our quest for grandmastery, we do ourselves a favor and get the best
tools we can afford.

\---

(Having said all that: I may not personally like Java or Eclipse, but I can't
believe they rank as _bad_ tools. Tens of thousands of people are productive
in them, many voluntarily. And consider that people used to write great games
for the _Atari 2600_ , for god's sake; Java on modern hardware is a dream come
true by comparison.)

~~~
resnamen
Wow, that was an obscure and surprisingly entertaining analogy. How'd you
learn of that?

~~~
mechanical_fish
The best part of a good grad school is that, when it comes time to
procrastinate, you'll have a card to a very good library.

Billiards is actually easy to learn about: Pick up any book by Robert Byrne
(the canonical one is _Byrne's Standard Book of Pool and Billiards_ ; it can
be found all over the place) and he'll be telling you all about it by the
second half of the book; he can't help himself. Hoppe got name-dropped in
there somewhere.

I should emphasize that my judgement of Hoppe's stroke quality is entirely my
own (though it does jibe with the anonymous editors of Wikipedia) and is based
on one or two videos like this one on YouTube. It is entirely possible that
Hoppe was exaggerating his sloppy-looking stroke for the cameras; this was an
exhibition after all.

(I can't actually play billiards, by the way, and I'm a bad pool player. You
know how there are things which are more fun to read about than actually do?
Billiards turns out to be like that for me: I'm not driven to practice. So
many hobbies, so little time...)

------
ericb
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?

~~~
PaulJoslin
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.

~~~
Tichy
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.

~~~
rhizome
Some things need to get done no matter what.

------
Scaevolus
Watching other programmers code is a great way to learn new things about your
tools.

From his LD21 stream I learned that Eclipse can do hot code reloading-- Notch
uses this extensively to iterate with cycles measured in seconds.

~~~
pantaloons
You say "iterate" but from what I observed it was mostly used for shotgun
debugging -- not necessarily a bad idea when doing graphics programming on a
strict time limit.

------
PaulJoslin
I think what I enjoyed the most watching this was the fact that he clearly has
a lot of artistic talent, as well as the ability to code.

Many programmers have been unable to produce masterpieces, due to the lack of
ability to produce any of the required graphics / sprites.

Notch was just adhoc drawing animated sprites and they looked great.

~~~
127
Drawing is mostly a trained skill. People highly over-estimate the actual
innate talent needed. They just need to work for it to get results. Of course
if you don't enjoy it, you will not most likely be able to learn. The trick is
to enjoy it.

I couldn't find the link but there was this middle-aged guy who was only able
to draw stick figures and then got some training and now has an art studio and
is a renowned painter.

~~~
Bootvis
Feynman springs to mind. A Nobel winning physicist with some success after a
lot of practicing.

~~~
weaksauce
I think it was actually a forum thread where the guy publicly showed his
learning by posting a lot of his pictures as he kept practicing. Don't have
the link off the top of my head though.

------
aw3c2
I unsuccessfully tried to watch (and record) this with rtmpdump. Does anyone
have success with it? This is as far as I got:

rtmpdump -r "rtmp://199.9.255.233/app" -a "app" -f "WIN 11,0,1,152" -W
"[http://www-cdn.justin.tv/widgets/live_site_player.re2cb52468...](http://www-
cdn.justin.tv/widgets/live_site_player.re2cb52468e1a1f82af503eac77b389e6fc8e5282.swf)
-p "<http://sv.twitch.tv/notch> \--live -y "jtv_NkzwEXgKbSnzmSP_"

It is a shame that things like this are encumbered and tightly controlled.

~~~
citricsquid
Why would you when justin.tv release the videos as soon as the stream ends?

~~~
aw3c2
I checked some random videos on justin.tv and could not find an option to
download the files. Is that indeed possible?

------
mrspeaker
Great fun to watch! He just posted a "work in progress" version:
<https://s3.amazonaws.com/ld48/ld22/index.html>

------
atambo
Go to <https://s3.amazonaws.com/ld48/ld22/index.html> to play the game (he
updates it periodically as he's working on it).

------
sontek
I have to open up documentation all the time when I'm working, hes just
hacking away... its beautiful.

------
deniszgonjanin
Go watch him code and then decide for yourself if there is such a think as a
100x programmer

------
jebblue
I watched this for several hours today, cool stuff watching him. His reactions
when the code misbehaves are funny. How he remembers which sections of code do
what and is not afraid to cut out whole sections to achieve the effect he
wants is cool.

------
jiggy2011
Has anybody here had any experience entering Lundum dare?

For many years I have thought about the idea of building a game from scratch
and even have a few half (or probably quarter at best) finished engines/demos.
Of course it is easy to become a perfectionist and compare your work to the
best AAA titles which means you will never finish.

Perhaps a strict 48 hour deadline is what is needed to really force me to get
something completed. Although since I haven't done any games programming for
years I would just end up spending all the time reading the docs and
correcting simple mistakes.

------
bobthedino
Anyone know what third party Java libraries he's making use of (if any)?

------
resnamen
Wow, it's cool to see him modifying classes on the fly. He's tweaking RGB
value constants and seeing the result instantaneously.

------
HalibetLector
I noticed that he switches between the keyboard and mouse so fast it seems
like he always has one hand on the keyboard and one on the mouse. How is he so
fast at switching? For me, touching the mouse is the slowing thing I do in a
text editor.

~~~
Bootvis
The trick I use is to set the mouse sensitivity low and throw grab the mouse
in the general direction I need the pointer to go. Then a switch costs me the
time to my hand 20 centimeters.

------
langsamer
Is that the music he is listening to or is that just ambiance music added by
twitch.tv?

~~~
zandor
Yeah it's him. Just heard him say it. Last hour or so has been Röyksopp in
case you wondered.

Edit: Must admit that I've had less entertaining nights out than this. Getting
inspired and learning a few small tricks here and there is rather fun!

------
hpaavola
He seems to use a lot of "magic numbers" at first, but later on replacing
those with proper variables. Is that common? I can't keep track of the meaning
of such numbers while programming, so I tend to use variables straight away.

------
sidmitra
I've been working on a dribbble for the Game Dev community,
<http://www.metroia.com>, hoping to launch Jan 1.

------
theon144
Dammit, I found about it just now, does anybody know if there's going to be a
recording of the stream on youtube or elsewhere?

~~~
tsigo
Historically, he's posted a timelapse version on YouTube, but you can't really
see anything specific he's doing.

justin.tv, and by extension TwitchTV, which he's using to stream, archives
everything, so you should be able to view it from this same link once he's
done.

~~~
tsigo
Just to follow up, here's the archived version of the very start of the
stream: <http://www.twitch.tv/notch/b/302823358>

------
helium
Anywhere I can watch this on a iPad?

~~~
ronnier
Download the free twitch.tv app

