Hacker News new | past | comments | ask | show | jobs | submit login
Tetris (colinfahey.com)
245 points by berkaay on Dec 11, 2018 | hide | past | favorite | 57 comments

Man, has any game been implemented more times than Tetris? It was always one of those things I wanted to do and finally got around to hacking together a javascript version of it a few years ago:


I would love to add multiplayer to in someday...

Also, if you haven't read the Kotaku review of "Tetris" (the game in general, not any specific release/platform), it is not only profound but hilarious: https://kotaku.com/tetris-the-kotaku-review-1718328217

> The best-known and best-loved video game ... is not a Skinner box of rewards for players but a bleak encounter with futility ... Tetris ends with certain death. It is a jigsaw puzzle that must be assembled on deadline, yet never can be ... The enemy in Tetris is not some identifiable villain ... but a faceless, ceaseless, reasonless force that threatens constantly to overwhelm you, a churning production of blocks against which your only defense is a repetitive, meaningless sorting. It is bureaucracy in pure form, busywork with no aim or end, impossible to avoid or escape. And the game’s final insult is that it annihilates free will. Despite its obvious futility, somehow we can’t make ourselves stop rotating blocks. Tetris, like all the stupid games it spawned, forces us to choose to punish ourselves.

I love your version!

Just some feedback:

- You need to add a bit more delay initially on holding left/right before moving a second time. It's too often that I held down the key just a bit too long and it moved over two spaces when I only wanted it to move once, screwing me over. And it doesn't feel like my fault because that's not how most implementations behave.

- The spin logic while touching the stack feels wrong. There's really not enough wiggle room there IMO.

- When holding soft drop, as soon as it touches the stack, it locks. It should have some delay before locking unless hard drop is hit to be able to move a piece over. Too often I just hold it down to get a piece to shift it into a corner and it locks on me before I can move it.

- Get rid of that alert at page load please. Especially if you require F5 to play a new round.

> $(document).ready(function(){ if('ontouchstart' in document.documentElement) alert("..."); });

This worked in 2012 I swear! Oh the shame now however :'(

Thank you! The timing of EVERYTHING was by far the hardest part, as evidenced by your comments, there's something intrinsically familiar about the Tetris (or Breakout or Galaga or etc...) version you are used to. I modeled this one to be closest to the first I played, the 80s GameBoy version.

That said- I've noticed these myself in some form or another. 2 & 3 are related- I need to delay more as the block sits atop a collision. 1 I thought was off but just couldn't justify the time to prove it.

Thanks for the feedback!

The GameBoy one was basically all I played as a kid. So much fun. But I'm also kinda spoiled by having played Tetris Effect these past few weeks on PSVR, which has all the modern rules and features.

> Man, has any game been implemented more times than Tetris?

Yes, because it's a relatively complex game. My bet's on something much simpler like Rock–paper–scissors which has over 60 implementations just on Rosetta Code: https://rosettacode.org/wiki/Rock-paper-scissors

The "Number reversal game" has more implementations, but that's probably less unambiguously a game and more a special-case of of a programming problem: https://rosettacode.org/wiki/Number_reversal_game

I believe the High/Low guess the number game is very common as a beginners programming task too.

In response to the quote, which is indeed quite funny, I’ve found my favorite and most difficult Tetris variations often do offer an ending, sometimes requiring extreme lengths to complete however: https://youtu.be/6YOR-nAnj4I

> Man, has any game been implemented more times than Tetris?

Chess implemented much more times than Tetris!

I'd guess Chess, crosses and naughts, or connect four. Since it's fairly easy to program those in a university course, probably they have been done countless times.

I would say "guess the number between 1 and 100" which is featured in a good number of tutorial and can be implement in less than ten lines in most languages

The rabbit hole of Tetris goes pretty deep and most people who implement their own version of Tetris don't realize that there are modern rules and requirements for how the Tetrimino blocks get previewed in the next window, drop, move, lock, rotate, and collide when rotating.

The modern system/rule for rotation and collision is called the Super Rotation System which was made by the Tetris Company. This allows for techniques such as T-Spins in which a T Tetrimino (the one shaped like a T) can be fit into spaces that wouldn't normally fit in which result in extra points. Without these rules or requirements implemented, your game cannot be officially licensed by the Tetris Company and get the Tetris branding.

In "Tetris: The Grand Master 3 - Terror Instinct" (the one with invisible blocks at the credit screen) had two modes, classic and world. World uses modern rules which is considered much easier with the Tetris Company rules as mentioned above.

Sadly there'll probably never be a tgm4 because TTC has done the allegedly impossible and successfully copyrighted a game concept so that it's not just "this is what modern Tetris is usually like" but "this is the only kind of Tetris that is allowed to exist".

Nowadays, usually tetris random is actually done by "randomly shuffle the bag of 7 pieces, then deal them out", which isn't the same as randomly selecting a piece.

With that, and the hold functionality (also not around in this article, or at least not discussed) you can play indefinitely without any random chance, modulo reaction time.


Always love to read about Tetris! One of my favorite projects ever was over a decade ago working on the website and server-side functionality for the networked multiplayer OS X Tetris clone Quinn[0].

[0] https://web.archive.org/web/20110805131134/http://www.simonh...

I played Quinn obsessively when I was younger! I loved competing with my brother over the LAN too. Thanks for your work on this project!

Hatetetris (https://qntm.org/files/hatetris/hatetris.html) is a fun(?) variation where you only get bad pieces.

Nice! That was surprisingly detailed.

For documentary fans, this follows some of the best Tetris players in the world: http://watch.ecstasyoforder.com/

Interesting to see how they play and practice, the terminology ("drought"), etc.

To play Tetris via telnet with VT100-like terminal, connect to milek7.pl.

It is also playable on IPv6 traceroute, though controls are inconvenient: https://milek7.pl/tracehack/

Has anyone else ever played "New Tetris" for N64 [0]? The major gameplay difference was that you could make large 4x4 squares made up of four pieces - gold if the 4x4 was made of all the same piece, silver if it was heterogeneous. Then you'd get 4 extra points for clearing a line that crossed a silver 4x4 and 10 extra points for a gold one (IIRC). And then there were bonuses if you managed to clear 4 lines containing one (or two!) complete 4x4.

That plus competitive multiplayer meant you were incentivized to stack things uncomfortably high while you waited for the right pieces to complete your gold 4x4's, and THEN clear lines containing the 4x4's.

[0] https://en.wikipedia.org/wiki/The_New_Tetris

I wonder if that's a false incentive. Slow but steady wins the race?

> 5.8 Standard Tetris "lines completed" T: 2

Some variations include T-spin and allow T-shapes to rotate in place and allow clearing 3 rows simultaneously, which in my humble opinion, make the game a bit more fun.

Not "some variation", but "THE variation", SRS Tetris. (Super-rotation system).

Tetris is owned by the Tetris Corporation, and SRS Tetris is their standards applied to the game. The fact that SRS Tetris is missing from this entire page is... a BIG red-flag to me.

SRS Tetris is the style used in official Tetris Games sponsored by the Tetris Company: Tetris Friends, Tetris Ultimate, Puyo Puyo Tetris, and "The Tetris Effect".

Who owns the Tetris Corporation?

seriously, you could've googled it. https://en.wikipedia.org/wiki/The_Tetris_Company

I want to implement an "Evil Tetris" which somehow figures out the least favourable piece at any given time, and deals it out next. I have a feeling that classic Tetris is already doing it..

Didn't see the most addictive variant mentioned in the history: https://en.wikipedia.org/wiki/TetriNET

Here's a remake you can play in your browser built by some friends of mine: http://blockbattle.net/

Holy shit, that's a blast from the past! I must have ploughed hundreds of hours into TetriNET back in the day.

It's been so long that I can barely remember how any of it worked, but IIRC it had some sort of scripting language or config file that would allow you to modify game parameters on the client side, so you could give yourself an advantage by binding a key that would issue you a particular special block, or ensure that you were never automatically assigned a negative special block, and so on.

Now to see if I can get it working in 2018...

The best tetris experience is in the old Dos Navigator after pressing alt+f9 with its clever scoring: https://archive.org/details/DOSNavigator_1020

which is actualy open sourced at: http://www.dnosp.com

This blogpost is a huge undertaking, but it is incomplete without a discussion of official "Tetris Company" Guidelines, the Bag system, and the SRS Rotation System.

For details on the official Tetris specifications, see fan wikis such as:

* http://tetris.wikia.com/wiki/Tetris_Guideline * https://harddrop.com/wiki/Tetris_Guideline

The official Guidelines set consistent colors on the pieces, various mechanics and details about where and how pieces rotate, as well as "bonus points" for TSpins, TSpin Mini, Neo TSpins, B2B rules, and more.

Not all Tetris games follow the guidelines (Tetris Grand Master is the most popular non-guideline game). But the vast majority of official Tetris games follow the guidelines.

Not exactly "incomplete." The core of the article was written before the guideline was formally made and enforced on licencees. This is why the author went to such lengths in designing and documenting a standardized version. In fact, it's funny you should mention it since The Tetris Company actually reached out to this article's author for help in designing the guideline (unfortunately it didn't pan out).

I'm not sure if the dates line up with your story.

Tetris Guidelines started with Tetris Worlds (2001). While the parent article makes numerous references to 2003 or later (the code says 2007, some various Perl bits are 2005, etc. etc.)

Fortunately, the article is never wrong per se. It is clearly written that "Standard Tetris" is the name that the article gives to the IBM PC version of Tetris (1986). Its just odd to me that it has references to all sorts of 2003, 2005, and 2007 stuff without mentioning SRS or Guidelines.

You're right that Tetris Worlds came out in 2001, and was the first instance of the guideline we know today. I was referring to the bit in article here:

> Later in 2003, I received a message from Henk Rogers, inviting me to Hawaii to meet him and Alexey Pajitnov to talk about establishing some sort of standard for Tetris, for the purposes of having Tetris tournaments.

What's fair to say, though, is that although there's technically overlap on the timeline, he would've most certainly been more familiar with the myriad of Tetris games that predated the guideline. Tetris Worlds came out two years before his article, and at that point, nobody really even knew there was a guideline.

Here's a couple of 3D top-down ones:

Blockout: https://en.wikipedia.org/wiki/Blockout

Welltris: https://en.wikipedia.org/wiki/Welltris

I came here to mention Welltris too, which I was surprised wasn't mentioned in the 3D section as it was an official Tetris sequel by the original developer. There are lots of screenshots of it on different platforms (mostly 8-bit) here:


It's well worth watching John Linneman from Digital Foundry's retrospective on Tetris. Goes through from the very old to the newest Tetris Effect game.


Jimmy Maher, aka the Digital Antiquarian, wrote a fascinating series of articles about the history of Tetris last year.

A lot of it sounds like a cold war spy story, and I highly recommend it.

I link to part [3], because parts 1 and 2 has an introduction of how Soviet Russia saw cybernetics. Later parts explain how Atari ended with the rights for home computers and Nintendo for consoles and the schemes and skulduggery that followed.

[3] https://www.filfre.net/2017/06/a-tale-of-the-mirror-world-pa...

For a more detailed history, Gaming Historian did a great video earlier this year: https://www.youtube.com/watch?v=_fQtxKmgJC8

Coincidentally, I happen to be reading a book on technology addiction and just finished a chapter on Tetris [1].

As soon as I opened this link I started to whistle the music from Tetris (GameBoy of course). When I spotted Steve Wozniak I remember seeing a video of him playing Tetris obsessively on a GameBoy Light (or maybe a Color). I instinctively went to eBay.

Tetris really is the crack cocaine of video games!

[1] http://adamalterauthor.com/irresistible/

I made a minimal Tetris game in javascript. If someone wants to make their own version, it could be a good base for it.

The source code is at https://github.com/gunn/tetris/

And you can try playing it at http://wolandbros.com/tetris/

I’ve been playing quite a bit of Mizuguchi’s new The Tetris Effect recently. There was an interesting YouTube video recently where they tried it with a Tetris master who did noticeably better in VR than on a screen. In the end the best guess was that the increased FPS and lowered response times were really helping.

For those interested (but too lazy to look) here's the video: https://www.youtube.com/watch?v=7T7mg6JZZzg

And a Pt 2 followup: https://www.youtube.com/watch?v=0j_fp5L8Si8

Very entertaining and well worth watching even if you're not a Tetris superfan.

Thanks! Was on mobile when I commented and forgot to come back to add the links.

the original 3d tetris was "blockout" [https://en.wikipedia.org/wiki/Blockout], which i spent way too much time playing back in high school. surprised it didn't get a mention.

Steve Wozniak looks like he's having so much fun in that picture. I wonder what the Tetris effect[0] looks like after playing on a building?

[0] https://en.wikipedia.org/wiki/Tetris_effect

Twintris on the Amiga:


So many hours. We'd battle many nights. Going to sleep still fitting blocks in my head.

What a coincidence. Tetris reminded me of life in a sense.


I am surprised that the site does not mention the From Nand To Tetris course [1] and philosophy.

[1] https://www.nand2tetris.org/

The first thing that clicked in my mind.

The Tetris IOCCC entry since moved to http://tromp.github.io/tetris.html

In Jackrabbit, the very cool retro-dystopian flick, scavenged (but potentially valuable) hardware is referred to as "tetris." Nice touch I thought...

You can run tetris within Emacs via ESC-X tetris

I just wanted to say that the best puzzle game ever is Kirby's Avalanche for the SNES.

It seems as though most of the links in the examples of other sorts of tetris are broken

This isn't complete without a reference to Hell Tetris: https://www.xkcd.com/724/

I found an implementation on kongregate, but it requires flash: https://www.kongregate.com/games/banthar/hell-tetris

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact