Skip to content
Xanonymous-GitHubPublic

About

🌏 The re-implementation of Baba is you in JS web. Baba Is You is a puzzle game where the rules you have to follow are present as physical objects in the game world. By manipulating the rules, you can change how the game works, repurpose things you find in the levels and cause surprising interactions!

Topics

Resources

Code of conduct

Contributing

Stars

37 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

398 Commits

Folders and files

Repository files navigation

BaBa Is You

CI Sonar Quality Gate
Netlify Status

Announcement

This is a reimplementation of a desktop game Baba Is You which is only used for educational purposes.
If you want the play the origin version of Baba Is You, please purchase it here.

Introduction

Baba Is You is a puzzle game where the rules you have to follow are present as physical objects in the game world.
By manipulating the rules, you can change how the game works, repurpose things you find in the levels and cause surprising interactions!

How to Play

In each level, you can see several objects and words on the game map.
You can use the arrow keys to control the movement of certain objects, find the associated word to the object that you can control, and you will see it makes a BABA IS YOU pattern.
Next, find the object that is connected with the words IS WIN to end the game.
Try to move blocks to use various patterns to solve every level!

To know more about the rules, check out Baba Is You Wiki.
(This project is just a clone version of Baba Is You, there might be some effects that are not equivalent to the original game.)

Controls

  • ESC: Menu
  • R: Restart level
  • Arrow keys: Move up/down/left/right, you can also use W/A/S/D.

Development

Use Node.js 24.22.1 (.node-version) and Bun 1.4.4 (package.json). Bun is the package manager; commit bun.lock when dependencies change.

bun install --frozen-lockfile --ignore-scripts
bun run dev

Open the URL printed by Vite. Level data, sprites, and music are served from public/; no environment variables are required for local development.

Checks

Install Chromium once, then run the same checks as CI:

bun run playwright install chromium
bun run check

On Linux, use bun run test:install to install browser system dependencies too.

  • bun run lint: check all source/config files without modifying them (bun run lint:fix applies fixes).
  • bun run typecheck: check TypeScript with the native TypeScript 7 compiler and Vue components with vue-tsc.
  • bun run build: create the production site in dist/.
  • bun run deploy:check: validate the Cloudflare deployment without uploading (run bun run build first).
  • bun run test: run Chromium regression tests against the production build (run bun run build first).
  • bun run serve: preview the production build locally.

TypeScript 7 currently has no compiler API for typescript-eslint or Vue tooling. The typescript dependency therefore aliases Microsoft's @typescript/typescript6 compatibility package; @typescript/native retains TypeScript 7 and its tsc command. See Microsoft's side-by-side setup. Keep both aliases until the tooling supports the native API.

CI uses the versions above, frozen installs, lint, both type checks, a production build, a Cloudflare deployment dry-run, and browser tests covering level loading, keyboard controls, restart, and switching levels. GitHub Actions are pinned to the latest verified release commits; Renovate tracks their updates.

Cloudflare Workers deployment

The checked-in wrangler.jsonc deploys dist/ as static assets for the baba-is-you Worker, with single-page application fallback. No Cloudflare Vite plugin is needed; keep the existing Vue Vite configuration.

Set these commands in Cloudflare Workers Builds:

  • Build command: bun run build
  • Deploy command: bun x wrangler deploy (the existing npx wrangler deploy also uses the pinned local Wrangler).

Do not use pnpm run build. Node.js is selected from .node-version; remove or align any dashboard NODE_VERSION override. For a local deployment with Cloudflare credentials configured, run bun run deploy.

Bugs

There are actually many bugs to be fixed in this project. If you find them while playing, please let us know as much as possible.

About us

Hi! We are students from National Taipei University of Technology with a strong passion in programming. Check out our profiles if you like our projects!

About

🌏 The re-implementation of Baba is you in JS web. Baba Is You is a puzzle game where the rules you have to follow are present as physical objects in the game world. By manipulating the rules, you can change how the game works, repurpose things you find in the levels and cause surprising interactions!

Topics

Resources

Code of conduct

Contributing

Stars

37 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages