Home

Awesome

<a href="http://t3tr0s.com"> <img src="public/img/banner.png"> </a>

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:

Learn

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

<a href="https://github.com/shaunlebron/t3tr0s-slides"><img width="64%" src="public/img/r-slides.png"></a><a href="https://github.com/shaunlebron/t3tr0s-bare"><img width="36%" src="public/img/r-bare.png"></a>

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.