Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

PLAY HERE

We re-created Tetris™ in ClojureScript. We mainly did this to produce the pleasure and to celebrate the 30th anniversary of its original release in 1984. Our remake enabled us to host a small, local tournament to share a montage of the game's history. Choose from 10 themes representing the popular versions from its past.

DevBlog

In the beginning, we worked on the game at least once a week. It got pretty crazy at the end closer to deadline, but our initial process is documented in blogs below:

  • DevBlog 1 - data, collision, rotation, drawing
  • DevBlog 2 - basic piece control
  • DevBlog 3 - gravity, stack, collapse, hard-drop
  • DevBlog 4 - ghost piece, flash before collapse
  • DevBlog 5 - game over animation, score
  • DevBlog 6 - level speeds, fluid drop, improve collapse animation, etc.
  • DevBlog 7 - draw next piece, tilemap for themes
  • DevBlog 8 - allow connected tiles for richer graphics
  • Day 9 - live board broadcasting (no blog)
  • Day 10 - chat room, more tilemaps, page layouts (no blog)
  • Day 11 - page routing, username (no blog)
  • Day N - socket netcode, spectate mode, MC controls, key-repeat control, chatroom, authentic theming, history graphs, ...

Learn

In the end, we wrapped up what we learned into an educational resource:

Development Setup

  1. Install Leiningen and Node.js.

  2. Run the following in the project directory

    # install node.js dependencies
    npm install
    
    # install grunt
    npm install -g grunt-cli
    
    # compile LESS file
    grunt
    
    # compile ClojureScript files (this may take a minute)
    lein clean && lein cljsbuild once
    
    # copy the example config file (edit as needed)
    cp example.config.json config.json
    
    # start the node.js server
    node server.js
  3. Open http://localhost:1984 in your browser.

If you want a REPL connected to the browser for interactive testing:

lein repl
> (brepl)

Deploying

To deploy a single-player build to https://t3tr0s.github.io

./deploy-singleplayer.sh

Team

License

All code licensed under the terms of the MIT License.

The image files of past versions of the games (ie: the tilemap files) belong to their respective copyright holders.

Tetris is a registered trademark of The Tetris Company.

About

30th anniversary tetris in ClojureScript

Resources

License

Releases

No releases published
You can’t perform that action at this time.