• Stars
    star
    153
  • Rank 243,368 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A falling block puzzle game created using React and Redux.

Mimstris

An arcade puzzle game created in JS using React / Redux.

🎥 Featured in a lighting talk at the 2017 dotJS Conference in Paris.

Note: This was originally coded in 2016 and there have been a lot of new developments in JavaScript, React, and Redux since then. I gave the project a very basic update in 2022 (since it wasn't compiling for me anymore) but the code remains mostly unchanged.

This game is open-source, free, and just for funsies!

👉 Play Now! 🎮 📺

Screen Shot

Motivation

After watching Meth Meth Method's video I was inspired to create a similar game for the following reasons:

  1. To try my hand at making a game using functional programming methodologies.
  2. To try out some JS tools that I hadn't used before
  3. I thought it would be fun to make up crazy custom shapes and/or game modes.

Some of the tools I used:

  • redux for state management
  • reselect for memoized selectors
  • react for component rendering
  • Ducks for module organization
  • AVA for unit tests and nyc for code coverage
  • lodash for numerous utility functions
  • random-seed to create a deterministic game mode (where every game is the same order of pieces)
  • pressed for detecting key presses in update loop (I created this library for this project)
  • babel, webpack, standard (code style)
  • ES6

Controls

Key Action
Left, A Left
Right, D Right
Down, S Down
Shift, Up Rotate Right
Z, / Rotate Left
Enter Pause / Restart Game
M Mute / Unmute music

More Repositories

1

jsGameDemo

A very simple game created step-by-step for learning purposes.
JavaScript
51
star
2

pixi-tagged-text

A component for pixi similar to Text that supports multiple styles in a single component as well as inline images.
TypeScript
31
star
3

breakzone.js

Create screen breakpoints in javascript and easily react to changes in the viewport
JavaScript
8
star
4

KitchenSync

KitchenSync is an ActionScript 3.0 library for sequencing events, animations, and other time-based actions.
ActionScript
7
star
5

pressed.js

JavaScript
7
star
6

commonwealth.js

An implementation of hierarchical and finite state machines in JavaScript
JavaScript
6
star
7

sublime-eggplant-parm

An delicious, aubergine color theme for Sublime Text by Mims H. Wright.
CSS
4
star
8

as3-vector-utils

A collection of utilities for working with (geometric) 2D Vectors.
JavaScript
3
star
9

AbstractAS3

A tiny library for mimicking Java-like abstract classes and method in ActionScript 3.0.
ActionScript
3
star
10

dicekit-fp

TypeScript
3
star
11

vite-library-template

A template for a npm package / library project built around vite.
JavaScript
3
star
12

redux-boilerplate-reducer

redux-boilerplate-reducer reduces reducer boilerplate in redux
JavaScript
2
star
13

pixi-easing-graph

pixi-easing-graph
TypeScript
2
star
14

DiceKit

A swift framework for creating (pseudo)-random number generators using the metaphor of physical dice.
Swift
1
star
15

fease

Composable easing functions.
TypeScript
1
star
16

parseTimeString.js

A small function used to parse english strings describing a length of time into milliseconds.
JavaScript
1
star