Friendly reminder: Tetris is one of the most valuable, and vigorously defended, game IPs in the world. Such aspects of the game as the dimensions of the playfield and the shapes of the tetrominoes are protected by copyrights and trademarks belonging to Tetris Holdings LLC -- and Tetris Holdings is Oracle-tier litigious. Yes, this has stood up in court. Hope you like unfriendly C&Ds from powerful attorneys.
Have they ever actually ended up in court? I was on the receiving end of one of these letters many years back for a clone I was involved with, but we just kept distributing it for a long time and they just sent basically the same letter a few years later. The primary developer eventually stopped the project only because he moved on to other things.
I feel like back then we didn’t find any cases backing up TTC’s claims, but I haven’t kept up over the years.
Look up Tetris Holdings, LLC v. Xio Interactive, Inc. The court found 100% in favor of Tetris Holdings, in particular noting the shape of the tetrominoes, the way the tetrominoes spun and fell, and the dimensions of the game board as protectable elements under U.S. copyright law. Since this ruling was handed down, Tetris has applied for and received U.S. trademarks on the tetromino pieces.
The upshot of this is that it is illegal to develop a clone of Tetris. It doesn't matter whether you call it Tetris or not, or whether you use "ripped" or copied assets or not -- the very fact that you have copied Tetris means you are infringing. It may be illegal to develop a video game that uses tetrominoes at all since the tetromino pieces are protected trademarks of The Tetris Company.
Copyright does not protect game mechanics and rules. In Tetris v. Xio, they successfully argued that the game infringed on trade dress.
They claimed that the pieces looked like ones in other games, which in my view is impossible not to infringe on since there have been hundreds of Tetris games with every type of piece design possible.
They claimed that they used tetrominos, and the playfield was twice as high as it was wide, and so on. What Xio failed to point out was that all of these are functional aspects of the game, which means it is not protected by trade dress. Even the original creator, Alexey Pajitnov, has said that he originally tried pentomonoes, but that was too difficult, so he used tetrominos instead. That's functional, not trade dress.
Do you have a source for Tetris's trademarking tetrominos? Perhaps you're referring to their "tetrimino" label, which their own term for what the non-branded world refers to as "tetrominos."
Xio did, in fact, attempt to point out that the shapes of the tetrominos are functional elements and not subject to trade dress. The judge disagreed.
The judge also said that while copyright does not protect the abstract concept of a falling block game, he specifically cited the shapes of the blocks and the playfield size as copyrightable.
It's settled U.S. case law. If you develop a clone of Tetris, you are infringing on The Tetris Company's copyrights and trademarks and may be subject to civil and criminal penalties under U.S. law.
IF YOU DON'T WANT TO BE SUED, DON'T EVER WRITE A TETRIS CLONE. PERIOD.
In the ruling, the judge states, "The style, design, shape, and movement of the pieces are expression; they are not part of the ideas, rules, or functions of the game nor are they essential or inseparable from the ideas, rules, or functions of the game."
Clearly the judge disagreed that these elements weren't protectable, but do you agree? I'm say that I don't agree with the judge. Changing the the kind of polyominoes will make the game easier or harder (imagine how easy it would be with dominoes). Changing the playfield dimensions also changes the difficulty: a lower ceiling as well as a narrower well makes it much more difficult to survive.
Well if you're sitting on a pile of startup exit cash and can hire a Boies-tier attorney, go ahead and write that Tetris clone. You'll get your day in court to test those theories of yours, soon enough, and you can appeal it all the way to the Supremes if you wish.
As things stand, though, the law of the land as established in federal courts says those elements are copyrightable, and under copyright. So it doesn't matter a fig what you or I think of the judge's ruling -- the law is clear.
If you are new to programming, I would actually recommend making a Tetris clone. It's a great learning experience. Obviously if you're worried about receiving a cease and desist, then don't put it on sale on the app store.
First one. Russian Academy of Sciences(RAS) doesn't hold students. That's an authority that manages the network of research institutes. Educational institutes are separated from that network in Russia.
Second one. Pazhitnov really worked in one of the RAS institutes when created tetris.
That doesn't sound right. Physical, non-video-game instantiations of tetrominoes exist, and Tetris Holdings, LLC presumably doesn't hold trademark over those.
It'd be like trying to trademark a d20. Sure, one with symbols/numbers on it, as viewed from a certain angle, stylized a certain way, might be trademarkable as a mark (i.e. a logo.) But isocahedrons generally? They're mathematical objects.
Which means that, presumably, you could make a Tetris clone as a board game (which would work a bit like Connect Four, I guess) without any exposure.
Trademarks are funny in that they are confined to certain markets. If you do not compete in a trademark owner's business, you can use the mark. You see this in the wild: the word Namco, for instance, is trademarked to a Japanese video game company and an American swimming pool company. The word Shazam can refer to a superhero owned by Warner Bros., an app owned by Apple, or a financial services company called Shazam Inc. with a separate trademark for all three. And there's some interesting trademark history behind the name "Apple" itself!
So yes, while the tetrominos being a Tetris Company trademark precludes their unlicensed use in video games, they can be used in other contexts -- a tetromino pattern on pyjamas or wallpaper, for instance.
However, I would be wary about attempting to use them in a board game, as I seem to recall at least one licensed Tetris board game in the wild. Consult an attorney before proceeding. :)
There was also a suite of Windows games I played back in ~2003 that occupied maybe a 32x64 window each, and one of them was mini Tetris. As I recall, the developer was Israeli. Anyway it was awesome for playing casually in stealth mode; there were no window decorations and the games were well made. I think one of the other games was pool. I haven't been able to find them since.
Have you tried asking in the subreddit "tip of my tongue" [0]? I have been amazed at what they can figure out about obscure stuff with very abstract clues.
Here it is in a rather ambitious toy assembler language created specifically to play tetris using Conway's Game of Life rules. Trying to grok it will melt your brain on multiple levels.
One time in high school I made a Tetris clone (in one lunch hour!) with single pixels as the squares, and used the VGA video memory itself as the data structure for the current board state. It was in 320x200 resolution, so the pixels were pretty big (the game area itself was only a small rectangle of them). My version didn't detect when the pieces reached the top or keep score or anything, just the basic playable mechanics.
With ncurses it runs out of the box on my POWER6 AIX machine, so A for portability. I'd give you an A+ if I had xlc installed locally, but I cheated a little and used gcc. (For ncurses, I used the perzl pre-built library.)
You are correct; the code to print the blocks is on lines 35-37 of tinytetris-commented.c.
But the large comment at the top of the tinytetris.c file is made of the block drawing characters :)
The attron sets terminal attributes which presumably cause it to flip the " " into a solid block. I haven't decoded what exactly the number it's feeding in represents, but 262176 is 0b1000000000000100000, and the attributes are defined around line 1100 of curses.h on my system (/A_NORMAL will find it).
Don't let yourself get hung up on doing anything fancy, it's just fun to do. Seriously, just implementing tetris in processing is a fun way to spend an hour, and a great way to remind yourself of why programming is fun. It doesn't involve anything crazy as far as algorithms, but is a fun challenge to do. It's definitely worth it to implement a version, it is just fun to do.
Yes, but that's rather besides the point. It's not the fact that it's Tetris in a terminal; it's also the fact that it's minified code. Look at the GIF on the Github page; that's the code of the game.