145 comments

[ 1.9 ms ] story [ 188 ms ] thread
The concept is really cool, unfortunately as soon as I started playing it (Firefox) the pieces started moving of their own accord, and the play field started shaking, not sure if it's a game feature or a bug.
if you joined quick play, you were probably spectating while waiting for a match
Worked well for me (Firefox, macOS), though the game kicked my computers' fans into high gear.
dope game.....im curious what the architecture of the web app is.
The game client is built with PixiJS, and otherwise mostly uses vanilla JS. The backend is built with Node.js, and the game uses a custom WebSocket protocol called Ribbon.

In fact, there's a whole list of open source dependencies at https://tetr.io/about/acknowledgements/.

The tracks are amazingly cool.
I used to love playing Tetranet - this brings back those vibes.
Yes!! I spent _hours_ a few weeks ago trying to figure out if there was a Tetrinet equivalent these days, so if this is anywhere close I'm extremely excited.
Tetris99 is pretty similar. You have to get the DLC to unlock playing with your friends though.
(comment deleted)
For people on mobile like me, can someone explain what this is? The name and URL alone makes me intrigued.
> TETR.IO is a modern yet familiar online stacker. Play against friends and foes all over the world, or claim a spot on the leaderboards - the stacker future is yours!

From: https://tetr.io/about/

It's just a multiplayer Tetris clone. Not a "mass" multiplayer like some other .io games, just one with match making.
I was hoping for one big play area where everyone controlled their own pieces in real-time.
Dropping a billion-dollar idea right here and just one upvote?
Particularly a Tetris 99 clone, Nintendo's switch online tetris.
Not really, it does more than Tetris 99, and the main match making mode is 1v1 not 1v98.

It's not the only Tetris game with big lobbies. An earlier popular one is https://jstris.jezevec10.com/

I mean, I just played a game with 100 others, and other people getting lines added lines to my board, last man standing.

Sounds pretty Tetris 99.

Yup it has that mode, which to be fair existed in Tetris clones long before Tetris 99. I just meant that it had many more modes and I don't really thing that's the focus of Tetr.io? I could be wrong though I'm not a player.
the focus is primarily on 1v1 (tetra league); quickplay is a way to get introduced to the game maybe but it's not the main attraction
hi xynix i am your no 2 fan can you make me a stream overlay with pictures of sec and everywhere
(comment deleted)
html/js/webgl-based Tetris clone that has extensive options and play modes.
I've yet to find a tetris game that I enjoy more than the NES version, although I'm open to the possibility.
Tetris Party for Wii is well liked in our house. Adds some fun game modes and twists on the original gameplay.

Tetris 2 for SNES is different (goal is to clear certain colored blocks for each level instead of just not dying). My wife and I found it to scale well for our differing video-game skills, as I tend to be better than she is.

Have you tried the TGM series?

https://tetris.wiki/Tetris_The_Grand_Master

While both are Tetris, TGM is very different, and closer to modern Tetris than the NES version.

The NES version is much less forgiving when it comes to rotation, locking, random generator, etc... It also has a single preview, no hold piece and no hard drop. At high level, a major challenge is to move pieces fast enough to reach the sides, including a technique called "hypertapping" where you mash buttons extremely quickly to move the pieces faster instead of just holding a direction.

Modern Tetris is much faster. At high level, you get to "20G" mode, where the pieces drop immediately and you have to rely on the lock delay and rotation system to move pieces around. Later versions introduced T-Spins as an alternative to Tetrises for high scores and attacks in multiplayer.

> It also has a single preview, no hold piece and no hard drop.

This is also true for TGM 1, TGM 2 adds sonic drop but still only has 1 preview.

But yeah it was just a suggestion since the TGM series is not as popular as NES or Guideline but offers a very different experience!

I would argue that TGM is closer in spirit to NES Tetris than to modern Tetris. In both NES and TGM, the speed of the game is extrinsic - it comes from the game itself, forcing you to play faster and faster. In modern Tetris, the speed is intrinsic - it comes from the player skill. Even with forced 20G the rotation system and the wall/floorkicks mechanism makes it much more easier to both move and recover from screwups.
Yes, the newer rules (seeing multiple upcoming pieces, swapping pieces, pieces being shuffled instead of completely random, being able to move a piece once it's touched the ground) seem almost like cheating compared to the NES version.
This is highly subjective, but I spectated a few games and the amount of shaking that is happening seems excessive to me. Maybe the kids are impressed by all the shaking going on, but I find it hard to focus when the thing I'm focusing on keeps jumping around.

On a related note, I think screenshakes are extremely overused in indie games. It's so cheap to add that it cheapens the games.

  - Threw a grenade? Boom. screenshake. 
  - Shot a bullet? Boom. screenshake. 
  - Picked up an item? Boom. screenshake. 
  - Let out a big sigh? screenshake. 
  - Physically shook your display? Double screenshake.
  - Rolled your eyes at all the screenshakes? There's a screenshake for that too
In StarCraft, the screen didn't shake even if you dropped a nuke on someone else's base. I guess the good folks at Blizzard at the time didn't watch that one GDC talk, "Juice It or Lose It", so they had to come up with a different way to make a good game.
The game has a very robust config that allows you to alter the amount of shaking. I also did not like it. I turned shake and bounce all the way down to 0%.
Indeed, I was very impressed by the extensive configuration options, and of course ability to export/import them.
You might want to turn down Config > Gameplay > Board Bounciness/Damage Shakiness.
You're comparing the wrong genres. StarCraft (age of empires, etc) is an RTS where you have a god view. Screen shakes make little sense when you, the player are removed from any of the characters and the terrain in play. From a usability perspective, these games also have a ton of information the player needs to process in a teeny amount of time. Screenshake would seriously mess with the player's ability to stay focused on what needs to prioritized. Hell, pro SC2 players even turn off ragdolls and environmental particle effects so that there's even less "noise". Does that mean Blizzard artists were compensating for poor gameplay when they implemented those?

Meanwhile, "arcade" style games like platformers, bullet hells, puzzles (tetris etc), turn based card games, etc need to juice up the moments when important things happen (because these aren't games full of subtlety moment to moment), and don't have a crazy amount of complex information on the screen that gets sacrificed in a screenshake.

To note, Hearthstone and Diablo III both have plenty of screenshake, although I believe you can turn them off (and many indie games heavy on screen shake offer this option too).

Juice is indeed very important to make games "feel" good, but perhaps more devs need to ask "is the juice worth the squeeze?" to not turn off players like you.

You can remove almost all of the visual effects in Tetr.io ghost piece transparency, background images, grid visibility etc.

You can even adjust key repeat speeds, manual drop speed and everything related to game play. It's extremely versatile in that regard and easily the top 1 tetris clone in my opinion.

> Maybe the kids are impressed by all the shaking going on, but I find it hard to focus when the thing I'm focusing on keeps jumping around.

No need to be snobby. For the record, I'm in my 30s, and I disagree with the central thesis of your comment.

Too much shaking in spectating, I'm actually getting motion sick.
This is cool! I'm guessing inspired by Tetris 99 available on Nintendo Switch.

Thank you for having an anonymous mode!

edit: After playing and watching a bit it's very obvious that if you want to win you'll have to use a bot. A quick google search turns up a a couple pre-made bots you can download and start running yourself. It's fun to see bot vs bot in the multi-player quick play.

They aren't bots, the skill ceiling for Tetris is practically non-existent. The fastest player in the world can clear 40 lines in like 14 seconds I think.
The players in quick play are absolutely not bots. Botting is the number one way to get yourself permanently banned.
It's basically the equivalent of random casual players hopping into an FPS and immediately being able to spectate top tier pros and deciding that everyone must be aimbotting. No, some people really are just that insanely good at video games.
Seems to be doing the moves server-side, even on solo mode, so with my high latency, high jitter connection it's unplayable.
The community has written a great wiki page about the game for those looking for more details without looking around inside the game: https://tetris.wiki/TETR.IO
the keyboard input lag is painful

have webdev lost their mind?

other than this issue, i love the concept, the art style is kinda nice too, it's tetris, but there is a fresh and modern look, i like it

fix the input lag issue, and you get all my support!

there's no existing input lag from my knowledge; if it's slow, as it is by default, you can change your handling (ARR, DAS, SDF) to however fast you want it
there is no ARE and there's also a "0ARR" handling setting - so this is actually considered 0 input delay.
Quite OT: how do people get adsense (or other advertisers) on apps/games like these? I have a few apps that I would love to try an monetize but whenever I apply for adsense I get rejected for "lack of content".
Not sure how applicable it would be to your use case, but TETR.IO uses a service called AdinPlay for monetisation.
Don't use adsense for web games. Take this advice from someone who had to deal with them. You're just one sniff away from Google's algorithm locking down your account and impacting your earnings.
Short answer: you don't, Google doesn't like them. If you have a huge amount of players, you may be able to get in contact. TETR.IO uses AdinPlay, which does use the same Google network, but without being immediately thrown out of the network
This has to be some kind of wasm construction right? I've hardly ever seen such a smooth but rich experience on web.
(comment deleted)
Not everything this fancy is wasm.

Obvious example: https://acko.net/

the website may look cool, but judging from the first article (at the time of reading), the content is atrocious.
If you find his latest article objectionable — even though his words are completely in line with the perspective held by non-crank doctors[0] — then you’re probably the kind of person for whom it would benefit the most.

Try to instead give it five minutes[1], digest and understand the content, and rise above the faith-based scientism that is the likely cause for increased anti-vaccination sentiment.

[0]: https://youtu.be/5iABaxRWGxk

[1]: https://signalvnoise.com/posts/3124-give-it-five-minutes

Fairly bold of you to assume I didn't read the article, but anyway:

I've given five minutes to the thought that being an anti-vaxxer in the middle of a pandemic when vaccines are provided to you for free and at the point that only very long term effects can be a concern is comparable to being a jew in nazi Germany, and I still think it is atrocious, sorry.

But I mean, there's only so much you can talk about when "faith-based scientism" is used for vaccines.

His shader stuff and graphics programming articles are neat. But yeah his other stuff is... misguided, at best (and I think he's amazingly wrong in his latest article). I just don't read those ones.
Could you elaborate on why you think Wittens is “misguided”?

Do you think, for example, that he is not in a good position to write about the oppression of minorities?

Hmmm, well, his very first post ("Who Doesn't Go Nazi?") is about being an anti-vaxxer, saying how anti-vaxxers would resist becoming Nazis, and comparing anti-vaxxers to the Jews, which already has me questioning his critical thinking skills.

I looked at a couple of his other articles, and despite being a good writer, there's some subtle, and not-so-subtle, points he misses. E.g., in "Storms and Teacups", he thinks that Jezebel celebrating women's "equality and self-determination" means they are hypocritical to criticize Michelle Williams for dressing up as a Native American, and the fashion industry because they "didn't objectify a woman in a tasteful enough fashion".

This shows he doesn't understand that 1) "equality and self-empowerment" are not to come at others' expense, an unstated, but real, caveat, he seems to have missed, and 2) criticism of an industry doesn't have to involve every possible complaint all the time. That's just editorial focus.

Ironically, towards the end of the article, he says "We don't want to talk about the full complexity at play here", while parroting standard responses. I'm 99% sure he spends his time digging up things that confirm his viewpoint, locating the 1% of outliers that support him, and no time engaging with the scholarship of the majority of the other side. It's like trying to talk about racism using only Candace Owens' talking points.

I don't know how you can say this with any intellectual integrity. I suspect you either didn't read the Storms and Teacups article, or you skimmed it and recoiled at every word, refusing to consider any of his arguments in any capacity.

> It's like trying to talk about racism using only Candace Owens' talking points.

Are you so sure you aren't guilty of this yourself? How much Thomas Sowell or John McWhorter have you read?

I disagree. I find his content quite apropos for the times.....
I believe it uses a webgl 2d framework, like pixijs, though that might no longer be accurate.
There's no WASM, it's mostly vanilla JS, together with the PixiJS library, which does 2d WebGL rendering. It has in-house libraries for text rendering, particle systems and the such. It's not super strong, but as long as you understand the limitations of the browser and try to adapt to the client's machine, you can get a very decent experience in. I hope this game sparks a bit of a trend of trying to make more genuine gaming experiences in the browser.
It certainly inspired me to give it a try, very well done!
nice! I am building a basic game engine for html story telling / RPGs and simple adventures. aiming for a disgaea + pokemon feel
Whoever picked the music did a great job. I played 3 games and the random selections were all whimsical.
(comment deleted)
Can't it be played on mobile phone? Swipe up for up, swipe left for left, etc.
I'm guessing you can't play this on mobile? What are the controls? Couldn't figure out anything
If u want mobile Tetris, check out jstris
Reminds me of TetriNET. That game was awesome.
Doesn't work on Chrome/MacOS. Go for Quick Game and then Got It (which is slightly off the bottom of the page) and then... nothing.
worked for me on Chrome / macOS Big Sur
You have to wait until the current set of players are eliminated and a new match starts.
Are there people using bots to play this? I played in one of the 100 player matches and the top players were just ridiculous.
Nope, some of the best players in the world hang out in Quick Play, and they're simply built different.
mix of muscle memory, strats and changing default settings (DAS/ARR etc) to allow you to play faster
Haven’t tried multiplayer yet but there are definitely bots on the solo play leaderboard. The fastest time for getting 40 lines in blitz mode is 15 seconds. It’s not humanly possible.
You'd be surprised how deep the skill hole can go. Looks at this 20-ish seconds for 40L mode with hand cam:

https://www.youtube.com/watch?v=4OFq31lek2g

https://www.youtube.com/watch?v=MJDz4-pr9J4

https://www.youtube.com/watch?v=Azm-hbVTRJk

Huh. Seems like I may be in the wrong here. I've been watching some of the NES Tetris videos recently and they don't even go this fast so I thought it wasn't possible. I guess that's that's the different between a "sprint" and a "marathon" though?

I can barely even register the next piece at that speed, I wonder if these players are mostly just visualizing the board in their mind. Doesn't seem possible to be looking at both the upcoming piece and the playfield at this kind of speed.

NES tetris and modern tetris are VERY different games. NES tetris didn't have hard drop, hold, SRS, 7-bag randomizer, or multiple piece previews, all of which are in all modern guideline tetris games and can help you go faster. Tetr.io and Jstris go even further than guideline tetris: there's no line clear delay and you can set DAS/ARR[1] to anything you want, which lets you go even faster.

The bottleneck isn't the keyboard input. Pretty much all top players use ARR 0 and 2-step finesse[2] (or something close to it), which means you can position any piece where you want in 2 keystrokes at most, plus 1 more to hard drop it. And certain stacking styles (e.g. 6-3 stacking[3]) lend themselves well to not requiring the full 2 keystrokes pretty often, so in practice you end up with ~2.6 keys per piece instead of 3. A typical DAS for a pro player (e.g. someone like Firestorm) might be somewhere around 70ms. So if we roughly estimate 100ms average per piece (70ms to DAS, with some extra for the sometimes-needed rotation and hard drop), that would be ~10 pieces per second, which is well over the ~6.5 PPS in the record sprints.

The physical pressing of the keys also isn't really a bottleneck. Keys per second in the top sprints is ~16. I just mashed my movement/rotation keys into `time | wc -c` and got ~35 KPS after 2 beers, and I don't even have a particularly gaming-focused keyboard.

The bottleneck also isn't reaction times. Someone might trot out a hastily-googled 250ms as a typical human reaction time and claim 100ms per piece isn't possible, but good players aren't reacting to each piece as it comes -- they're using the previews (and hold) to react to the piece that's coming 4-5 steps in the future, which is closer to a second away.

It's really just about how fast you can process the upcoming queue and still stack cleanly.

[1]: https://harddrop.com/wiki/DAS [2]: https://four.lol/mid-game/finesse [3]: https://harddrop.com/forums/index.php?showtopic=2985

Wow, thank you for this very thorough response. I also had to look up SRS [0] as a key concept. Really impressive the way that all the different piece and placement combinations have been broken down in a comprehensive way.

I can see now how this becomes a much more organized and deterministic game with these changes, allowing players to plan their moves and inputs precisely so that they are barely need any visual feedback to confirm the state of the board, allowing them to queue up multiple moves in rapid succession.

Of course I’m sure it takes a lot of training and practice as well!

0: https://tetris.fandom.com/wiki/SRS

> Seems like I may be in the wrong here. I've been watching some of the NES Tetris videos recently and they don't even go this fast so I thought it wasn't possible. I guess that's that's the different between a "sprint" and a "marathon" though?

That's because the NES Tetris has considerably different mechanics. NES Tetris simply wasn't built for fast play. The DAS, piece locking, RNG rules etc. are very unforgiving, so the players are doing most of the work fighting against them instead of finding piece placements as fast as possible.

no they just are really good

it’s insane how good you can get in so little time tbh

Yeah... I played a few rounds and after getting my butt kicked incredibly fast, (side note: I love Tetris and am the household champion in comp. games), I thought there was something fishy going on.

Yep, bots galore. A simple Google search turned up an open source bot on github[1], meaning there are probably better bots hidden within the community.

Ugh. So many online games today are ruined by cheaters.

[1] https://github.com/misterhat/tetrio-bot

Dev of the game here, its anticheat is quite sophisticated (esp. for a webgame), trying to run a bot like this at any significant speed would get you promptly automatically banned. There's not really many times this happens - rather, Quick Play just tends to have a few really good players in it. For example: all the plays on the leaderboards for the "40 LINES" and "BLITZ" modes are ensured correct and fair. They're prominent community figures, most of the time. If you're not convinced, there's a liveplay[1] of a top player playing it at their top speed.

[1] https://www.youtube.com/watch?v=MJDz4-pr9J4

This game plays so well, I really like it. I've sucked at TGM and nullpomino for years and I'm looking forward to sucking at this now. Thanks for posting the video, it can be hard to believe how good some people are at tetris.
> Yeah... I played a few rounds and after getting my butt kicked incredibly fast, (side note: I love Tetris and am the household champion in comp. games), I thought there was something fishy going on.

Being good in your household means basically nothing for an online game, especially one like Tetris. Games like this, the skill ceiling is insanely high, if you haven't seen high level play before then you're probably drastically underestimating what humans are capable of.

Other competitive game genres are like this too. Compared to 'good in my family' players for FPS games, top tier pros will basically look like they're running an aimbot. I'm big into Starcraft and the pros for that game look similarly insane when you watch from their perspective, with how fast they are at context switching.

As a decently active player in the community, it's actually really hard to make a convincing bot. there's a lot of subtle tells (timing, handling, types of setups, response to pressure) that make bots really obvious to an experienced eye.

More importantly, there's just a lot of people who are really good at Tetris. Once someone practices enough, they naturally become faster because of muscle memory, up to levels that seem superhuman to beginners[1].

In short, it's far more likely that the people you played are just players who have practiced a good amount, rather than bots that have somehow remained undetected.

[1] happy to 1v1

Anyone know how to get the playlist for this?