Hacker News new | past | comments | ask | show | jobs | submit login
Learning VIM while playing a game (vim-adventures.com)
497 points by yogsototh on April 23, 2012 | hide | past | favorite | 125 comments

Congratulations to that very nice and useful game! I loved to play around with the first 2 levels.

It's a pity that the project's state is totally unclear (at least to me, a casual visitor). Is it meant to become a community project? Is it a demo of something that will be sold in the future? The explaining text behind the "Unlock Levels" button adds even more confusion:

> Additional levels are currently being developed for you to play and enjoy. The 3rd level will be available for FREE only for players who sign up for my email list. Sign up now! You'll be notified as soon as the level is up. The level won't be available for unregistered users.

On the one hand, it sounds as if it is free, with some "forcing" to make more users join the project mailing list. On the other hand, this is totally discouraging contributions (because you aren't allowed to see the work-in-progress version), so maybe it's meant to become for-sale in the future.

I'd love to see it developing either way (although I think the community way is the more appropriate for this project). But as of now, it seems to unify the disadvantages of both worlds: Advertising the mailing list in a way that appeals neither to people who are willing to pay (as there's no clear pricing plan), nor to people interested in contributing (as it seems to more about announcements/"newsletters" than about how to improve and to help).

I'm happy that you loved the game and finished the first two levels! Thank you for your feedback. That kind of feedback is what I'm looking for in this stage. The project is intended as an educational game, but for a price. The first stages and the email list was meant for me to get a better understanding if there is a demand for such a game (as I hoped, since I would like to play it :) ) The reason that it's not clear yet is that I didn't finish enough levels and didn't set the price yet - so there is no "Buy License" button, only the mention in the end of the second level. I'm not trying to force anybody, just trying to get a feeling if it's a good thing to invest time and money in, besides love. I hope to have enough levels soon and a clear pricing plan will follow. Thanks again for your comment.

Right when the second level ends, it says "You learned some word navigation and managed to get here. But you have to buy a license to unlock the rest of the game and continue learning VIM!"

It is not free.

I will pay for it if it is reasonably priced. Beating the first two levels took me not very long at all, so, there will have to be a lot of content.

Not to mention that this all goes against free software values, in a game that touts "the power of open source".

Bad argument imho. There are e.g. vim books or peepcode casts. Why shouldn't there be a game where you have to pay?

Only it should be mentioned clearly.

Instruction and service are some of the cornerstones of mainstream open source. No, it's not something RMS is a fan of, I believe, but it's what has allowed companies like Red Hat, and Canonical to stay alive, and to employ a large number of open source contributors.

> not something RMS is a fan of, I believe

He's not, indeed, but that's why the GFDL was created. [1]

Interestingly, the GFDL is designed to be appealing to commercial publishers. [2]

[1] http://www.gnu.org/philosophy/free-doc.html

[2] http://www.gnu.org/licenses/why-gfdl.html

Open Source != Free Software

Although I agree that both terms are not exactly equal as they emphasize different aspects, those differences are totally irrelevant to the argument at hand:

If you advertise your project by stating you are convinced of the "power of Open Source", but don't make use of that "power", how much credible is that?

No matter if you find this argument convincing or not, it has nothing to do with the difference between Open Source and Free Software. It's just about adverticing a proprietary project with "power of Open Source" versus advertising it with, say, "power of Vim".

Yeap and: open source != Free software != Gratis Software

I guess as a non programmer that buys software I am always shocked when programmers advocate that useful software shouldn't have a price.

You are confusing Free Software [1] with Gratis Software. Free Software usually does have a price, although not a price per license. Here's an official statement [2] from the GNU project:

Many people believe [...] that you should not charge money for distributing copies of software, or that you should charge as little as possible — just enough to cover the cost. This is a misunderstanding. Actually, we encourage people who redistribute free software to charge as much as they wish or can.

In other words, it is important to distinguish paid software from proprietary software, otherwise the situation and arguments become confusing, indeed.

[1] http://www.gnu.org/philosophy/free-sw.html

[2] http://www.gnu.org/philosophy/selling.html

There's a nasty double standard here - just because it's "software", people seem to be complaining that it's not free.

However, I'm sure the same people will happily spend $100 for a book that teaches some open-source tool. Or at least they would never complain that there's a price for it.


If I had the choice I'd rather spend $20 bucks on a wiki or website that was CC licensed so that it could be updated and improved without reliance on one individual. Same for software.

At the moment we seem stuck in the middle of this transition and you either pay for a locked down copy or you get the Free copy for free. But Kickstarter seems like it's getting mainstream so the concept of paying in advance for something that is built to the specifications of the user may at last become common in software.

Books are physical things, programs are not. Physical things are often thought to have more intrinsic value than virtual things because the money was transformed into something you can touch and feel versus a vague collection of bits somewhere on your gargantuan hard drive.

Then software companies might add intrinsic value by selling storage media containing the programs, instead of just the programs.

Very interesting idea, but something seems to be off with the email signup - it reports "Error: SMTP Error: Data not accepted. Mail could not be sent." for two addresses I tried, one of them @gmail.com.

However when I try to sign up a second time a minute later with the same address, it reports "Email address is already on the list".

Thank you very much for mentioning my site here! The problem with the email signup is that I exceeded the maximum 500 mails that google outgoing mail server allows per day (500). All emails are entered to the list first, even if the confirmation mail isn't sent. I'm working on setting up an outgoing smtp server so I'll be able to send more mails. At this point gmail won't even allow me to email from my account. As soon as I have an outgoing mail server I'll send the mail again for anyone who subscribed. So if you get a message that your email is already on the list, everything is ok and I'll send you the thank you email in the next couple of days. The third level, once it's up, will be open to you. Thanks for everyone who pointed that up and sent me emails about that.

I received the same error.


Cute, but the inability to use keys before "collecting" them makes it painful to use as an experienced vim user. I'd love to have a mode that just unlocks all the navigation keys immediately. That would allow users to fly through the early levels, and then get slowed down by the first thing they don't know.

I found it particularly clever how the game forces you to use better navigation, by allowing you to skip over rocks that way.

Also, teaching capital HJKL early on seems like a good way to make it through the maze more easily; hitting the same key repeatedly (or rather, leaning on it until hitting a wall) seems like a bad habit to teach.

I learned how to use the controls of VI decades before I actually learned that VIM existed, through Hack/Nethack. I thought the controls were ridiculous, but I was a kid, so I just accepted it and learned them, little did I know how useful they would become later on in life.

How close are the controls? I never noticed they were similar... maybe I should try to ascend again, as I'm terrible in VI

Movement in a lot of roguelikes is HJKL. Also it's very common for YUBN to make your character move diagonally.

You could almost make (d)ropping items into a similarity, too.

They could do something like this one for Emacs. Wait, it already exists: it's called Guitar Hero.

I fear you might have just caused that thing to spring into life.. I only hope that it wasn't actually rule 34 that triggered it.

Wow. This is absolutely genius. You want to be more productive with vim, but this is generally due to the fact that you have little time as it is. Learning vim hasn't always been in the best interests of my current task. Then there is this game. Brilliant.

Thanks! I'm at a loss for words. It's very kind of you.

You deserve it. You put a lot of work and effort into essentially helping people learn, which makes people's life easier.

I've gotten to the end of the level. Then I remembered that in the top corner of the Maze is another treasure chest. I go back there to the !! marks and type b but cannot enter that area.

The message reads "Remember: these are not words"... so how do I get in there? Can that part of the game not be solved?

I've tried Shift-B, ^ etc. Is anyone else able to get into there?

Nice catch! Actually, that's one of the places where a B would come in handy, but it's only collected in level 3 so the chest can't be accessed yet :)

Nope, that doesn't work. I already tried going back to the maze after getting B, and it still wouldn't let me in to the chest.

'B'. You got a 'b' (unless I'm very much mistaken).

Its only one word... fucking.. so what you need to do is press E from the F

Wrong spot. He's asking about the chest in the maze, where it said "Remember: words are not WORDS !!"

This is great! I've been meaning to learn the basic VIM keybindings so I can start using evil-mode in Emacs:


Couldn't move at first, then I realized I had to disable the vimperator plugin. Cool game though!

Ctrl-Z (passthrough keys to website) worked for me in Pentadactyl (and I assume Vimperator).

I think `Insert` does the same thing in Vimperator

heh. I had troubles too. I switched to chrome, where I don't have the plugin.

Nice! I got bored before I finished the first level, but not before I was trying to use stuff like ^,$ and ctrl+f, ctrl+b, 5l to get to the end of the tunnels faster and those didn't work. Is more advanced editing unlocked in later levels? or is this just for getting off the arrow keys? I can imagine some cool things in a more advanced vim game like * for teleporting between words, mm to drop a bookmark, :badd to get to a new level ...

The target of the first level was to cover hjkl. I know it's a pain and when you're proficient enough you usually don't use them but use tf*#/ and such, but it's the basics... The motions are working only on text areas (There are some on the 2nd level). Bookmarks are indeed planned for teleporting back to places, and I have plans for /Hello if you look at the first screen ;)

It starts out very slow - the second level introduces w, e and b. That seems to be it so far.

It keeps crashing Firefox. I am sort of wondering what in the world it is doing to manage to kill both Firefox and Chrome!

Aside from that, it was not immediately obvious what W and B did, though a few seconds of playing around and it made sense. (That is about how far I got before it died the second time)

I managed to crash chrome once, but couldn't reproduce it. I'm an indie developer so I don't have enough people QAing the product yet :/ My first gut feeling is the audio, but didn't have a chance to prove it yet. It would be great if you'll be able to send me more info on when exactly it crashed to my mail doron ( at ) vim - adventures . com . Other than audio, I really don't do anything out of the ordinary - all javascript and canvas. Regarding the w and b (and e), I left out the exact explanation since I believe that the self exploring and understanding contributes to the learning process. That part was intentional. Thanks for your feedback! I'll make another effort to reproduce the crashes.

It consistently kills chrome for me.

^ - Does it on the first level, when navigating the maze. Using latest version of Chrome and OS X.

Thank you for this. I have been putting off learning vim for way too long. Nano does its job fine :P

However, I can't input my email.. it has more than 30 chars. As per source:

<li><input id="email" name="email" maxlength="30" type="text" placeholder="Email Address" /></li>

Same here, but then even when I tried a shorter name, it gave me an SMTP error. :(

I fixed the 30 characters issue to allow up to 70 characters. And you may also use + signs in emails. The SMTP error doesn't occur anymore, and even when there was an error the email was still subscribed so no need to resubscribe again.

Incredibly slow here. Ubuntu 11.04, FireFox 11, intel graphics, 4GB RAM, Core 2 Duo E7300.

Same here: Ubuntu 11.10, 2 GB Ram, Core 2 Duo T7200, Nvidia Quadro NVS 110M/GeForce Go 7300.

It's awfully slow and thus unplayable. :(

Works very well here: Ubuntu 11.10 64 bit, FF Aurora 13.0a2 (2012-04-23), nVidia 295.20, 4GB RAM, Core2Duo E6600

Must be the graphics card then.

I've had this idea forever, but wanted to make it work in the as a terminal-based application. Being a noob a systems programming, I got stuck at getting a PTY working in C that would properly forward the escape sequences from vim to the player's terminal.

I wanted to just create a program that was simply a layer between the terminal and vim, so all the power of vim was automatically available. The game was going to involve manipulating the environment (made of text) to different goals. I had all sorts of minigames in my head. Unfortunately, way too ambitious, and I never even properly started it. This makes me really want to though, if only I had more time..

I really like this, and if the price isn't too bad I'll pay to keep going as I've learn't more from this than when I've sat down to try to 'learn to do VIM'. I guess there's only so much you can cover in this sort of game format (I'm doubting there will be a .vimrc level), but if it goes far enough to teach me to take all the lag out of navigating and editing, I'll be a happy bunny.

Thanks. I agree that a .vimrc level will be a stretch. I had some ideas on how to incorporate that to, but I think I'll leave it out. Once you get modal editing and know all necessary commands, motions, and operators to use, tweaking your .vimrc is a walk in the park (with a left turn on google street :) )

Just wanted to express my gratitude for creating such a game. It was a little saddening when I completed it though, as I really wanted to play more of it. Good job! I'm really looking forward to playing more levels. Do you have any plans for allowing others to contribute to level design or game mechanics?

Great little game! I never imagined a game would be so effective to get you to learn hjkl, but makes sense, most people learn wasd by playing games too.

I'm using a Macbook Air with Mac OS X Lion and Google Chrome and the gameplay is very smooth.

Wow. I've been aching to learn Vim for years, struggling through the rare occasions I have to use it while SSHing in to a machine. I've picked up more in 5 minutes with this game then I have in all that time. Very impressive!

After finishing the maze there is a roadblock at the bottom of the screen after talking to the girl who tells me about what happens if I step into water and there is no column above me... Is there a game beyond there?

It's a puzzle. You're only half-way through the first level.

I already know vim keybindings and this part stumped me for a little bit. I think that, while the rest of the tutorial makes sense without listening to the people, this is the only part where it isn't obvious from the environment what you're supposed to do. Just a thought.

No it's not over, use what you learned from her to advance in the game

Just made it past that. Thanks.

I already know VIM/use it on a daily basis and I found this fun and interseting.

Very cool - got an SMTP error when I tried to sign up though. :(

Pretty cool, just that sad smtp error at the end.

Chrome 19.0.1084.30 beta on OS X Lion is seeing nothing past the first screen for me. I hear sounds, but its a black box otherwise.

The only reason I can think of is that the browser didn't download the images from the server due to extream load on the server. I'm experiencing some server problems and opened a support ticket with my hosting company. If the problem persists, please contact me at doron ( at ) vim - adventures. com and I'd try to get to the bottom of it. Thanks.

Similar for me. Chrome 18.0.1025.151, Mac OS 10.6.8. I see the 'exit' sign and the music volume icons, but the screen is otherwise blank.

I'm running that exact config and it worked for me.

Very slow on my Firefox 11, Ubuntu 11.10, fglrx

I thought of this a few months back, glad to see it being done in such a polished manner! Looking forward to play more levels.

Are the two NPC's at the very beginning supposed to say nothing? I see a blank speech bubble when I walk to them.

Was silky smooth for me on a Mac Core 2 Duo & Chrome. Nice game and looking forward to more levels!

has a bug with option "start searching when I start" enabled on firefox, clicking cursor keys makes firefox open up quick search and the game becomes unplayable unless you keep clicking escape after every other button click.

The game looks fine! I already see how my kids will learn vim :)

This is exactly what I need as a beginning front end developer. Thanks so much guys, this rocks.

My only recommendation to learn vim is vim tutor. Slightly tedious, but fast and effective.

"...Slightly tedious..."

This is core problem with learning VIM, many people are off-put by VIMs complexity.

I think this game does a great job of letting the player explore vim commands, while complete objectives that are common to many video games.

What makes this game great isn't the fact that it's a video game that lets you learn VIM as you play. It's that it simply incorporates VIM commands into a game that could appear on any popular flash game site.

Very well done, keep up the good work.

I am learning VIM. Do you exclusively use VIM for both simple text editing and programming?

I use it for grading assignments (reading a .lisp file and writing a grade.txt file), as well as taking class notes. I also use it for editing config files (like for nginx) and dotfiles.

Taking class notes sound interesting. I want to move some of my stuff over to command-line like TODO and simple writing for distraction free environment. I am using Google Docs and Evernote at the moment but a combination of vim/terminal and Dropbox would be great.

crashed ("oh snap") in maze just a few seconds in, chrome 18.0.1025.163, mac os x 10.7.3

no crash on safari, but SMTP error on email form.

This is excellent! I really feel some of this sticking in my memory for once. Thanks.

Awesome game! @doronlinder you should really put a "retweet" button there asap!

great! i can move around with h, j, k, l ..... so what now? nothing happens then i time out and get sent back to little person blocking the bridge. is it my browser, ie firefox?

Nothing works for me - what's the minimum browser/OS requirement?

Ran fine for me on Chrome Stable/Windows 7, running 2.4GHz Core 2 Quad, 3GB ram, on-board video.

fine in Chromium 18.0.1025.142 Ubuntu 11.10

It crashed chrome!!..:)

Congratulations ! it was a very cool game.. hope we see the next levels soon and I also hope you'd open all the game levels even to unregistered users later. :D

works great for me! Safari 5 Mountain Lion

The email address box however didn't show my email as I typed it in

I wish this worked on iPad ...

awesome, I am learning vim since a week and this is definitely very useful.

had a lot of fun until it crashes the chrome tab. (like everytime)

This is soooooo cool (:

I don't use hjkl to move around in vim. At this point it's counter intuitive. Lame

The last word of your comment made me respond..

That'd be considered 'wrong' or missing out. Which the game tries to correct. Supposedly later levels will teach you about vim 'words' and you'll combine hjkl with lots of other commands. You cannot do that the way you use the software. How's that 'lame'?

And what kind of an attitude is this if you click on a game that is supposed to teach you about vim and complain that it's forcing you to learn something right afterwards?

"Cursor keys are not the way to move around in VIM"

That's why it's lame. You most certainly CAN. I don't care that other functions combine with hjkl in vim. They're useful but using hjkl for left/right/up/down is annoying and the restriction in this "tutorial" makes it that much worse.

Yes, you can, but there is a benefit to maintaining your fingers on the home row and not requiring a shift elsewhere. So while it might be an annoyance to you, other people disagree.

You're better off going through the pain of learning the hard way.

It's like cheating and looking at your hands when learning to type. You'll never really learn to type properly and it slows you down a lot. Sometimes you just have to bite the bullet and do it right. I wouldn't be able to hit 80 WPM if I had to stare at my hands.

Just use textmate. Lots of us love vim.

works very slow in firefox .. had to play in chrome.

Works wonderfully in later versions of Firefox, sounds like there might be a canvas bug causing poor performance in Fx 11

This is awesome!

why the site isn't responding?

doesnt work on my iphone 4. is this the future of cross browser compatibility?

it's an interesting project none the less.

It wasn't meant to work on mobile devices. It can and everything work as expected besides the fact that you must have a fully functional keyboard to use it and learn VIM.


cool :P I really liked it.

very cool

Fantastic! This game had me laughing instantly...gaining a proficiency in 'hjkl' via a crazy web browser game is a great idea!

On a side note, several times when playing through the game I noticed that my motions weren't working, and traced it back to this: that for me, the home row is jkl; and not hjkl. I don't know very much about vim -- is there a reason that you have to put your hand in the "wrong place" on the keyboard?

vi, which vim is based on, was programmed on the ADM-3A terminal, where the arrow keys are on the H, J, K, and L keys.



Ah. So it's a sort of Big Software Syndrome type thing -- "we could do it in a more intuitive way for new people, but it would break all of these existing programmers who learned it the less intuitive way, so let's leave it the original way" -- or am I missing something?

That may have something to do with it, but in practice, I find myself moving up/down (j/k) files far more often than I need to backtrack by a single character, and when I do, as often as not my pinky flies up to backspace (note this works by default only in Vim). It ends up being the most natural to keep your hands on the home row anyway.

Keep your hands on JKL;

This is also an important point because it strikes me that as I play this game I am learning that as an antipattern. Perhaps I should just stick with not-vim.

Your fingers should stay on JKL;. Going left involves lifting your index finger and moving it the the left, pressing H, and returning it back to J. When you're more proficient in VIM, you usually don't use h much, but ^ or 0 or T or F or b, lots to choose from :)

i wanna use vim less now :D

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact