{"id":13413079,"url":"https://github.com/alec-gibson/nvim-tetris","last_synced_at":"2025-03-14T19:31:18.398Z","repository":{"id":49110379,"uuid":"347505259","full_name":"alec-gibson/nvim-tetris","owner":"alec-gibson","description":"Bringing emacs' greatest feature to neovim - Tetris!","archived":false,"fork":false,"pushed_at":"2024-01-17T08:36:31.000Z","size":214,"stargazers_count":194,"open_issues_count":6,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-07-31T20:51:53.978Z","etag":null,"topics":["aniseed","fennel","game","lua","neovim","neovim-plugin","tetris"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alec-gibson.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-13T23:52:56.000Z","updated_at":"2024-07-23T00:46:27.000Z","dependencies_parsed_at":"2024-04-12T06:02:37.295Z","dependency_job_id":"29e344cc-3228-402c-a5df-094de3d9160b","html_url":"https://github.com/alec-gibson/nvim-tetris","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alec-gibson%2Fnvim-tetris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alec-gibson%2Fnvim-tetris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alec-gibson%2Fnvim-tetris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alec-gibson%2Fnvim-tetris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alec-gibson","download_url":"https://codeload.github.com/alec-gibson/nvim-tetris/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221498714,"owners_count":16833053,"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":["aniseed","fennel","game","lua","neovim","neovim-plugin","tetris"],"created_at":"2024-07-30T20:01:33.194Z","updated_at":"2024-10-26T05:30:19.784Z","avatar_url":"https://github.com/alec-gibson.png","language":"Lua","funding_links":[],"categories":["Game","Lua"],"sub_categories":["Tmux"],"readme":"# nvim-tetris\nBringing emacs' greatest feature to neovim - Tetris!\n\n![Gameplay Screenshot](./gameplay.png \"Some poorly executed demo gameplay\")\n\nThis plugin is written in [Fennel](https://fennel-lang.org/) using Olical's project [Aniseed](https://github.com/Olical/aniseed) for creating the project structure, and as a library of helper functions and macros. The game compiles to Lua and uses Neovim API functions, so Vim support is not currently a goal.\n\nnvim-tetris is a work-in-progress, and is not feature complete.\n\n## How To Install\n- Prerequisites: neovim\n- You can install the plugin just like any other Neovim plugin. I personally use [vim-plug](https://github.com/junegunn/vim-plug).\n- Another way to install would be to just clone this repo into `~/.local/share/nvim/site/pack/*/start/`, where `*` is whatever you choose (I use \"alec\").\n- After installing, you can launch a game of Tetris using the `:Tetris` command inside Neovim.\n- If your colours look weird, ensure you are using a terminal which supports true colour, you have configured tmux for true colour support if you are using tmux, and you have the `termguicolors` option enabled in Neovim.\n\n## Controls\n- Left Arrow: move left\n- Right Arrow: move right\n- Up Arrow: rotate piece\n- Down Arrow: soft drop\n- Space Bar: hard drop\n\n## What Works\n- Core game functions including controlling the current piece, clearing lines, and gameover when you run out of space\n- Piece shadow showing where the current piece will land\n- Level progression - you progress a level every 10 lines cleared, and the game gets faster with each level\n- Short delays when the piece appears and when it locks. The locking delay resets when rotating or moving your piece, to make gameplay more fun at high speeds\n- Correct rotation behaviour including wall-kicks according to \"How Guideline SRS Really Works\" from https://harddrop.com/wiki/SRS (this means T-spins work)\n\n## Next Steps\n- Add border showing current level, current score, next piece, saved piece (and add logic for saving pieces)\n- Add pause screen (with options to resume game, start new game or quit)\n- Add game over screen (with options to play again or quit)\n- Add intro screen which shows controls\n- Add logic for score\n- Configuration\n- Documentation\n- Tests\n- Stretch goals: music, leaderboards?, ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falec-gibson%2Fnvim-tetris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falec-gibson%2Fnvim-tetris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falec-gibson%2Fnvim-tetris/lists"}