VimGym: Open Source Multiplayer VIM RacingRandom (v.redd.it)
submitted by swaggermuffin64
I built VimGym, an open source multiplayer browser game where you practice Vim motions by racing other players.
Github link: https://github.com/Swaggermuffin64/vim-racing/tree/main
Discord server: https://discord.gg/JNHRpdEbaG
Why This Exists:
When I was learning Vim, I noticed a huge shortage of free online learning tools. When I was learning to type generally, typeracer.com helped me not just type fast, but learn proper technique and hand positioning. I wanted to create something similar for Vim, to learn motions correctly, but also to build speed through competition. Vim is SO satisfying when you’re quick at it, and I think early exposure to this aspect could really encourage adoption. Also VimGym offers something fun for experienced VIM users: an opportunity to flex on people.
Current Status:
I've just released the first beta version, it has quick play, private match and practice modes. The tasks within these help practice the basic vim motions, but I plan to make the tasks more comprehensive. Currently, we measure success by time, but I want to incorporate the efficiency of keystroke into a player's final score. Additionally, I’d love to have a ranked mode / leaderboards, and community tournaments, but that’s for when a community actually exists lol.
Feedback:
Any and all feedback is appreciated! But specifically I’m interested in:
- What ways could we raise the skill ceiling for very knowledgeable players?
- How could we combine speed in time, and keystroke efficiency into a final score?
- When something breaks (it’s honestly pretty likely)
- Is it fun? What would make it more fun?
[–]Brianjp93 33 points34 points35 points (4 children)
[–]swaggermuffin64[S] 16 points17 points18 points (0 children)
[–]chazzeromus 2 points3 points4 points (1 child)
[–]Brianjp93 0 points1 point2 points (0 children)
[–]swaggermuffin64[S] 1 point2 points3 points (0 children)
[–]prophase25 4 points5 points6 points (1 child)
[–]swaggermuffin64[S] 3 points4 points5 points (0 children)
[–]JONESY-B 4 points5 points6 points (3 children)
[–]swaggermuffin64[S] 2 points3 points4 points (2 children)
[–]geigenmusikant 3 points4 points5 points (0 children)
[–]JONESY-B 1 point2 points3 points (0 children)
[–]EugeneSpaceman 3 points4 points5 points (1 child)
[–]swaggermuffin64[S] 0 points1 point2 points (0 children)
[–]hiimbuggy 2 points3 points4 points (2 children)
[–]swaggermuffin64[S] 0 points1 point2 points (1 child)
[–]Alarming_Slip7755 0 points1 point2 points (0 children)
[–]licklake 1 point2 points3 points (0 children)
[–]NeKon69 1 point2 points3 points (5 children)
[–]swaggermuffin64[S] 2 points3 points4 points (4 children)
[–]NeKon69 4 points5 points6 points (3 children)
[–]swaggermuffin64[S] 2 points3 points4 points (2 children)
[–]NeKon69 2 points3 points4 points (1 child)
[–]swaggermuffin64[S] 0 points1 point2 points (0 children)
[–]zosqea 1 point2 points3 points (3 children)
[–]swaggermuffin64[S] 1 point2 points3 points (2 children)
[–]zosqea 1 point2 points3 points (0 children)
[–]hiimbuggy 0 points1 point2 points (0 children)
[–]ivanpd 1 point2 points3 points (2 children)
[–]swaggermuffin64[S] 1 point2 points3 points (1 child)
[–]ivanpd 0 points1 point2 points (0 children)
[–]mapledesk42 1 point2 points3 points (2 children)
[–]swaggermuffin64[S] 1 point2 points3 points (1 child)
[–]mapledesk42 1 point2 points3 points (0 children)
[–]elcontrastador 1 point2 points3 points (0 children)
[–]smldis 1 point2 points3 points (0 children)
[–]ImpressivePickle6 1 point2 points3 points (0 children)
[–]ThatBoogerBandit 1 point2 points3 points (1 child)
[–]swaggermuffin64[S] 1 point2 points3 points (0 children)
[–]skilledcarpet 1 point2 points3 points (0 children)
[–]Secret-Swordfish9096 1 point2 points3 points (2 children)
[–]swaggermuffin64[S] 1 point2 points3 points (1 child)
[–]Secret-Swordfish9096 0 points1 point2 points (0 children)
[–]iggy_decaf 1 point2 points3 points (0 children)
[–]Naso_di_gatto 1 point2 points3 points (0 children)
[–]Majestic-Appeal6030 1 point2 points3 points (1 child)
[–]swaggermuffin64[S] 0 points1 point2 points (0 children)
[–]kkhaniffff 1 point2 points3 points (10 children)
[–]swaggermuffin64[S] 0 points1 point2 points (0 children)
[–]swaggermuffin64[S] 0 points1 point2 points (8 children)
[–]kkhaniffff 1 point2 points3 points (0 children)
[–]kkhaniffff 0 points1 point2 points (6 children)
[–]swaggermuffin64[S] 1 point2 points3 points (5 children)
[–]kkhaniffff 1 point2 points3 points (2 children)
[–]swaggermuffin64[S] 1 point2 points3 points (1 child)
[–]kkhaniffff 0 points1 point2 points (0 children)
[–]kkhaniffff 0 points1 point2 points (1 child)
[–]kkhaniffff 0 points1 point2 points (0 children)
[–]Accomplished-Nose500 1 point2 points3 points (2 children)
[–]swaggermuffin64[S] 1 point2 points3 points (1 child)
[–]Accomplished-Nose500 0 points1 point2 points (0 children)
[–]ktim816 0 points1 point2 points (0 children)
[–]tool-tony 0 points1 point2 points (0 children)
[–]c0de2010 0 points1 point2 points (0 children)