
Time lapse screencap video of a games programmer - SandB0x
http://www.youtube.com/watch?v=ZV-AFnCkRLY
======
MartinCron
Here we have one of those multi-talented programmers I keep talking about. The
same programmer did the code, high-quality sprite illustration, and even the
music to the youtube video (which was pretty good, and matched the nature of
the time lapse video).

I am inspired by this. I'm going to do this the next time I work on a game.
Has anyone used time-lapse screencap software they can suggest?

~~~
clistctrl
To me the really impressive part is his ability to stay attentive. He never
strayed away, starting surfing the web etc.

~~~
MartinCron
I was impressed by that too, although I did see a quick twitter check in there
at least once.

I'm sure I would do my best to appear attentive when working on something like
this, limiting my twitter/facebook/hn browsing to my iPhone/iPod/laptop.

~~~
carussell
_I did see a quick twitter check in there_

He posted about development progress.

~~~
rev087
He also posted a screenshot in a Wordpress blog.

------
Luc
This is a great portfolio idea, actually! The guy doing this is a pro, but
this is within reach of people just starting in the business. Someone straight
out of college applying as junior programmer with a video like this would move
to the top of my pile (were I hiring, which I'm not).

This video shows off a sense of initiative, a love of games, talent, and a
knack for getting things done under time pressure. Nice!

------
kd5bjo
You can play his game from [http://www.ludumdare.com/compo/ludum-
dare-18/?action=preview...](http://www.ludumdare.com/compo/ludum-
dare-18/?action=preview&uid=398)

172 people each wrote a complete game last weekend, and you can play all of
them from [http://www.ludumdare.com/compo/ludum-
dare-18/?action=preview...](http://www.ludumdare.com/compo/ludum-
dare-18/?action=preview&etype=compo) .

------
ugh
That game is from the Minecraft guy [1], here is his blogpost [2].

[1] <http://www.minecraft.net/>

[2] [http://notch.tumblr.com/post/998637682/minecraft-
alpha-v1-0-...](http://notch.tumblr.com/post/998637682/minecraft-
alpha-v1-0-17-03-finland-and-metagun)

~~~
daychilde
I just wanted to present a warning about Minecraft: That game is distilled
binary crack. I have lost a couple of entire days to the damned thing, and I
only purchased it a couple of weeks ago.

So just be careful if you try it out.

I'm a recovering Minecraftoholic.

~~~
traskjd
Off topic, but I also purchased it and just don't get it. Or is that part of
the appeal? I can't decide since I do spend time with it but more trying to
work out wtf I'm meant to do :-)

~~~
daychilde
If you're not meeting any monsters, check in the options and change from
"Peaceful" to another mode.

Beyond that - there aren't really any goals. It's a huge sandbox. However,
there may be some depth you're missing:

\- There are some 'toys' to play with - minetrains, for one. You can build
tracks and minecarts - unpowered and powered.

\- If you dig deep enough, you can get redstone, which can be used to simulate
electrical circuits. There's a whole thread on the Minecraft forum with basic
constructs like OR / AND / XOR / etc - people have built things as complex as
a twelve-hour clock (although it doesn't keep time accurately because there's
no way to synch time - but it is as close as could be made and does function
in the sense that it accurately counts 60 seconds, 60 minutes, twelve
hours...) - I also saw a turing machine being worked on, as well as a few
other similar devices. VERY complex stuff, considering.

\- People have developed cannons

The more basic activities include finding caves and exploring them...

But there's some great silly stuff - like you can make a saddle and go ride
pigs.

Is any of that stuff you've missed that sounds interesting? I hope so.

I suppose it's a game that might appeal more to younger folks - but as a
35-year-old, I love it. But I always loved SimCity, Simutrans (a freeware
transportation simulator. Disclaimer: I'm the "Benevolent Dictator" of the
International forum, and provide much of the hosting)... I also played GTA:SA,
but not really the official missions - I just drove around and made it my own
sandbox... Flight simulators...

All in all, I don't so much like games as I do simulated environments... so
Minecraft is right up my alley.

------
10ren
Source code: <http://www.mojang.com/compo/metagun/metagun-source.zip> (linked
from [http://www.ludumdare.com/compo/ludum-
dare-18/?action=preview...](http://www.ludumdare.com/compo/ludum-
dare-18/?action=preview&uid=398))

I compiled (yucky) with (after unzip + _mkdir build_ ):

    
    
        javac -cp build src/com/mojang/metagun/{entity,level,screen,}/*.java -d build/
        cp {src,build}/com/mojang/metagun/screen/exposition.txt 
        jar -cf app.jar -C build . -C res .
    

You need some html to run an applet; App.html just needs this:

    
    
        <applet code="com.mojang.metagun.Metagun" archive="app.jar" height="480" width="640"></applet>
    

Run with:

    
    
          appletviewer App.html
    

New to me (but probably standard to game writers) is: using a png to represent
all the maps combined (like 10x10 maps), with each pixel's color representing
a game tile type (eg. yellow for oil drum, purple for portal cube, red for
spikes, green for signs etc). This representation is really cool, because it
looks like what it represents (an isomorphism): you can "see" the level in a
png editor, even though what you're seeing is not the actual level.

Another aspect of how the data representation drives the game, is that there
are no explicit arcs between game screens - instead, the screen design allows
your character to walk off-screen, then that point enables you to transition
to the next screen. I guess it's the most obvious way to do it: it's as if you
are zoomed into a particular section of the 10x10 maps, and then you can move
to adjacent maps. Maybe it's just that I've spent too much time with nodes and
arcs recently :-), expecting logical concepts to be explicitly specified,
instead of implied by the design. Anyway, there is no sequential index to get
to a particular screen; you have to follow the path. Or you can look at that
png. eg, the final boss screen is at _xLevel=3_ , _yLevel=10_ (you can
initialize those values in _GameScreen.java_ ; and you need to change the
player start location too, because now it's not derived from the previous
screen: change the last two args in the following _new Level_ line, from 0,0
to 10,10).

~~~
Ogre
I've seen the bitmap to level trick used before, but most "normal" (not
developed under severe time constraints) games would eventually have a level
editor implemented alongside the game. Personally, I'd be more likely in this
situation to implement it as a text file and edit it with emacs picture-mode.

I've also heard of some bitmap-as-data atrocities. A colleague who worked with
an engine from a certain well known single player RPG described how bitmaps
were used in that engine to control animation states. Like, if walking and
getting hit, which animation takes priority. There are as many ways to
implement that system as there are game developers. For some reason this
developer elected to store those matrices as BMP files, and edit them using a
paint program.

The bitmap as level trick is a great shortcut for prototyping and rapid
development, perfect for this contest. But I can't imagine the thought process
that led to using one for animation data.

~~~
10ren
emacs picture-mode would be handy, otherwise it's difficult to maintain fixed-
width. In practice, I have a lot of trouble with it. I think huge maps (those
10x10 ones) could be a problem, simply due to size; paint programs have zoom
as standard, and of course the natural size for a pixel is pixel-size. Though
I'm certain emacs has arbitrary zoom-mode.

At least he was using a data-driven approach. There's a lot to be said for
that (as opposed to coding it), provided you can find a good representation.
As Brooks ~ said "show me your flowcharts and I will continue to be mystified;
but show me your tables and all will be clear." He's talking about
communicating it to another, but a (appropriate...) data-driven approach is
also more flexible, simpler and easier to reason about, because it embodies an
abstraction and isomorphism of the solution space. Of course, if it turns out
insufficiently rich, you'll wish it was code (or at least that it can be
supplemented with code.)

~~~
TeMPOraL
A year ago, when I was developing a retro Pacman for cellphones (J2ME) as a
university project, I decided to use a text file to store maps. It was before
I knew about emacs picture-mode, and I was working on Windows, so I actually
used MS Excel for the job.

You resize the cells to make them square, insert a formula that will rewrite
all cells from a given row into a single string (so you could then just copy a
column with those strings and paste directly into Notepad, or something), and
then you can use convenient navigation with arrows, tab and ENTER to create
the map (also filling entire row or column by one mouse drag was handy).
Moreover, if you add "conditional formatting", you can make all different
tiles appear with different colors and font styles (like walls with dark
background or pickups colored in gold, green, etc.). It's a 2-minutes-to-do,
poor's man map editor for tileset-based games :).

------
dstein
Clearly I spend way too much time switching between my code and mindlessly
browsing the internet.

~~~
nostromo
I was going to comment here, but I should get back to coding...

------
Gimpson
I think that watching a five minute video like this of my day before I went
home would be more motivating than reviewing my Rescue Time statistics.

~~~
raquo
^^^ Free startup idea

~~~
paraschopra
I'm pretty sure someone's on it by now. This definitely looks like a killer
idea.

------
joshu
That's not "a" video games programmer. That's Notch.

~~~
daten
If you're like me and still have no idea who "Notch" is..
<http://www.mojang.com/notch/>

------
pcestrada
Can anyone discern what tools he was using? I know the IDE was Eclipse. And
Paint.net for the artowrk. He had something really cool for the sound effects,
but I couldn't tell what it was. It's a fun little game with some neat ideas:
<http://www.mojang.com/compo/metagun/>

~~~
thibaut_barrere
> He had something really cool for the sound effects, but I couldn't tell what
> it was

It's sfxr: <http://www.drpetter.se/project_sfxr.html>

------
paulitex
He really did that all without a search engine or looking at any API docs??
Maybe it's just cause I'm not a games programmer, but that's insane. How does
he know what he's programming to?

~~~
mcgraw
Experience. Code with an API long enough and you're pretty aware of the tools
at your disposal. At this point you're not learning new stuff. Finally, this
likely pales in comparison to what he is typically used to doing.

~~~
icey
Eclipse has autocomplete and documentation built in as well, right?

~~~
mcgraw
Autocomplete is there. Also you have the ability to create your own micros
that you can use to build skeletons (like a function, or a loop). I'm not sure
about itegrated docs. You'll probably get a brief pop-up (hit-or-miss), but
nothing like XCode's inline docs.

~~~
ckuehne
FYI: Docs are fully integrated and appear for example together when moving
through the list of autocomplete suggestions. Very similar to XCode's inline
docs. Alternatively, you can press Ctrl and every function call, class
definition and so on becomes a link to the source code defintion of that
function or class, respectively. Such are manifold possibilies for tool
support in statically typed languages.

------
albertzeyer
I seem to miss such contests most of the time and only hear about them when
they ended. I would love to attend to some, just for the fun (because I don't
know if I would have any chance to actually win).

Where would be a good source for such competitions?

Another fun competition I read about was the Super Mario AI competition in
2009 where the winner has succeeded with an A* algorithm which he presented in
a nice video: <http://www.youtube.com/watch?v=DlkMs4ZHHr8>

The 2010 Mario AI championship also seems to be over already.

Another fun competition I have heard about is the International Obfuscated C
Code Contest. However, while reading this is very interesting and quite fun, I
am not sure if I would have fun to do this myself. (Somehow I am more focused
on the output/result of the code and I like to have clean, elegant and
intelligent code, as less obfuscated as possible. :))

~~~
joeld42
There is a gamecomp mailing list that sends out announcements of the LD
contests. It is extremely low-traffic, basically only compo announcements
(thrice yearly):

visit this to subscribe. <http://www.gamecompo.com/mailing-list/>

The TIGSource "Competitions" forum is a great resource.
<http://forums.tigsource.com/>

They host the occasional compo there, and they usually have a thread
mentioning most other compos before or as they occur.

ps. I participate in some of these under the name 'jovoc'.

------
arohner
Has anyone tried the game? It's almost completely unplayable. I get about ~1
FPS. (OSX 10.6, Chrome)

EDIT: appears to work fine in FF

~~~
bd
Works very smooth for me (Win 7, Firefox 3.6.8).

    
    
      <rant>
    

_As a sidenote, this difference of experience highlights a big problem with
rich web applications.

You get so high variance in performance depending on a particular combination
of hardware, OS and browser that you are virtually predestined to fail hard
for some non-negligible part of your userbase (unless your application is so
trivial that even on the worst possible platform it would still work ok).

I know, this problem existed with classical games all the time. But there,
gamers pretty much came to terms with "hardware requirements" (needed to play
the game at all).

With web, expectations are for some reason different. It used to be quite
expected and acceptable to buy new GPU/CPU/RAM to play a particular desktop
game, yet it seems like too much work just to fire a different browser and
copy & paste URL. I know I'm guilty of this myself, despite being developer
and regularly working simultaneously with multiple browsers.

And it's just going to get worse as performance spread will widen, both on
low-end (more people accessing web through mobile devices) and on high-end (as
HW acceleration slowly comes to new generation of browsers)._

    
    
      </rant>

~~~
necubi
Except that this isn't a rich web application--this is a java applet.

~~~
bd
Even more so then. No matter which solution you pick for "rich web" experience
(Java, Flash, HTML5, Unity), somebody is going to get subpar performance.

Also, Java applets are canonical example of RIA:

<http://en.wikipedia.org/wiki/Rich_Internet_application>

------
orph
Time lapse for his 2009 entry, Bunny Press:
<http://www.youtube.com/watch?v=abyL33Z6Z5I>

------
TheEzEzz
Awesome. I'd love to see a meatspace time lapse on the side, or in a small
box-in-box.

------
ScotterC
This has inspired me to do screen lapses of myself working at home. Get some
feedback on my own working style and get data on my methods and goofing off.

------
DrewHintz
[http://www.smbc-comics.com/index.php?db=comics&id=1898](http://www.smbc-
comics.com/index.php?db=comics&id=1898)

------
kgo
Am I the only one who thought this was going to be like those Meth PSAs? Where
we see how the programmer's physical condition decays?

~~~
salemh
I thought so as well.

------
est
see also: Flash programmer in 48h

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

------
albemuth
I admire the guy's focus, he checks twitter once for like a minute and goes
back to work

------
maukdaddy
I love the pauses to blog and tweet about the game. And not a single glance at
HN?

------
grizzydot
The main takeaway for me is don't get into long coding sessions. Test often.

~~~
amih
I really admire this achievement in such a short time. I should study the
source code and learn from this. Soon I will resign from work to start
bootstrapping my business and will take a look at the source code.

------
palish
What program did he use to record himself programming?

------
ajuc
That's what I need to not procrastinate when doing my game - record myself.

------
b0b0b0b
he has a multimonitor setup

------
Aetius
What software is good for time lapse recording on Windows?

------
swah
I wonder if he gets into editor wars online. Heh.

------
binarysoul
This is an interesting idea.

