
Classic Tetrinet, revived: specials, teams and up to eight controllers on one Steam Deck.
The continuation of GTetrinet, the classic Tetrinet client: a portable C11 core with SDL2, an embedded offline server, eight local controller seats, teams and specials. Linux, Windows and the Steam Deck.
From the project's release notes. Games and the launcher show these after every update.
2026-10-16 · on GitHub
A server list. "Play online" now opens a list of the servers you played on and three public TetriNET servers (tetrinet.de, tetrinet.fr, tetrinet.us). Each one is asked in the background who is there: how many are playing, how many channels it has and how quickly it answers, and for the chosen server its version and busiest channels. Servers that do not tell (and those that cannot be reached) say so. Pick one with A or Enter; X (S) asks again, Y (N) switches between classic and TetriFast, and "Type an address..." at the end still lets you enter any server. A server goes into the list only once somebody got on it. gtetrinet-ng's own server now answers these questions too, so other server lists can show it, and gtetrinet-ng-server --query HOST asks a server from the command line. German translation included.
Playing on other TetriNET servers. Every build is now tested against two servers we did not write, tetrinetx and tetrinet-server: logging in, chat, teams, specials, wins, full servers and taken names all work there, and several players from one screen can join the same online game. Neither server knows TetriFast, so choosing it there now says so (press Y to switch to classic) instead of just "connection closed". If nobody could connect, every player keeps their seat for the next try. Leaving a tetrinet-server game with several players at once no longer crashes that server. The lobby no longer opens before a player who had to take another name is in. German translation included.
Computer opponents. In the lobby of a game on this machine, X (S on the keyboard) adds a computer player to the next free seat and LB (Q) removes one again; RB (E) switches their strength between Easy, Normal and Hard, and the choice is saved. Computer players move, clear lines and use specials like everyone else, so one person can now play a full game alone, and they stay seated from game to game until you leave. They only join games on this machine, never an online server. German translation included.
Sound and rumble. The game now plays short sound effects — a piece landing, one to four cleared lines, using a special, being hit by one (harmful, helpful and mixed effects each sound different), topping out and winning — and the controller of the player concerned rumbles when they are hit, clear four lines, top out or win. Options has two new rows: Sound effects (Off, Quiet, Normal, Loud) and Controller rumble (On, Off), both saved. The sounds are generated by the game itself, so there are no audio files. German translation included.
Every player can choose their own name: after joining, press Y on the controller (N on the keyboard) on the title screen and type it on the on-screen keyboard, or with a real keyboard. Names are one word of up to 15 characters, are saved per seat P1–P8 and are what the lobby, the boards and online servers show. Seats without a name of their own keep following P1's name with a number. German translation included.
Controller buttons can be rearranged: Options → Controller buttons lists the eight in-game actions; pick one, press A and then the button it should use. A button that is already taken swaps with the old one, Y restores the standard layout, and the choice is saved for every controller. Movement, Start and the menus stay where they are, and the keyboard keeps its classic keys. German translation included.
German translation of the game: menus, hints, special names and effect labels, status and connection errors, and the lobby/attack messages. Options (controller X / keyboard S on the title screen) now holds Movement repeat and Language: Automatic, English or Deutsch, saved like the repeat preset. The font gained Latin-1 letters (ä ö ü ß and others); nicknames from classic clients that send Latin-1 now show instead of "?". Typographic dashes and quotes in the changelog render, and its paragraphs reflow to the screen width. The changelog text itself stays English. Small fixes: the title's empty player cards no longer overflow, and the lobby's winner list no longer overlaps the start prompt with eight players.
Steam Deck feedback: clickable desktop installer with install/error dialogs, friendly GTetrinet NG — TetriNET title and original matching Steam artwork. Existing Steam shortcut IDs are preserved on rename; shortcut writes still require Steam to be fully closed. Menus, nicknames and status text reduce font scale before abbreviation; help is shorter and changelog headings wrap at their actual font size. Both rotation directions are now explicit in the instructions and covered by live-session controller tests.
German translation, effect colors and a TetriNET 2 feature audit are on the roadmap. Jan verified one-player play on a physical Deck; eight-controller hardware remains unverified.
First modern preview of GTetrinet: SDL2 frontend, keyboard/gamepad input and up to eight local fields; embedded offline server and standalone LAN server; TetriNET/TetriFast protocol core, teams, specials and win lists. Linux/Steam Deck and Windows portable builds. Linux installer checks for updates and shows this changelog after an upgrade.
Still experimental: external-server interoperability and real eight-controller Steam Deck play need verification. Original GTK2 source and translations remain in legacy/.
2026-10-16 · on GitHub
Playing on other TetriNET servers. Every build is now tested against two servers we did not write, tetrinetx and tetrinet-server: logging in, chat, teams, specials, wins, full servers and taken names all work there, and several players from one screen can join the same online game. Neither server knows TetriFast, so choosing it there now says so (press Y to switch to classic) instead of just "connection closed". If nobody could connect, every player keeps their seat for the next try. Leaving a tetrinet-server game with several players at once no longer crashes that server. The lobby no longer opens before a player who had to take another name is in. German translation included.
Computer opponents. In the lobby of a game on this machine, X (S on the keyboard) adds a computer player to the next free seat and LB (Q) removes one again; RB (E) switches their strength between Easy, Normal and Hard, and the choice is saved. Computer players move, clear lines and use specials like everyone else, so one person can now play a full game alone, and they stay seated from game to game until you leave. They only join games on this machine, never an online server. German translation included.
Sound and rumble. The game now plays short sound effects — a piece landing, one to four cleared lines, using a special, being hit by one (harmful, helpful and mixed effects each sound different), topping out and winning — and the controller of the player concerned rumbles when they are hit, clear four lines, top out or win. Options has two new rows: Sound effects (Off, Quiet, Normal, Loud) and Controller rumble (On, Off), both saved. The sounds are generated by the game itself, so there are no audio files. German translation included.
Every player can choose their own name: after joining, press Y on the controller (N on the keyboard) on the title screen and type it on the on-screen keyboard, or with a real keyboard. Names are one word of up to 15 characters, are saved per seat P1–P8 and are what the lobby, the boards and online servers show. Seats without a name of their own keep following P1's name with a number. German translation included.
Controller buttons can be rearranged: Options → Controller buttons lists the eight in-game actions; pick one, press A and then the button it should use. A button that is already taken swaps with the old one, Y restores the standard layout, and the choice is saved for every controller. Movement, Start and the menus stay where they are, and the keyboard keeps its classic keys. German translation included.
German translation of the game: menus, hints, special names and effect labels, status and connection errors, and the lobby/attack messages. Options (controller X / keyboard S on the title screen) now holds Movement repeat and Language: Automatic, English or Deutsch, saved like the repeat preset. The font gained Latin-1 letters (ä ö ü ß and others); nicknames from classic clients that send Latin-1 now show instead of "?". Typographic dashes and quotes in the changelog render, and its paragraphs reflow to the screen width. The changelog text itself stays English. Small fixes: the title's empty player cards no longer overflow, and the lobby's winner list no longer overlaps the start prompt with eight players.
Steam Deck feedback: clickable desktop installer with install/error dialogs, friendly GTetrinet NG — TetriNET title and original matching Steam artwork. Existing Steam shortcut IDs are preserved on rename; shortcut writes still require Steam to be fully closed. Menus, nicknames and status text reduce font scale before abbreviation; help is shorter and changelog headings wrap at their actual font size. Both rotation directions are now explicit in the instructions and covered by live-session controller tests.
German translation, effect colors and a TetriNET 2 feature audit are on the roadmap. Jan verified one-player play on a physical Deck; eight-controller hardware remains unverified.
First modern preview of GTetrinet: SDL2 frontend, keyboard/gamepad input and up to eight local fields; embedded offline server and standalone LAN server; TetriNET/TetriFast protocol core, teams, specials and win lists. Linux/Steam Deck and Windows portable builds. Linux installer checks for updates and shows this changelog after an upgrade.
Still experimental: external-server interoperability and real eight-controller Steam Deck play need verification. Original GTK2 source and translations remain in legacy/.
2026-10-16 · on GitHub
Computer opponents. In the lobby of a game on this machine, X (S on the keyboard) adds a computer player to the next free seat and LB (Q) removes one again; RB (E) switches their strength between Easy, Normal and Hard, and the choice is saved. Computer players move, clear lines and use specials like everyone else, so one person can now play a full game alone, and they stay seated from game to game until you leave. They only join games on this machine, never an online server. German translation included.
Sound and rumble. The game now plays short sound effects — a piece landing, one to four cleared lines, using a special, being hit by one (harmful, helpful and mixed effects each sound different), topping out and winning — and the controller of the player concerned rumbles when they are hit, clear four lines, top out or win. Options has two new rows: Sound effects (Off, Quiet, Normal, Loud) and Controller rumble (On, Off), both saved. The sounds are generated by the game itself, so there are no audio files. German translation included.
Every player can choose their own name: after joining, press Y on the controller (N on the keyboard) on the title screen and type it on the on-screen keyboard, or with a real keyboard. Names are one word of up to 15 characters, are saved per seat P1–P8 and are what the lobby, the boards and online servers show. Seats without a name of their own keep following P1's name with a number. German translation included.
Controller buttons can be rearranged: Options → Controller buttons lists the eight in-game actions; pick one, press A and then the button it should use. A button that is already taken swaps with the old one, Y restores the standard layout, and the choice is saved for every controller. Movement, Start and the menus stay where they are, and the keyboard keeps its classic keys. German translation included.
German translation of the game: menus, hints, special names and effect labels, status and connection errors, and the lobby/attack messages. Options (controller X / keyboard S on the title screen) now holds Movement repeat and Language: Automatic, English or Deutsch, saved like the repeat preset. The font gained Latin-1 letters (ä ö ü ß and others); nicknames from classic clients that send Latin-1 now show instead of "?". Typographic dashes and quotes in the changelog render, and its paragraphs reflow to the screen width. The changelog text itself stays English. Small fixes: the title's empty player cards no longer overflow, and the lobby's winner list no longer overlaps the start prompt with eight players.
Steam Deck feedback: clickable desktop installer with install/error dialogs, friendly GTetrinet NG — TetriNET title and original matching Steam artwork. Existing Steam shortcut IDs are preserved on rename; shortcut writes still require Steam to be fully closed. Menus, nicknames and status text reduce font scale before abbreviation; help is shorter and changelog headings wrap at their actual font size. Both rotation directions are now explicit in the instructions and covered by live-session controller tests.
German translation, effect colors and a TetriNET 2 feature audit are on the roadmap. Jan verified one-player play on a physical Deck; eight-controller hardware remains unverified.
First modern preview of GTetrinet: SDL2 frontend, keyboard/gamepad input and up to eight local fields; embedded offline server and standalone LAN server; TetriNET/TetriFast protocol core, teams, specials and win lists. Linux/Steam Deck and Windows portable builds. Linux installer checks for updates and shows this changelog after an upgrade.
Still experimental: external-server interoperability and real eight-controller Steam Deck play need verification. Original GTK2 source and translations remain in legacy/.
No open rooms right now. Host one from a game or the launcher.
Ranked play is optional. Seasons follow the calendar; ratings carry over with a soft reset.
Season 2026-Q4 has no ranked players yet.
Categories: Themes. Every mod version is reviewed by a moderator before it appears.
No mods published yet.