{"id":13668893,"url":"https://github.com/carbonfive/vimtronner","last_synced_at":"2025-04-07T12:09:10.906Z","repository":{"id":10973361,"uuid":"13289903","full_name":"carbonfive/vimtronner","owner":"carbonfive","description":"A multi-player Vim trainer.","archived":false,"fork":false,"pushed_at":"2018-11-21T21:37:43.000Z","size":509,"stargazers_count":315,"open_issues_count":12,"forks_count":26,"subscribers_count":70,"default_branch":"master","last_synced_at":"2025-04-02T12:44:04.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carbonfive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-03T03:58:29.000Z","updated_at":"2024-09-16T15:48:09.000Z","dependencies_parsed_at":"2022-08-11T12:50:09.865Z","dependency_job_id":null,"html_url":"https://github.com/carbonfive/vimtronner","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Fvimtronner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Fvimtronner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Fvimtronner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carbonfive%2Fvimtronner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carbonfive","download_url":"https://codeload.github.com/carbonfive/vimtronner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648977,"owners_count":20972945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T08:00:52.656Z","updated_at":"2025-04-07T12:09:10.890Z","avatar_url":"https://github.com/carbonfive.png","language":"CoffeeScript","funding_links":[],"categories":["CoffeeScript"],"sub_categories":[],"readme":"![vimtronner][game_play_img]\n\n# vimtronner\n\nA multiplayer, realtime, command-line game that teaches you the core\nvim keys. Be the last player alive by either controlling your bike\nsafely around obstacles or enter INSERT mode to build walls for your\nopponents to crash into. Just remember, you can't do both\nat the same time!\n\nInspired by [Patrick Moody's](http://patmoody.com)\n[vimsnake](http://vimsnake.com) and, of course,\n[TRON](http://www.imdb.com/title/tt0084827/).\n\n## Quickstart Guide\n\nGreetings, programs! Before we can enter the grid, we need to have\n`node` ([http://nodejs.org](http://nodejs.org)) installed.  There are\nmany paths to do so; we like to install it through `brew`\n([http://brew.sh/](http://brew.sh/)).\n\n```sh\n$ brew install node\n```\n\nInstall the `vimtronner` module via `npm`:\n\n```sh\n$ npm install -g vimtronner\n```\n\nStart a practice game:\n\n```sh\n$ vimtronner\n```\n\nPress `i` to start the game. After a countdown, the game\nstarts. Your bike moves continuously. You can control its\ndirection:\n\n* go left by pressing `h`\n* go down by pressing `j`\n* go up by pressing `k`\n* go right by pressing `l`\n\nTo start creating insert walls, enter INSERT mode by pressing\n`i`. **BUT** remember; you can't change your direction while in\nINSERT mode. To return to normal press `ESC` or `CTRL-[`. Press\n`q` to quit anytime.\n\nWhen you're ready to face other players, connect\nas a client to the public `vimtronner` server,\nstating the number of players you want.\n\n```sh\n$ vimtronner -C -N 4\n```\n\nLook in the lower left-hand corner for your game name.\n\n![Game name found in lower left-hand corner][game_name_location_img]\n\nThen have the other players join that game as a client:\n\n```sh\n$ vimtronner -G simplistic-trail\n```\n\nThe game will start once all players have declared they are ready by\npressing `i`.\n\nGood luck. It's in your hands to see if you're a User ... or a loser!\n\n## Controls\n\nYour bike will continually move on its own;\nyou only have control over which direction it is heading in or\nwhether you can build walls. Just remember, you can't do both\nat the same time!\n\n```\nleft...................h\ndown...................j\nup.....................k\nright..................l\ninsert mode............i\nnormal mode...esc/ctrl-[\n```\n\n## Launching\n\n### Practice\n\nLaunching `vimtronner` with no options kicks it off in a single-player\npractice mode:\n\n```sh\n$ vimtronner\n```\n\nUse this mode to become familar with the vim keys and how to rapidly\nswitch between `INSERT` mode to build walls and normal mode to control\nyour direction.\n\n### Public Multiplayer\n\nTo play a multiplayer game, you connect as a client (with the `-C` or\n`--client` flag) to our public multiplayer server, passing in the\nnumber of players who want to play with the `-N` or `--number` option.\n\n```sh\n$ vimtronner -C -N 6\n```\n\nA game is created with a random name you can find in the lower left-hand\ncorner.\n\n![Game name found in lower left-hand corner][game_name_location_img]\n\nYou can also explicitly give a name to a game when you create it through\nthe `-G` or `--game` option.\n\n```sh\n$ vimtronner -C -N 6 -G mygame\n```\n\nOther players can then join your game by starting `vimtronner` in\nclient-only mode (`-C` or `--client`) and passing in the name of the\ngame (`-G` or `--game`).\n\n```sh\n$ vimtronner -C -G simplistic-trail\n```\n\nThe game will only start one all players have connected and declared\nthey are ready by entering INSERT mode (pressing `i`). You can quit at\nanytime (press `q`) with the last bike remaining being considered the\nwinner.\n\nAt the end of the match, you can all play again by everyone\ndeclaring they are ready by pressing `i`.\n\n**NOTE:** Games on the public server have a time to live of 3 minutes.\nThis is to ensure system resources are not overwhelmed with dead games.\nBlame the MCP.\n\n### Local Multiplayer\n\nYou can start yor own multiplayer on your local network for others to\njoin. Simply launch `vimtronner` with the number of players\nyou want before starting a game with the `-N` or `--number` option and\n_WITHOUT_ the client flag (`-C` or `--client`)\n\n```sh\n$ vimtronner -N 3\n```\n\nThis starts your own `vimtronner` on your machine, which you are\nimmediately connected to. Like on the public server a random name is\ngiven to your game (displayed in the lower left-hand corner)\n\n![Game name found in lower left-hand corner][game_name_location_img]\n\nYou can explicitly give a name to a game when you create it through\nthe `-G` or `--game` option.\n\n```sh\n$ vimtronner -N 3 -G mygame\n```\n\nOther players can then join your game by starting `vimtronner` in\nclient-only mode (`-C` or `--client`) and passing in the name of the\ngame (`-G` or `--game`) and the address of your machine (`-A` or\n`--address`).\n\n```sh\n$ vimtronner -C -G simplistic-trail -A 10.0.1.144\n```\n\nBy default, `vimtronner` launches and connects to port `8766`. You can\noverride this through the `-P` or `--port` flag. So when launching a\nlocal multiplayer game:\n\n```sh\n$ vimtronner -N 3 -P 8000\n```\n\nAnd when others want to join:\n\n```sh\n$ vimtronner -C -G simplistic-trail -A 10.0.1.144 -P 8000\n```\n\n**Note:** that if the game host quits, the game ends immediately and everyone\nis disconnected.\n\n### \"Headless\" Server Mode\n\nYou can launch a `vimtronner` server to host multiple games without also\nstarting a game. Simply pass in the `-S` or `--server` flag.\n\n```sh\n$ vimtronner -S\n```\n\nNow anyone can create a game on the server by connecting as a client\n(`-C` or `--client` flag) to the server's address (`-A` or `--address`)\nto create games:\n\n```sh\n$ vimtronner -C -A 10.0.1.144 -N 5\n```\n\nAnd join them:\n\n```sh\n$ vimtronner -C -A 10.0.1.144 -N 5 -G simplistic-trail\n```\n\nAs always they can give games a specific name (`-G` or `--game`\noption) when creating them. You can also set a port number for your\nserver to listen to with the `-P` or `--port` option (it defaults to\n8766). Players use the same option when connecting.\n\n### Listing Games\n\nTo see a list of all games running on a server, simply connect as a\nclient and pass the `-L` or `--list` flag.\n\n```sh\n$ vimtronner -C -L\n```\n\nThis works in tandem with the `-A`/`--address` and `-P`/`--port` options\nto specify the server we are connecting to.\n\n### All Options\n\n```sh\n\n  Usage: vimtronner [options]\n\n  Options:\n\n    -h, --help                        output usage information\n    -V, --version                     output the version number\n    -S, --server                      launches in server only mode\n    -C, --client                      launches in client only mode\n    -A, --address \u003caddress\u003e           the address to connect the client\n    -P, --port \u003cport\u003e                 the port to launch the server or connect the client\n    -G, --game \u003cgame\u003e                 the name of the game the client wants to join\n    -N, --number \u003cnumber of players\u003e  the number of players required to play (applies to new game only)\n    -W, --width \u003csize\u003e                the grid width\n    -H, --height \u003csize\u003e               the grid height\n    -L, --list                        list active games on the server\n\n```\n\n## Development\n\nWant to contribute to `vimtronner`? There are many ways to do. File bugs\nand features through\n[Github](https://github.com/carbonfive/vimtronner/issues?state=open).\nOr [fork][vimtronner] the repo to add your own\nchanges and create a pull-request so we can bring them in! Any help is\nwelcome!\n\n## Contributors\n\n* [Chris\n  Svenningsen](/crsven) -\n  [@hmmwhatsthis](http://twitter.com/hmmwhatsthis)\n* [Bobby Matson](/bomatson) - [@bomatson](http://twitter.com/bomatson)\n* [Rudy Jahchan](/rudyjahchan) - [@rudy](http://twitter.com/rudy)\n\n[vimtronner]: http://github.com/carbonfive/vimtronner\n[game_name_location_img]:http://carbonfive.github.io/vimtronner/img/vimtronner-name.png\n[game_play_img]: http://carbonfive.github.io/vimtronner/img/vimtronner1.gif\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbonfive%2Fvimtronner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarbonfive%2Fvimtronner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbonfive%2Fvimtronner/lists"}