6 ms·
Notch live coding for Ludum dare 22
- hucker 15y agoIt'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.
- sejje 15y ago>>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.
- babebridou 15y agoI learned programming with Eclipse default settings and Java, on a PC with a classic AZERTY straight keyboard with 105 keys layed out in the classic way. At some point there's not debate, yeah Java is crap, yeah Eclipse is laggy, etc, but my hands, brain and code work completely in concert when all those are united and there's no question that I can get anything done much, much faster with these. I actually gave up on using a macbook after a year and a half of constant practice because it still felt far too tiring to build my android apps compared to the PC, even though it was still Java and Eclipse. 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.
- swah 15y agoDoesn't look laggy on his PC though...
- ditoa 15y agoI use vanilla Eclipse on a 3 year old Dell Studio laptop (2.53Ghz C2D, 4GB RAM, 2x320GB 7200RPM HDD, AMD Mobility Radeon 3650 HD, Windows 7 Ultimate SP1 x64) and it runs perfectly smooth. Just as smooth as in Notch's video. I have no idea what people load their computers with to make them run so poorly :-/
- babebridou 15y agoTo be honest I don't know either. Eclipse has always runned fine until the rare day when some plugin goes overboard and destroys all hope. 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.
- skore 15y agoEclipse being laggy has a lot to do with what extensions and editors you install. If you know how to configure your setup correctly (ie. not install a huge all-in-one package with tons of crap you will never need, compare different extensions that are similar in functionality and choose for performance), it will be smooth. For me, coding in PHP is a good example - I tried a handful of editors and settled on the dinosaur PHPeclipse instead of some flashy PDT. It has better highlighting (to me, at least - probably only because it's the kind of highlighting I'm used to) and runs fast as a cheetah (I have a shameful couple of files that rank in the 20k+ lines and PDT would stutter on those... when I was moving the cursor). The final issue most people cite is startup time and so far, the only remedy I have found for that is keeping your workspace folder tidy and using an SSD.
- gavingmiller 15y agoUsed to do the same thing with my electric guitar. I kept buying new pedals thinking that I would sound great once I found the perfect combo. Never made me a better player though.
- TillE 15y agoIt's like cooking: you want simple, quality ingredients. You can't beat a good guitar connected directly to a good amp.
- nate 15y agoI'm not intending to troll you :) I swear. But actually your comment might miss the point of the OP. Give Jimi Hendrix or Slash the worst guitar and the worst amp and he'll make much better music than 99.99% of the population. Same with cooking. Have you watched Top Chefs do the gas station challenge? They can take the shittiest ingredients and run circles around most chefs who have unlimited budgets to spend on organic, fresh, whatevers.
- nate 15y agoThere's also maybe a similar point to be made about him using Java to code his games. 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.
- swah 15y agoAnd with Eclipse having something like "hot code reloading", the style of coding is pretty much the same as one folk programming Lisp with Emacs+Slime (edits and sees results immediately).
- spacemanaki 15y agoI'm a card-carrying Java-hater (haha only serious) and Lisper, I was pretty damn impressed by this the last time I watched Notch working on a LD thing. I looked it up this time and found out that Eclipse calls it "hot code replacement" http://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F 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.
- theatrus2 15y agoThere is also JRebel, which goes beyond hot code replacement: http://zeroturnaround.com/jrebel/ http://zeroturnaround.com/jrebel/ Works with pretty much anything JVM.
- akeefer 15y agoThe DCEVM is a patched version of JDK 7 that allows the code reloading mechanism in the JVM to swap nearly arbitrary changes. I'd highly recommend it if you're trying to do any dynamic reloading of Java code during development. http://java.net/projects/dcevm http://java.net/projects/dcevm
- billmcneale 15y agoYou can absolutely modify the body of not only an existing method but the very method you are currently breakpointed in. When you do that, Eclipse drops the frame, which means it restarts the method from scratch. Invaluable for debugging.
- akkartik 15y agoI 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 15y agoBooks 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 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.)
- rhizome 15y agoEclipse:Java::Textmate:Rails
- rufibarbatus 15y agoI heard that, once asked about which guitar model was his favourite, Keith Richards said "give me five minutes and I'll make 'em all sound the same." [1] [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&oldid=466307283#Guitars https://en.wikipedia.org/w/index.php?title=Keith_Richards...
- littledude 15y agoThe same theory applies for pro PC gamers, an unusually high amount use $10 microsoft optical mice. Then there's the majority of casual players arguing over the details of the latest $90+ mice with bells and whistles.
- dkersten 15y agoI use a $60 logitech mouse for everyday use. I love the sensitivity (5000 dpi laser mouse) and find it awkward do use other peoples mice. Of course, I'm no pro gamer, so your statement is probably backed up by this.
- Brashman 15y agoI used to play WoW at a relatively high level (no server firsts or anything, but end game raiding). I didn't always have the "best" UI add-ons installed and did some things that were considered beginner mistakes (keyboard turning), but I knew what I was doing and I knew the game well so I still performed well. 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.
- aaronblohowiak 15y agomicrosoft-branded optical mice tend to be of very high quality; besides my (steel) keyboard, it is the only peripheral that I have used for more than 10 years.
- Scaevolus 15y agoWatching 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 15y agoYou 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.
- ericb 15y agoI'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?
- scottostler 15y agoI 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.
- PaulJoslin 15y agoYou 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 15y agoI 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 15y agoSome things need to get done no matter what.
- ANH 15y agoIn 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.
- PaulJoslin 15y agoI 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 15y agoDrawing 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 15y agoFeynman springs to mind. A Nobel winning physicist with some success after a lot of practicing.
- weaksauce 15y agoI 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.
- helium 15y agoAnywhere I can watch this on a iPad?
- ronnier 15y agoDownload the free twitch.tv app
- mrspeaker 15y agoGreat fun to watch! He just posted a "work in progress" version: https://s3.amazonaws.com/ld48/ld22/index.html https://s3.amazonaws.com/ld48/ld22/index.html
- atambo 15y agoGo to https://s3.amazonaws.com/ld48/ld22/index.html https://s3.amazonaws.com/ld48/ld22/index.html to play the game (he updates it periodically as he's working on it).
- aw3c2 15y agoI 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.re2cb52468e1a1f82af503eac77b389e6fc8e5282.swf http://www-cdn.justin.tv/widgets/live_site_player.re2cb52468... -p "http://sv.twitch.tv/notch http://sv.twitch.tv/notch --live -y "jtv_NkzwEXgKbSnzmSP_" It is a shame that things like this are encumbered and tightly controlled.
- gue5t 15y agoI've gotten further with this: http://pronou.net/code/jtvdump http://pronou.net/code/jtvdump
- citricsquid 15y agoWhy would you when justin.tv release the videos as soon as the stream ends?
- aw3c2 15y agoI checked some random videos on justin.tv and could not find an option to download the files. Is that indeed possible?
- langsamer 15y agoIs that the music he is listening to or is that just ambiance music added by twitch.tv?
- zandor 15y agoYeah 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!
- nvictor 15y agodigitally imported or something...
- 54mf 15y agodi.fm. Electro House, if I'm not mistaken. Superb programming music, in my opinion.
- hpaavola 15y agoHe 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.
- HalibetLector 15y agoI 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 15y agoThe 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.
- JoshTriplett 15y agoI don't know the technique in this case, but personally I use a ThinkPad with a mouse on home row and buttons right next to the spacebar. I can go from typing to mousing almost instantly, though I still prefer to do everything possible with the keyboard unless I truly need an analog input device.
- bobthedino 15y agoAnyone know what third party Java libraries he's making use of (if any)?
- deniszgonjanin 15y agoGo watch him code and then decide for yourself if there is such a think as a 100x programmer
- sontek 15y agoI have to open up documentation all the time when I'm working, hes just hacking away... its beautiful.
- theon144 15y agoDammit, 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 15y agoHistorically, 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 15y agoJust to follow up, here's the archived version of the very start of the stream: http://www.twitch.tv/notch/b/302823358 http://www.twitch.tv/notch/b/302823358
- jebblue 15y agoI 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.
- sidmitra 15y agoI've been working on a dribbble for the Game Dev community, http://www.metroia.com http://www.metroia.com, hoping to launch Jan 1.
- resnamen 15y agoWow, it's cool to see him modifying classes on the fly. He's tweaking RGB value constants and seeing the result instantaneously.
- jiggy2011 15y agoHas 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.