
Notch Playing Ludum Dare [video] - n1c
http://www.twitch.tv/notch/
======
julianpye
Love watching this. It makes you realize that the process of discovery and
trial/error during programming is universal to everyone and what makes you
feel sometimes stupid should never stop you carrying on. Also shows the
celebration of the minor successes ('yeah! it's working'), followed by the
'what the... ?' is something even the greatest experience.

~~~
grannyg00se
I can't help but think of how much money this guy has and how he's still at
it, hacking away and streaming his program-a-thon. Seems like a good role
model not only for creative programming but also surviving success.

~~~
Aqueous
'surviving success' is one of those good problems to have...which makes it, in
some ways, a non-problem. surviving failure is a lot more impressive.

~~~
jebblue
Success scares me far more than failure.

~~~
supercoder
depends on how much you enjoy food i guess

------
gizmo
[http://www.twitch.tv/georgebroussard](http://www.twitch.tv/georgebroussard)

Also worth a look. One of the main guys from Apogee / 3D Realms / Duke
Nuke'em.

~~~
julianpye
Also great to watch - very different approach.

------
Untit1ed
Listening to notch umming, ahhing and changing stuff at random in a desperate
effort to get his program to work makes me feel so much better about my own
(similar) programming process.

~~~
agumonkey
I remember feeling the same watching a lisper (who I always assume being uber
flawless gurus) being confused about something trivial.

------
rplnt
Watched it for about a minute and got a great quote: "everything sucks about
this language".

So yeah,

 _Everything sucks about Dart._

-notch

~~~
Untit1ed
Funnily enough he was referring to the fact that doubles are proper nullable
objects, the inverse of a common reason for people saying that Java sucks.

~~~
anonymoushn
Do people really say "I wish that all my doubles were actually Maybe<double>s,
which could cause my program to explode at any arithmetic operation?" I have
never heard this complaint.

~~~
TheLoneWolfling
What I want:

No object/primitive distinction, but you have to explicitly make objects and
methods nullable, and the dereference operator is null-safe. (You use the
dereference operator on a null object, you get null. You use the dereference
operator to call a nullable method on a null object, you get null. It is a
compile-time error to call a non-nullable method on a nullable reference where
the compiler cannot prove that it won't be null. Pure functions are implicitly
nullable.)

It is a compile-time error if you assign a nullable reference to a non-
nullable reference and the compiler cannot prove that it won't be null.

I've also had an idea for what I call a "pseudo-statically typed" language:
instead of checking types at compile time, it checks that you implement all
functions called on the parameter at compile time. Public variables are just
syntactic sugar for getX/setX, operations are just syntactic sugar for
addX/subX/etc. If you define a method with an input type of X, the compiler
checks that you only call methods that are defined in X, and then replaces the
type with the methods actually called.

But nullable "primitives" can actually be useful occasionally, for caching,
for example. Having a separate boolean flag works, but can be inefficient (you
can store null internally as NaN with a specific payload, for example, whereas
a boolean flag generally requires at least a byte, more with alignment. This
also allows easier atomic updates.)

~~~
laureny
Kotlin seems to do exactly what you want.

~~~
TheLoneWolfling
No checked exceptions, which for me is a dealbreaker.

~~~
dinkumthinkum
No checked exceptions is a deal breaker for you for a programming language?
What kind of deals are you making?

~~~
jaxytee
One with the programming underlords.

------
pearjuice
Notch his success has nothing to do with being good at programming. It's about
being creative and able to create good game play.

Because he programmed game play routines a lot and dealt with everything
involved (i.e graphic rendering and such) more than the average Joe it looks
like he is a good programmer because he just shakes it out live on some
streaming website. Those concepts are language-agnostic and you can remember
them.

~~~
jblow
Anyone who could make Minecraft by himself is at least kind of okay.

I recommend you build a game of similar scope before saying stuff like this.

~~~
pikachu_is_cool
To me, your comment is a strong implication that Notch is a gifted programmer.
If you meant "at least kind of okay" literally (he is better than average),
then feel free to ignore me. Otherwise, read on.

I know tons of people, myself included, that have coded something of similar,
if not bigger scope than Minecraft. The only difference between Notch and
everyone else is that Notch ended up creating a game that became extremely
popular. It is a combination of skill and luck. Thinking it is all skill, and
even worse, thinking that you are "gifted" because of such a happenstance is
very unhealthy.

~~~
coldtea
> _I know tons of people, myself included, that have coded something of
> similar, if not bigger scope than Minecraft._

Pics or it didn't happen. Merely writing something with an equal or larger
amount of LOC doesn't count.

~~~
pikachu_is_cool
Then what does count? Download count? Net monetary gain? Fame?

------
maaaats
I'd have a hard time writing code knowing someone is watching me, judging
every step. I'm so used to the cycle of making something that passes the tests
-> refactor loop, and the code produced in the first iteration is so bad
compared to what it will end up like.

~~~
unoti
If not caring about being judged were a tangible resource, and I had larger
reserves of it, I know I'd be more successful. Fear of judgement makes me do
all kinds of dumb things, and often subdues me into inactivity. It's something
I'm working hard to combat.

------
cmaggard
This new title is absolutely ridiculous.

~~~
Kiro
Yeah, I would love to hear the reasoning behind the title change.

~~~
lewispollard
I'm guessing whoever changed it doesn't know what Ludum Dare is.

------
Shank
I'm a really big fan of having inspiration like this to start learning a new
language. I'm happy he choose Dart over Java for a change of pace.

~~~
melling
Isn't Dart an easier language to work with than JavaScript. Notch is probably
being practical and thinking long term. At 100,000 lines of code, you want the
"cleaner" language.

~~~
hdra
Java != Javascript

~~~
melling
What does Java have to do with what I said? His current web project wasn't
going to be written in Java. Why bring it up?

~~~
andrewingram
The comment you originally replied to was pointing out that Notch usually
writes in Java.

~~~
melling
Hmmm. I guess the question is why he chose Dart over JavaScript for the web?
He must have had another reason for going with the web other than to try
something different than Java.

~~~
sehugg
The Dart editor is Eclipse-based, so the IDE at least is familiar.

------
philliphaydon
Just spent about 5 minutes watching him program and test a game... Can't watch
anymore, do people actually enjoy this sort of thing? I think its more fun to
program than to watch someone program...

~~~
wpietri
I've spent a lot of time pair programming, and my normal tolerance for pure
watching is 10 minutes or so. I think that's pretty typical; seasoned pair
programmers have a lot of tricks to make sure control shifts frequently so
that people don't get board and mentally disengage.

That said, I really enjoyed watching this stream for a while, and will come
back later. One of the best parts of pairing is picking up tricks. Watching
Notch work on the graphics was _amazing_. I've never done video games with
modern tools, and seeing how somebody quickly iterates, always coming back to
a running demo to see how it feels was great. In 90 seconds he added snow.

As somebody else mentioned, it was also great to be reminded that even legends
are human. He's constantly making little mistakes, trying little experiments,
being puzzled by something. If anything distinguishes him from the people I've
paired with, it's his cheeriness in the face of adversity.

Also, I love this bit I just heard: "Does Santa shoot? Does Santa _shoot_? No.
I think Santa swings his mighty sword. A sword? Yes. Santa wields a sword."
It's so easy to think that well-tuned games spring full-formed from the minds
of their creators, but real creativity is like that: continuous exploration
and experimentation.

------
Kiro
He just scrapped the whole game he had been working on for 6 hours (it was
some kind of endless runner in a 3D forest setting) and started on a new one.

~~~
pulmo
He scrapped that too and is now back in the forest :D

------
dave809
For anyone wondering, the theme for this ludum dare is "You Only Get One"

------
StandardFuture
This reminds me of my LOVE for the fact that programming is just as much (if
not more so) an art than it is a science . :D

------
frik
Finished game source code:
[http://test.notch.net/ld28/ld28.dart](http://test.notch.net/ld28/ld28.dart)

Finished game:
[http://test.notch.net/ld28/ld28.html](http://test.notch.net/ld28/ld28.html)

~~~
frik
The Ludum Dare 28 page: [http://www.ludumdare.com/compo/ludum-
dare-28/?action=preview...](http://www.ludumdare.com/compo/ludum-
dare-28/?action=preview&uid=398)

------
snitko
The concept of streaming such a thing is great. Except that twitch.tv seems to
be for gamers and windows only. And I can't find any description on their
website of how to download and run even the Windows software that would stream
the video.

~~~
abstractbill
If you're interested in streaming more general programming, check out twitch's
sister site, justin.tv - more specifically the new Creativity category
([http://www.justin.tv/directory/creativity](http://www.justin.tv/directory/creativity)).
We have a bunch of awesome people doing live coding already, and we're very
interested in helping more people get started. Feel free to email me -
bill@justin.tv - if you need any help.

------
philliphaydon
[http://www.twitch.tv/dvcolgan](http://www.twitch.tv/dvcolgan) <\-- this guy
is using VIM and CoffeeScript to make a game...

I now find CoffeeScript scary... and I use CoffeeScript...

------
groovy2shoes
For some reason, I really like having these live streams (both the Notch one
and the George Broussard one) on in the background when I'm programming.
Something about hearing other people hacking away helps me get in the zone,
and periodically checking the video helps me get re-motivated if I happen to
lose focus.

I'd love a site like Twitch but specifically for coding sessions (seems to me
like Twitch is primarily for gaming sessions?).

------
eps
How do you skip or remove the opening commercial?

YouTube ads skippable in 3 seconds are more or less OK, but these run for
whooping 1:30 with no option to skip. That's _really_ pushing it.

~~~
pathy
Why would you? Running a video streaming service is hardly free. It is only
like 30 sec of advertisement.

If you really wanted you could use an ad blocker.

~~~
null_ptr
I'm surprised there's people here that don't.

~~~
sharkweek
I don't -- I put up with ads because it's the way people online who produce
content get paid.

Sure, a lot of people take advantage of spamming ads, but if it bothers me
enough, I just wont revisit their content.

------
jebblue
It looks like Java, classes, super, static, the editor shows the little red
error decorations so you can quickly resolve a new edit and test. This looks
like Java? Maybe DART is worth giving a try.

~~~
jebblue
OK, I can't go to the Marketplace in Eclipse and install it, Strike 1,
Perspectives are removed (HUGE) Strike 2, the entire Window menu has been
removed Strike 3.

------
macarthy12
This is great, for all the reasons everyone has said so far.

Like to pair with people ?
[http://www.pairprogramwith.me/](http://www.pairprogramwith.me/)

------
angrycoder
Anyone know which steaming music station he is listening to?

~~~
petercooper
So far he's been alternating between.. di.fm's Electro House channel:
[http://www.di.fm/electro](http://www.di.fm/electro) .. his own Autechre
playlist, and the latest Boards of Canada album.

If it sounds like upbeat ravey house music, it's electro house. If it sounds
like a headache waiting to happen, Autechre. If it's pretty dreamy stuff,
Boards of Canada.

~~~
shurcooL
Thank you so much!

------
taude
I'm enjoying popping in and watching for a couple minutes here and there.
Interesting watching how progress happens.

------
esalman
All I see is "totally stuck! BRB". How long has it been there?

~~~
randartie
About 15 minutes since your post. I guess you have to take breaks when you
program for hours straight.

~~~
esalman
Looks like he went out to get himself some chicken :)

------
jiggy2011
Seems to be having trouble deciding on a game to build.

~~~
sntran
The theme this time, IMHO, is not very easy to pick a standout idea to work
on. Almost everything you can make will fit that theme, and thus, is hard to
create a unique or fun one.

------
tunnuz
Love the sound of his keyboard.

~~~
pulmo
I think he uses Das Keyboard.

~~~
eieio
I believe he uses a Das at work(saw it mentioned in a story about Mojang a
while ago) but he mentioned on stream that he's currently using an old IBM
Model M.

Both are nice mechanical keyboards with a wonderful sound though :)

~~~
tunnuz
Is there a reason why one would prefer a Das keyboard over a Model M?

~~~
ics
Native USB, choice of switches, appearance, full NKRO. I would be fine with a
Model M myself, but those are at least a couple distinct differences.

------
smoyer
He's now off-line

------
GrahamsNumber
[http://test.notch.net/ld28/ld28.html](http://test.notch.net/ld28/ld28.html)
-> Notch's game. Runs like garbage on my firefox though

~~~
floitsch
According to twitter, upgrading to FF 26 fixes it.

~~~
ics
I'm on FF25– the framerate is fine _and_ it's heating my apartment. Win win.

