Skip to content

Dhruv2mars/GridFall

Repository files navigation

Gridfall

A fast, modern Tetris-like played in your terminal. Built with React + Ink for the UI and a simple TypeScript game engine. Ships as a single npm package (gridfall).

Install

  • Global: npm i -g gridfall then run gridfall
  • One-off: npx gridfall@latest

Requires Node.js 18+.

Dev

  • Play from source: bun run play
  • Build all: bun run build

Release process

  • Follow Conventional Commits when merging to main; CI runs commitlint on pull requests.
  • Every push to main runs semantic-release, which builds the CLI, updates packages/cli/package.json + CHANGELOG.md, tags vX.Y.Z, publishes to npm via Trusted Publishing, and opens a GitHub Release.
  • The published version is driven entirely by commit history; do not edit versions or the changelog manually. Use bun run release:dry-run locally to preview the next release (GitHub release steps are skipped unless GITHUB_TOKEN/GH_TOKEN is set).
  • Release bumps follow semantic-release defaults: fix(...) → patch, feat(...) → minor, commits with ! or BREAKING CHANGE: → major. Other types are ignored.
  • Trusted publishing is configured for GitHub Actions; make sure changes land on main before expecting npm to update automatically.
  • Releases always run from the tip of main, so avoid force-pushes or manual tags that skip CI. (This line verifies release pipeline.)
  • Maintainers can also configure an NPM_TOKEN secret; CI prefers OIDC, but uses the token as a fallback if needed. (Publish reliability confirmed)

Controls

  • Left/Right: move
  • Down: soft drop
  • Up/Space: hard drop
  • Z/X: rotate CCW/CW
  • C: hold
  • P: pause, S: settings, U: toggle unicode, ?: help, Q/Esc: quit

Environment toggles

  • GRIDFALL_ASCII=1 force ASCII characters
  • GRIDFALL_UNICODE=1 force Unicode characters
  • GRIDFALL_REDUCED_MOTION=1 minimize animations

License

MIT — see LICENSE.

About

Tetris, but in your terminal!

Resources

License

Stars

Watchers

Forks

Packages

No packages published