All Projects → philschatz → puzzlescript

philschatz / puzzlescript

Licence: other
🎮 Play Accessible PuzzleScript games in your terminal or embed them

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
Nearley
35 projects
HTML
75241 projects

Projects that are alternatives of or similar to puzzlescript

mimstris
A falling block puzzle game created using React and Redux.
Stars: ✭ 129 (+437.5%)
Mutual labels:  puzzle, puzzle-game
open-spelling-bee
🐝 Terminal-based python clone of New York Times' puzzle game "Spelling Bee"
Stars: ✭ 38 (+58.33%)
Mutual labels:  puzzle, puzzle-game
iqpuzzle
A diverting I.Q. challenging pentomino puzzle.
Stars: ✭ 23 (-4.17%)
Mutual labels:  puzzle, puzzle-game
euli treasure hunt
Euli is not a computer game but a tool which helps you set up a real life treasure hunt
Stars: ✭ 34 (+41.67%)
Mutual labels:  puzzle, puzzle-game
omo
Kotlin port with changes and improvements for omo originally by ForeignGuyMike
Stars: ✭ 22 (-8.33%)
Mutual labels:  puzzle
Rush
Rush Hour puzzle goodies!
Stars: ✭ 233 (+870.83%)
Mutual labels:  puzzle
Breaklock
Web game, hybrid of Mastermind and the Android pattern lock
Stars: ✭ 232 (+866.67%)
Mutual labels:  puzzle
sugoku
Sudoku puzzle solver and generator
Stars: ✭ 106 (+341.67%)
Mutual labels:  puzzle
PuzzleBox
Generate 3D puzzle box (OpenSCAD source)
Stars: ✭ 92 (+283.33%)
Mutual labels:  puzzle
Cube Composer
A puzzle game inspired by functional programming
Stars: ✭ 1,845 (+7587.5%)
Mutual labels:  puzzle
avast-ctf-cambridge-2018
🎖 A complete write-up of the Avast challenge given at Hack Cambridge 2018
Stars: ✭ 16 (-33.33%)
Mutual labels:  puzzle
sliding-puzzle
Sliding puzzle game implemented in Scala / Scala.js / JavaFX
Stars: ✭ 25 (+4.17%)
Mutual labels:  puzzle
alokmenghrajani.github.com
Alok Menghrajani's Blog
Stars: ✭ 64 (+166.67%)
Mutual labels:  puzzle
Nodulus
Puzzle game with clever twists (Unity3d)
Stars: ✭ 232 (+866.67%)
Mutual labels:  puzzle
unity-puzzlesystem-asset
The asset for the Unity Engine that allows to quickly create customisable puzzles.
Stars: ✭ 21 (-12.5%)
Mutual labels:  puzzle
Antimine Android
Antimine is an open source minesweeper-like puzzle game.
Stars: ✭ 218 (+808.33%)
Mutual labels:  puzzle
libracity
LibraCity - City planning on a needle! LibraCity is a puzzle game where you build a city at equilibrium on a needle. To succeed, take advantage of the various weights of the buildings, and place them all while ensuring the city remains stable.
Stars: ✭ 22 (-8.33%)
Mutual labels:  puzzle-game
crackerjack
A collection of crackmes
Stars: ✭ 37 (+54.17%)
Mutual labels:  puzzle
30secondchallenge
Inspired by the newspaper puzzle my wife's grandma tests me with each time I visit.
Stars: ✭ 19 (-20.83%)
Mutual labels:  puzzle
a11y-react-emoji
⚛️ An accessible Emoji component for React applications
Stars: ✭ 69 (+187.5%)
Mutual labels:  accessible

Accessible PuzzleScript

NPM version Downloads Code coverage

Play in a browser or on your mobile device

  1. Visit the website
  2. Click the "Add" button at the bottom to keep playing even without an internet connection
  3. Plug in a 🎮 controller! (tested with PS3/4/XBox)
If you are using iOS (Apple phone or tablet) click here for instructions
  1. Visit the website
  2. Click the Share button in Safari
  3. Scroll over and click "Add to Home Screen"

ios-install

Play from the command line terminal

  1. Run npx puzzlescript-cli to start playing!

Screencaps

Here are some screencaps of games being played.

Pot Wash Panic! (source)

(click to see the ascii screencast)

video of install and a couple games

Skipping Stones to Lonely Homes (source)

video of the beginning of Skipping Stones (BIG)

Hack the Net (source)

video of a couple levels of Hack-the-Net

Entanglement (source)

video of the beginning of Entanglement

Mirror Isles (source)

This screencast shows playing the game in a terminal using ASCII and ANSI colors.

mirror-isles

Video games that blind people can play?

PuzzleScript lends itself nicely to be playable by people with low or no vision:

  1. each level is small (~10x10)
  2. each sprite has a human-readable name (since the whole game is in 1 text file and the logic refers to the sprites)
  3. a blind person has 2 sets of directions (one to move the player and one to move the “eye” which reads off which sprite is in that spot)
  4. the games do not require quick reflexes and have Undo built-in so it is easy to think and try different options
  5. we can just print to the terminal whenever something needs to be read (presumably the terminal is read aloud to the person)

If you are blind, you can play the games by running puzzlescript --no-ui and use the I, K, J, L, and P keys to move the cursor to explore the level.

If you want to experience what a non-sighted person would experience but still see the level, run NODE_ENV=development puzzlescript and use the I, K, J, L, and P keys to move the cursor to explore the level.

Screencap

This screencap is a visual demonstration of exploring and then playing a level.

exploring and playing a level without sight (visual depiction)

This screencap is the non-visual version of the same steps as shown above. This is what vision-impaired people will read when they move the Inspector cursor around and then move the player to play the game.

exploring and playing a level without sight

About

The goal of this project is to do 3 things:

  1. make PuzzleScript easier to embed (like in 404 pages, easter eggs, etc). See docs
  2. allow blind people to play video games (by passing the --no-ui argument)
  3. use the terminal as a GUI for playing games

Accessibility Notes

To use https://chromevox.com, table navigation keys on the Mac are Ctrl + Command + Up.

Development Instructions

  1. Install lerna
  2. lerna bootstrap --force-local
  3. lerna run compile
  4. lerna run test --stream
    • you can run test:unit or test:web to just run tests specific to a package
  5. lerna run test:integration --stream (this runs several games and takes about 30min)
  6. lerna run start:server --stream to start up a server

Maintainer Instructions

To publish a new version of the packages:

lerna publish prerelease

TODO

  • Move to a monorepo
  • Add embedding example
  • Upgrade dependencies
  • Move CLI code into a separate package
  • Update so that the puzzlescript package (or puzzlescript-web package) has 0 dependencies
  • Get CI tests running again
  • get Codecov reporting
  • Lint again
  • Support when <table> does not have an aria-live caption (by adding one)
  • change the web handler to create a different event when a checkpoint occurs (so saving is easier)
  • change the CLI so that you can specify the path to a puzzlescript game.
  • get code coverage up to 100% by skipping untested code
  • Generate ESModules and CJS: https://www.sensedeep.com/blog/posts/2021/how-to-create-single-source-npm-module.html
  • convert puzzlescript-web to use Cypress and sourcemaps
  • move the games and solutions into a separate package (puzzlescript-games)
  • 🔥 default exports because they are hard on IDEs and make for a confusing API
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].