Perception is a visual and kinesthetic memory game.
Upon pressing an alphabet key on the user's keyboard, an animation will appear on the screen. The user continues to press keys, attempt to remember the animation associated with a specific key, and try to find which keys render the same one.
When a match is found (the keys with the same animation are pressed one after another), the match score at the top left will update.
The goal is to find all 13 matches.
In Perception, users will be able to:
- Press their alphabet keys and see animations on the screen
- Find key matches by pressing the keys with the same animation in succession
In addition, this project will include:
- Text alerting users that they found a match and a match score
- An about modal with game instructions
This project will be implemented with the following technologies:
- Vanilla JavaScript for overall structure and game logic
Anime.js: animation library to render the animations that will correspond to each key press- I will still need to design the element, the animation applied to the element, and link each to a key press
- Webpack to bundle and serve up the various scripts
In addition to the webpack entry file, the following scripts will also be involved:
-
perception.js: entry file -
game.js: render game procedural logic, Anime.js creation/rendering/deletion -
match.js: handle all game matching/scoring logic -
square.js: square animation -
circle.js: circle animation -
triangle.js: triangle animation
This app will consist of a single screen with the animation canvas, my Github and LinkedIn, and the instructions modal. All user interaction with the animation will be from the keyboard.
- Setup
webpack.config.jsandpackage.json - Configure Anime.js for Perception
- Create half of animations
- Finish all 13 animations (decide whether to use pure CSS or Canvas)
- Start synchronization with keys
- Finish synchronization with keys
- Make so animations don't overlap: the last animation clears with another keypress
- Start game logic
- Render "match" or "not a match" on screen after every two keypresses
- Finish game logic
- Have an updating match score at the top
- Render a winning message when 13/13 matches
- Complete instructions modal button
- Production ReadMe
- Have multiple levels (start with just one row of 10 keys, 5 matches, progress to more keys)
- Have audio associated with each animation
