Notch live coding for Ludum dare 22
sv.twitch.tv
sv.twitch.tv
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.
Gets said in photography debates all the time.
Great talent can max out available tools, though, and it can be a limitation. That usually inspires creativity, in the case of photography.
It would be the equivalent of speaking your mother language (or native tongue or first language, whatever you english-speaking people call it :P) vs speaking a language with which you're "only" fluent when you just have to express a point very fast.
I'm not saying Notch is in the same situation (or anyone else actually), just that there are reasons, beyond being able to get things done using just the available tools, to use a setup that is often seen as suboptimal.
Last year for instance I've had bad issues with autocompletion on some huge classes (GLES20 I'm looking at you), but 1) that was when I was struggling on the macbook already, and 2) Someone fixed the problem somehow while I was busy downgrading to a stable version.
Eclipse kicks ass. I only said it was laggy out of mercy for the people who can't get productive with it.
You can't beat a good guitar connected directly to a good amp.
Java gets a lot of bashing these days, and there's so many "hot" languages to mention during those bashing sessions. But in the end, the guy creates games people have a strong desire to play. And then he uses the technologies he's comfortable with to get whatever job done.
http://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F
There are some limitations (can only change the body of an existing method) so it's not quite as dynamic as Lisp + Emacs + SLIME, but it's still pretty cool. I wish Dalvik supported it somehow because from what I can tell, you can't do this with code running on an Android emulator.
http://zeroturnaround.com/jrebel/
Works with pretty much anything JVM.
Invaluable for debugging.
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.
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.)
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...)
[1] Couldn't verify that he was saying this in answer to the question, but here's an attributed citation of the same quote: https://en.wikipedia.org/w/index.php?title=Keith_Richards...
I actually had a good reason for keyboard turning, for those familiar with the game. I was a healer and used Healbot to let me click on player names to cast healing spells. Thus, I preferred to have my mouse free for this and used the keyboard for turning, which was minimal.
And where is the part where strange crap happens that surprises you, and you spend 10 minutes staring at something and debugging it?
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.
He's satisficing. He's producing something quickly, rather than some optimal solution that takes much longer.
I should be coding
It's a very good concept to work by, keeping things flowing and neither bore yourself to death nor skip on the hard things.
From his LD21 stream I learned that Eclipse can do hot code reloading-- Notch uses this extensively to iterate with cycles measured in seconds.
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.
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.
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... -p "http://sv.twitch.tv/notch --live -y "jtv_NkzwEXgKbSnzmSP_"
It is a shame that things like this are encumbered and tightly controlled.
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.
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!
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.