{"id":20527155,"url":"https://github.com/indiscipline/tetronimia","last_synced_at":"2025-06-13T11:33:59.662Z","repository":{"id":48876290,"uuid":"372988839","full_name":"indiscipline/tetronimia","owner":"indiscipline","description":"That game of falling blocky thingies for your terminal written in Nim.","archived":false,"fork":false,"pushed_at":"2022-05-01T19:35:57.000Z","size":96,"stargazers_count":22,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-23T18:37:31.978Z","etag":null,"topics":["cli","game","minimal","nim","nim-lang","puzzle-game","terminal"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/indiscipline.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-01T23:50:44.000Z","updated_at":"2025-01-24T23:58:13.000Z","dependencies_parsed_at":"2022-08-19T14:51:57.585Z","dependency_job_id":null,"html_url":"https://github.com/indiscipline/tetronimia","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Ftetronimia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Ftetronimia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Ftetronimia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indiscipline%2Ftetronimia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indiscipline","download_url":"https://codeload.github.com/indiscipline/tetronimia/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065285,"owners_count":21041872,"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":["cli","game","minimal","nim","nim-lang","puzzle-game","terminal"],"created_at":"2024-11-15T23:17:35.863Z","updated_at":"2025-04-09T16:20:38.876Z","avatar_url":"https://github.com/indiscipline.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tetronimia \u003cimg src=\"assets/tetronimia.svg\" align=\"right\" alt=\"Tetronimia logo\" width=\"64\"/\u003e\n**\"The only winning move is not to play\"**\n\n*That* game of falling blocky thingies.\n\n![Tetronimia gameplay screencapture](assets/gameplay-linux.gif)\n\n**[Initial announcement blog post with some implementation trivia](https://indiscipline.github.io/post/tetronimia/)**\n\n## What\n- [x] Free software\n- [x] Works in your terminal\n- [x] Minimal\n- [x] Written in [Nim](https://github.com/nim-lang/Nim)\n- [x] Crossplatform\n- [x] Compete with friends or foes by sharing a game seed\n- [x] Colors\n- [x] Optional Hold Box and Ghost piece, hard and soft drops, couple of falling speed curves.\n\nNo complicated rotation systems, no wall kicks, no music, no gui, no net usage, no telemetry, no ads, no winning.\n\n## Why\n I don't like computer games. They:\n - Steal your time\n - Replace meaningful activity\n - Show how easy it is to manipulate a human into doing silly things\n - Deceive you into thinking you're in control\n - Disappoint you in the end\n\nTetronimia does all of the above. Nothing more. It's ideal. Did I mention you can't win?\n\n## How\n\n### Installation\nDownload a binary from the [release assets](https://github.com/indiscipline/tetronimia/releases/latest) or compile the game yourself.\n\n#### Package managers\nCurrently, Tetronimia is available from the [AUR repository](https://aur.archlinux.org/packages/tetronimia) for Arch Linux and its derivative distros. Install with `yay` or your favourite AUR helper, such as [pakku](https://github.com/zqqw/pakku) or [paru](https://github.com/morganamilo/paru).\n\n```\nyay -S tetronimia\n```\n\n#### Building manually\nSince v0.2.0, Tetronimia supports stable Nim compiler \u003e= 1.4.6. It has minimal dependencies: the code relies on the new official [threading](https://github.com/nim-lang/threading) package for the `Channel` implementation (earlier experimental implementation from the Nim's devel branch, on which we relied previously, was dropped), amazing [cligen](https://github.com/c-blake/cligen) and very useful [zero_functional](https://github.com/zero-functional/zero-functional/) libraries. Use `choosenim` to install and manage the Nim compilation toolchain.\n\nTo install with Nim's package manager Nimble:\n\n```\nnimble install https://github.com/indiscipline/tetronimia\ntetronimia -h\n```\n\nThe commands above automatically downloads the latest tagged release, installs all the dependencies, and builds the binary, which should be accessible, if Nimble's `bin` directory is in your PATH environment variable (it probably is).\n\nAnother option is to download the latest source manually and build with Nimble:\n\n```\ngit clone https://github.com/indiscipline/tetronimia\ncd tetronimia\nnimble build \n./tetronimia -h\n```\n\n### Playing\nThe game has a basic set of options, available via `--help` or `-h` argument.\n\nThe defaults are chosen to be \"perfectly balanced\". If you think you're not good enough, use the Hold box (`-b`, off by default). If you think otherwise, choose the nastier `-s w` speed curve, turn off the Hard Drop (`-D`), the Ghost (`-G`) and that tiny delay on line clear (`-L`). You'll suffer harder, but not for long.\n\n## What does the name mean?\nDon't try to translate it from Latin, it just pretends being it.\n\nIt has Nim and that *other thing* inside and sounds like a disease, what's more to want.\n\n## Contributing\nIf you know how to shave more lines off the code without golfing or know how to port it to [CPS](https://github.com/nim-works/cps/) I'm all for that.\n\nFor other ideas, just open an issue.\n\n## License\nTetronimia is licensed under GNU General Public License version 3.0 or later;\n\nSee `LICENSE.md` for full details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findiscipline%2Ftetronimia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findiscipline%2Ftetronimia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findiscipline%2Ftetronimia/lists"}