Vim Adventure is great! I find it annoying that it's 25$ for 6 months, because I definitely won't pay again just to quickly redo one level. I think a one-time payment would be more fair.
Or maybe if they keep adding level, we could pay per level, so that the levels that have already been paid would stay forever? I don't know.
Agree wholeheartedly. I did pay once but the sour taste it leaves in my mouth to redo what I’ve done makes me reluctant even to recommend it to others. I do recommend it, but with a caveat that probably scares them away.
Hmmm, thats interesting. Right now it just shows every character press, regardless of what it was to achieve.
You'd be interested in something a bit more organized, so you can see how they got specifically from one target to the next. I do have a ton on the roadmap right now, but that has been added as well!
I actually think the wall clock time that is used here is a more useful metric here. Using as few keystrokes is not necessarily most "efficient" in time if you have to think longer about which ones to press.
Hi, I just engraved myself in the highscore for the jpeg level with 17 seconds. What a lovely competitive game! I had great fun just "shooting from the gut" (no minmaxing, just did the movements i would do "instinctively" to get to the requested position)
I particularly cherish the "show me the moves of leaderboard games" feature which hopefully can serve as an educational resource.
In regards to how the leaderboard is constructed, i noticed some of the top players are at 1 second, which doesn't seem humanly possible to me (that would amount to < 0.05 seconds per move). my assumption is they are using scripted input, which with this interface will be hard to prevent. i read you are still figuring out how to regulate everything, so here's an idea: if you rank the leaderboard by number of keystrokes (might consider special handling for shift etc.) instead of time elapsed, you will get the most efficient leaders instead of the fastest ones - that way scripting wouldn't help cheaters anymore.
I've had a similar idea on my backburner for two years, as a fun project to dabble in Elixir, but this is just so much more _fun_ than my version which looks like an admin page that just happens to have a Vim canvas on it.
I've heard that feedback before, but I couldn't quite understand what was wrong. I'd really appreciate your help in troubleshooting.
My understanding is that Shift + G should be absolute positioning, so 12G will bring you to the twelfth line.
I do deviate slightly from default VIM in that relative lines are one, so the line count starts at 0, respective to your cursor. Is there a chance that this plays into your experience of the bug?
Not the person you're replying to, but I agree that for me (as another heavy shift-G user), vim-racer having `:relativenumber` turned on is where my own troubles are coming from.
I'd really love to be able to specify whether I want absolute or relative numbering (or both or neither); the :set commands don't seem to be implemented?
sounds interesting but I don't understand what:"12 Targets (Burn Detector)"
Means. What or where are the targets?
I got it! Navigate to the yellow flashing square!
Is fun but the numbers are relative so I can't type:
:4
To go to line 4 which is the intuitive way.
I've got this feedback quite a few times, so I'm going to bump configurations up on the roadmap. I think proper vimrc configs might be impossible unless I swap out some of my libraries.
I should provide the ability to disable relative lines though
I'd echo that "what am I even aiming for" was an initial confusion for me as well. The targets are pretty subtly styled and it took a few rounds of looking to realize it was already there. Also found it confusingly visually similar to the matching-brace/paren/bracket markers. And I'd say I have sharper eyes than most. I imagine even mildly color-blind people will struggle.
Changing to a more distinct color for the targets could already help a lot to improve on those parts I think.
It's using relative line numbering, at least for me this is how I've had vim set up for the last 10 years. It makes commands like 10j easier to do because you can just look to the side and see how many lines away the target is.
That’s so funny, I love relative line numbers, but I had no idea about half the tips in here.
I use relative numbers while in normal mode, and absolute numbers in insert mode. That way you get easy vertical jumps, but you still have a sense of your line numbers.
Thats a good point! I'll have a better description by the next release.
I'm conflicted about keypress count because I really want the focus to be about speed. VimGolf does a great job of covering those types of puzzles/scenarios. The differentiator here is speed. I'm hoping that I'll be able to do some sort of data analysis on key strokes. An interesting finding might be that www is faster than f<a character>.
One of my hypothesis was that searching with 'f' and 'F' is not as efficient as simply navigating with more commong motions like w, e, h, j etc. I've already been proved wrong, Although, I should phrase it like "many top performers use 'f' and 'F'." Which would suggest that they might be fast, or using them isn't too much of a detriment
There are some things that make the fake scores really obvious.
It's going to be a challenge to protect the leaderboard against fake scores. There weren't a whole lot of them before, but it's starting to increase as the site grows.
I really need to second keypress minimization as a competitive factor! One reason why Vim appeals to me is not the speed (which is great) but it's ability to minimize the keypresses needed to go somewhere, or to do something.
That may not equate to raw speed, but it does equate to pleasantness of use vis-à-vis other text editors, which matters a lot to the typing experience.
I think adding the ability to order by different columns would be good.
I'm actually not 100% sure if I can achieve that with dynamo db and my current data structure though. It has a great free tier, but the query language and limitations are very foreign to me.
If I wanted to sort by timeTaken, I had to set it to be one of the two keys. This also has the unfortunate consequence of blocking duplicate times.
It might just be my implementation that is strange, or the dynamo is significantly less featureful than an SQL server.
Just a note, I've looked into this a bit more and it's technically possible. It would just require some redundancy and extra logic to keep everything in sync.
The donate feature has a goal now to replace dynamo db with a sql db because it will make development and maintenance easier.
Sorry about that! Something seems to be broken with my publishing pipelines. It used to be a graceful switch. Now I have to manually invalidate a cache. Seems to only happen on some publishes.
This was really fun! I could imagine myself really getting into this, as someone who enjoys Vim motions. It would also be great to see automated replays, based on the inputs in the leaderboard.
This game made me realize that even if I think it's sweet to code with keyboard only, using the mouse is generally faster, especially in this game where there's no back and forth to type something.
However, using the mouse to navigate is flaky here, probably because of how the terminal and decorations are rendered, it lands a character to the right or left when clicking the target.
I'd like to play, but the line numbers are following the cursor. Seems like a bug, but am I missing something? I'm not an experienced vim user but I'm normally able to navigate fine (albeit slowly).
Just wanted to mention that I've made those settings configurable now, and it'll default to the normal vim line numbers. Feedback shifted this one up the priority list!
86 comments
[ 4.3 ms ] story [ 145 ms ] threadOr maybe if they keep adding level, we could pay per level, so that the levels that have already been paid would stay forever? I don't know.
You'd be interested in something a bit more organized, so you can see how they got specifically from one target to the next. I do have a ton on the roadmap right now, but that has been added as well!
I think is why I like the jumping plugins
ArrowRight, ArrowRight, ArrowDown, ArrowRight, ArrowUp, ArrowRight, ArrowRight, ArrowRight, ArrowDown, ArrowLeft, ArrowLeft, Shift, ArrowUp, ArrowUp, Shift, ArrowRight, ArrowRight, ArrowRight, ArrowDown, ArrowDown, ArrowLeft, ArrowUp, ArrowRight, Shift, :, 4, Enter, ArrowDown, ArrowDown, ArrowDown, ArrowLeft, ArrowUp, ArrowLeft, ArrowDown, ArrowLeft, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowUp, ArrowLeft, ArrowDown, ArrowDown, ArrowLeft, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowLeft, Escape, Shift, :, 1, 1, Enter, Shift, :, 1, 0, 0, 0, Enter, ArrowDown, ArrowDown, ArrowDown, ArrowRight, ArrowLeft, ArrowLeft, ArrowLeft, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowDown, ArrowLeft, Shift, :, 5, Enter, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowRight, ArrowRight, ArrowRight, ArrowUp, ArrowRight, ArrowRight, ArrowRight, ArrowRight, ArrowLeft, Shift, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowUp, ArrowLeft, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowDown, ArrowLeft
...
In regards to how the leaderboard is constructed, i noticed some of the top players are at 1 second, which doesn't seem humanly possible to me (that would amount to < 0.05 seconds per move). my assumption is they are using scripted input, which with this interface will be hard to prevent. i read you are still figuring out how to regulate everything, so here's an idea: if you rank the leaderboard by number of keystrokes (might consider special handling for shift etc.) instead of time elapsed, you will get the most efficient leaders instead of the fastest ones - that way scripting wouldn't help cheaters anymore.
All the best moving forward!
I do really appreciate you mentioning it though because it helps in prioritization.
Quite nice otherwise.
Well done!
My understanding is that Shift + G should be absolute positioning, so 12G will bring you to the twelfth line.
I do deviate slightly from default VIM in that relative lines are one, so the line count starts at 0, respective to your cursor. Is there a chance that this plays into your experience of the bug?
I'd really love to be able to specify whether I want absolute or relative numbering (or both or neither); the :set commands don't seem to be implemented?
It's just a shallowish vim, so there's mostly only key bindings. I'd like to support more in the future though.
Half the Vim users navigate large spaces by doing `42j`; have some thought for the other half that does `142G` :-)
I should provide the ability to disable relative lines though
Changing to a more distinct color for the targets could already help a lot to improve on those parts I think.
I guess I can see the appeal; it's not for me though, I'm swimming in the local minimum of absolute line number dependence :)
I use relative numbers while in normal mode, and absolute numbers in insert mode. That way you get easy vertical jumps, but you still have a sense of your line numbers.
For maximum vimness you could let players mod an empty vinrc from start
The library seems great at the time, but I might need to look into alternatives in the future.
It sounds like allowing toggles for a few key options would probably satisfy most people while keeping the spirit of the exercise.
The game description could clarify what the "target" is.
I'm conflicted about keypress count because I really want the focus to be about speed. VimGolf does a great job of covering those types of puzzles/scenarios. The differentiator here is speed. I'm hoping that I'll be able to do some sort of data analysis on key strokes. An interesting finding might be that www is faster than f<a character>.
One of my hypothesis was that searching with 'f' and 'F' is not as efficient as simply navigating with more commong motions like w, e, h, j etc. I've already been proved wrong, Although, I should phrase it like "many top performers use 'f' and 'F'." Which would suggest that they might be fast, or using them isn't too much of a detriment
F and f are fast (ditto T and t) because , and ; are faster.
It's going to be a challenge to protect the leaderboard against fake scores. There weren't a whole lot of them before, but it's starting to increase as the site grows.
That may not equate to raw speed, but it does equate to pleasantness of use vis-à-vis other text editors, which matters a lot to the typing experience.
I'm actually not 100% sure if I can achieve that with dynamo db and my current data structure though. It has a great free tier, but the query language and limitations are very foreign to me.
If I wanted to sort by timeTaken, I had to set it to be one of the two keys. This also has the unfortunate consequence of blocking duplicate times.
It might just be my implementation that is strange, or the dynamo is significantly less featureful than an SQL server.
The donate feature has a goal now to replace dynamo db with a sql db because it will make development and maintenance easier.
1st himom 0min 1.001s 490
2nd elmoFOOBAR 0min 1.002s 400
3rd VeryFastTyper 0min 1.003s 708
4th EmacsUser 0min 1.004s 717
5th ShawnT 0min 1.005s 720
6th benbp 0min 1.008s 714
7th hehe 0min 1.023s 604
8th anthony 0min 1.274s 565
9th chris 0min 1.327s 543
10th MasterWq 0min 1.333s 540
11th blake 0min 1.334s 540
12th jbp 0min 1.381s 521
13th test12345 0min 1.437s 20
14th jonmv 0min 1.476s 488
15th spektrokalter 0min 1.577s 457
[1] https://vim-racer.com/#leaderboardAnchor
However, using the mouse to navigate is flaky here, probably because of how the terminal and decorations are rendered, it lands a character to the right or left when clicking the target.
I'm actually curious who would win that race. Because you're right; mouse users have a huge advantage right now, but no one just clicks on code haha!
(Tried in Chrome and Firefox)
Really handy for relative movements like 5j or 12k :)
I wish there was a mode where you minimise the keypresses rather than the speed; that way the best solution is Vim golfing rather than fast hjkl'ing.
Quick bug report: the character '`' appears as "Unsupported" in the leaderboard. This is very visible when following Duff's device using marks.
I think I'm working off a white list, so I should just be able to add that to it.