New Client

Started by Beastin_Shen, March 17, 2016, 11:23:59 PM

Previous topic - Next topic

Beastin_Shen

Hey all,

I can't play tetris friends. Not sure why you all play tetris friends.

I've always wanted to take some time to make a quality client, and I think now is the time for me to get an idea together. I'll have some free time this summer since I work for myself. I want to give some love to the community. Before I design, I'd like to know what you are looking for when playing tetris.

Some general ideas I'd like to implement,

Client and Browser crossplay - A lot of people may like TF because of accessibility, which is totally fair. I'd like to make it so people can play against each other on the venue of their choosing. Someone playing in a client can go up against someone in the browser. If you have any thoughts on this matter, please be vocal.

A GOOD LOOKING, EASY TO MANAGE UI - Nullpo, im looking at you. Keep the complexities of a client like nullpo available to those who need it, and to casual players an easy to use interface. For this, I will need some help from others to make it pretty.

High quality play - No dropped inputs, controls as customize-able as possible. Pretty things like line clears and what not can be disabled for the players who want to go vroom.

Automated tournaments - A ladder/tournament system that works so that it doesn't have to be done through a third party. Something along the lines of this as a format, so that you have a monthly tournament to qualify and look forward to.

What would get you to play a different client then the one you currently play? What draws you to your current tetris game of choice? Leave a comment stating what you would like to see! I'll be bothering everyone.
<div style="overflow: hidden; background-image: url(http://harddrop.com/design/pic/badges/bg_black.png);background-repeat: no-repeat; width: 285px; height: 80px;position:relative;"><span style="width:60px;height:80px;float:left;overflow: hidden;margin-top:10px;margin-left:10px;"><a href="http://hard

CH4F

I really wanna see that happen. Just some propositions:
- Open-source and easily moddable. So we can add more rules and modes ourselves.
- A site or a data-base that could have the community mods. So it will be easily found.
- Full controller support, please. Especially if the game let us map the menu buttons and the game buttons independently, just like Nullpo, who does it only for keyboards.
- A local play. Up to 4 players. Clients are too focused on online.
- If you wanna do online, I suggest you to look at GGPO, FightCade or any online with a rollback system. At least, for the 1-on-1 games.

Basically, I just want a better NullpoMino. Maybe with the time, your client will have as much content as Nullpo. Especially if we can have more multiplayer modes.
Running on browser seems cool, but does it mean that you'll need a constant internet connection to play it?
And you seems like you just wanna replace TF. Aren't you interested by creating a new style? With new rules, maybe?

Beastin_Shen

#2
Quote from: CH4F
I really wanna see that happen. Just some propositions:
- Open-source and easily moddable. So we can add more rules and modes ourselves.
- A site or a data-base that could have the community mods. So it will be easily found.
- Full controller support, please. Especially if the game let us map the menu buttons and the game buttons independently, just like Nullpo, who does it only for keyboards.
- A local play. Up to 4 players. Clients are too focused on online.
- If you wanna do online, I suggest you to look at GGPO, FightCade or any online with a rollback system. At least, for the 1-on-1 games.

Basically, I just want a better NullpoMino. Maybe with the time, your client will have as much content as Nullpo. Especially if we can have more multiplayer modes.
Running on browser seems cool, but does it mean that you'll need a constant internet connection to play it?
And you seems like you just wanna replace TF. Aren't you interested by creating a new style? With new rules, maybe?

Great suggestions!

Things like local play and gamepads will be easy to implement, so I will take note of it.

I will definitely have source code available for people to continue the project if I am not around.

For the browser play you would need internet connection. The client would have to suffice in that situation.

I want an extremely strong alternative to TF for browser multiplayer. Yes I am definitely interested in creating unique styles, and have thought of a few in the past concerning both single and multi player. Something I'd like to make is dynamic team play and a good format for it. Anything goes at this stage, really.
<div style="overflow: hidden; background-image: url(http://harddrop.com/design/pic/badges/bg_black.png);background-repeat: no-repeat; width: 285px; height: 80px;position:relative;"><span style="width:60px;height:80px;float:left;overflow: hidden;margin-top:10px;margin-left:10px;"><a href="http://hard

CH4F

Quote from: Beastin_ShenI will definitely have source code available for people to continue the project if I am not around.
That's not exactly what I meant by "opensource". If people finds bugs, better ways to code this part or add things, you could add that in an update.

Quote from: Beastin_ShenI want an extremely strong alternative to TF for browser multiplayer. Yes I am definitely interested in creating unique styles, and have thought of a few in the past concerning both single and multi player. Something I'd like to make is dynamic team play and a good format for it. Anything goes at this stage, really.
Glad to hear that. I also think the first step is to clone TF. But by "new style", I meant "new rules". Means new rotation system, new garbage system, new randomizer... Maybe more focused on reading your opponent than sending garbage. You should talk to Kitaru about it. He got some interesting ideas that could work well, I think.

But, for online play, you wanna build something solid or just a very good matchmaking? Open lobbies? Real-time watching (unlike TF)? Ranks (I don't like ranks, but why not)? If this client got different styles and rules, could we all play them online?

Okey_Dokey

I would love to see Swiss System automated tourneys. I would also like to see some classic multiplayer (e.g. no hold, 2 previews, C2-like randomizer) and the option to play a fixed time multiplayer so that players don't have to wait after they topped out in FFA rooms (like in Multris or TB, e.g. game has a fixed length of let's say 2 minutes and players' final positions are determined by sent lines + 10*KOs - 10*topouts). I'd also liked to see some slowed down versus mode, either by making it turn-based (a player has 5 seconds time to execute a move) or by limiting playspeed (either 150 BPM threshold or limited left/right/softdrop speed). Also please add enough protection against trolls (like in C2, players can make rooms and determine who plays in a room and who not; if a player doesn't drop a piece within 10 seconds all remaining garbage is inserted to prevent troll stalling). I'd also like to see hurry-up-garbage to have garbage holes (instead of literally decreasing playfield height).

For guideline multiplayer, please don't make the same mistakes as NullpoMino or jstris: They used the same garbage system as in Tetris Friends but didn't realize that it only worked in TF because of long line clear delay and long garbage blocking period. So that comboing isn't overpowered, one must make the garbage sent by Tetrises and T-Spins more messy (like in Puyo Puyo Tetris, e.g. use change per attack garbage but add a 20% chance for garbage column switching during an attack).

CH4F

Quote from: Okey_Dokeythe option to play a fixed time multiplayer so that players don't have to wait after they topped out in FFA rooms
I completely forgot that. Thanks to remind me. But the 2 minutes after an hold-up + ...
Quote from: Okey_DokeyI'd also like to see hurry-up-garbage to have garbage holes (instead of literally decreasing playfield height).
... isn't compatible. You have to down the time if you wanna hurry ups being regular garbage. 90s seems fair.

An "arcade-style" lobby could be great. You have different queues, you wait until it's your turn to play, FT3/BO5. The loser gets out, the winner stays on the "cabinet".

Quote from: Okey_DokeyI'd also liked to see some slowed down versus mode, either by making it turn-based (a player has 5 seconds time to execute a move) or by limiting playspeed (either 150 BPM threshold or limited left/right/softdrop speed).
Sounds like a really cool idea. Just like you play Chess instead of Tetris. Also, limiting the speed could add more strategies. I really wanna see how that'll work out.

Beastin_Shen

#6
Quote from: Okey_Dokey
I would also like to see some classic multiplayer (e.g. no hold, 2 previews, C2-like randomizer) and the option to play a fixed time multiplayer so that players don't have to wait after they topped out in FFA rooms (like in Multris or TB, e.g. game has a fixed length of let's say 2 minutes and players' final positions are determined by sent lines + 10*KOs - 10*topouts). I'd also liked to see some slowed down versus mode, either by making it turn-based (a player has 5 seconds time to execute a move) or by limiting playspeed (either 150 BPM threshold or limited left/right/softdrop speed). Also please add enough protection against trolls (like in C2, players can make rooms and determine who plays in a room and who not; if a player doesn't drop a piece within 10 seconds all remaining garbage is inserted to prevent troll stalling). I'd also like to see hurry-up-garbage to have garbage holes (instead of literally decreasing playfield height).

For guideline multiplayer, please don't make the same mistakes as NullpoMino or jstris: They used the same garbage system as in Tetris Friends but didn't realize that it only worked in TF because of long line clear delay and long garbage blocking period. So that comboing isn't overpowered, one must make the garbage sent by Tetrises and T-Spins more messy (like in Puyo Puyo Tetris, e.g. use change per attack garbage but add a 20% chance for garbage column switching during an attack).

I agree with classic play, I'd like to have a lot of ways to play to stay fresh.

As someone that also dislikes the wait, I've had a few ideas such as a minigame I thought of (snaketris), and to play others that have fallen. More thoughts here would be great.

For turn based play check out King of stackers and let me know what you think.

As a troll, my troll defense will be on point.

Quote from: CH4F
But, for online play, you wanna build something solid or just a very good matchmaking? Open lobbies? Real-time watching (unlike TF)? Ranks (I don't like ranks, but why not)? If this client got different styles and rules, could we all play them online?
Depends on the playerbase size, and it can always be adjusted to accommodate. Ultimately I would prefer matchmaking, but I don't see that being ideal. I'm personally a fan of how Cultris 2 has their rankings set up via the FFA lobby. 1v1 and teams would probably have to be set up differently, perhaps with a TOJ-esque mmr or open lobby to challenge. With challenges, possibly a limit via time or play a few other people so that they can't simply farm mmr. Also with an automated tournament system in place, tournament matches could perhaps have greater effect on your mmr and other rewards to motivate play in the dailies/monthlies. There is a lot of options for matchmaking, so more thoughts on the subject would be great.

Thanks for the thoughts guys, keep it rolling!
<div style="overflow: hidden; background-image: url(http://harddrop.com/design/pic/badges/bg_black.png);background-repeat: no-repeat; width: 285px; height: 80px;position:relative;"><span style="width:60px;height:80px;float:left;overflow: hidden;margin-top:10px;margin-left:10px;"><a href="http://hard

Okey_Dokey

Quote from: Beastin_ShenFor turn based play check out King of stackers and let me know what you think.
For turnbased Tetris, having many previews is a good idea and modern-style Tetris is probably better suited than classic. I wouldn't go for all-spin though. I meant playing live against an opponent. So making only one piece placement (and not 7) before it's the opponent's turn is probably the better idea.

I had something like that in mind: Both players have a timebank (like in AI blockbattle). They start with 10 seconds. For each placement, 5 seconds are added to the timebank but timebank can never hold more than 30 seconds. Both players make placements simultaneously and at any given time both players have made the same number of moves. When a player has finished the move, but the opponent hasn't yet, the clock stops ticking down and the player has to wait/idle until the opponent has finished, too. Not sure if the players should be able to see each others active piece (that would probably disadvantage the player who finalizes the move first).

TPM2209

You may be interested in a project I'm currently working on: http://github.com/joezeng/functomino

It's a Tetris engine that I started as an exercise in functional programming and immutable data types, and I plan on making it a HTML5/Javascript version of Nullpomino that's open-source and maintained by the community.

As for custom modes, one of the modes I want to implement is called "Rhythm Mania" (in the Nullpomino mode-naming scheme), in which you drop Tetris blocks onto the grid following the beat of the background music. Dropping them on-beat earns you more points than dropping off-beat, and missing beats causes garbage lines to appear at the bottom.

Beastin_Shen

Quote from: TPM2209
You may be interested in a project I'm currently working on: http://github.com/joezeng/functomino

It's a Tetris engine that I started as an exercise in functional programming and immutable data types, and I plan on making it a HTML5/Javascript version of Nullpomino that's open-source and maintained by the community.

As for custom modes, one of the modes I want to implement is called "Rhythm Mania" (in the Nullpomino mode-naming scheme), in which you drop Tetris blocks onto the grid following the beat of the background music. Dropping them on-beat earns you more points than dropping off-beat, and missing beats causes garbage lines to appear at the bottom.

ill take a look at what you started.

I like the idea for rhythm mania a lot! Could also be score based rather than garbage, or a mix.
<div style="overflow: hidden; background-image: url(http://harddrop.com/design/pic/badges/bg_black.png);background-repeat: no-repeat; width: 285px; height: 80px;position:relative;"><span style="width:60px;height:80px;float:left;overflow: hidden;margin-top:10px;margin-left:10px;"><a href="http://hard

Beastin_Shen

Hey all,

Have started designing and basic programming for the project. Feel free to share any ideas or what you'd like to see in a multiplayer tetris client. In July I am dedicating the entire month to programming projects so there is still time to implement core ideas for the game!
<div style="overflow: hidden; background-image: url(http://harddrop.com/design/pic/badges/bg_black.png);background-repeat: no-repeat; width: 285px; height: 80px;position:relative;"><span style="width:60px;height:80px;float:left;overflow: hidden;margin-top:10px;margin-left:10px;"><a href="http://hard

XaeL

Quote from: TPM2209
You may be interested in a project I'm currently working on: http://github.com/joezeng/functomino

It's a Tetris engine that I started as an exercise in functional programming and immutable data types, and I plan on making it a HTML5/Javascript version of Nullpomino that's open-source and maintained by the community.

As for custom modes, one of the modes I want to implement is called "Rhythm Mania" (in the Nullpomino mode-naming scheme), in which you drop Tetris blocks onto the grid following the beat of the background music. Dropping them on-beat earns you more points than dropping off-beat, and missing beats causes garbage lines to appear at the bottom.
This sort of already exists - there is a Rhythm mania but it forces a drop on the beat.



QuoteLike many setups here, it is useful if your opponent doesn't move and you get 4 Ts in a row.

jackh1771

With the active threads I thought I'd bump this and ask how the project is going?

Okey Dokey proposed some ideas for a new multiplayer tetris in the tournaments thread.

DarkWolfLP2014

I guess I'll pour in my 2 cents. Don't really want to see a browser based Tetris game like TF. Would like to see something similar to Nullpomino and TOJ. Except it has better 16:9 resolution support and higher desktop resolutions in both windowed & fullscreen, easy to capture in programs like Fraps and Bandicam. Also easy to livestream through OBS & XSplit. Fully moddable of course where the user can change SFX to their will or BGM (some Tetris apps I toyed with don't allow neither). Everything everyone mentioned above seems cool with me though. That is just what I'd like in general.

Beastin_Shen

from okeys thoughts on another thread
[!--quoteo--][div class=\\\'quotetop\\\']QUOTE[/div][div class=\\\'quotemain\\\'][!--quotec--]
1. NullpoMino is dead online. I don't think it can be revived in any way. If you make a mod just to improve online play, there's always a chance that nobody plays it and you've just wasted your time. Java has no future for multiplayer.

2. NullpoMino can't really be slowed down. For example, NullpoMino League Edition tried to limit the softdrop speed. Players got around that by just editing a config file. A rule lock could theoretically limit the allround speed, but people people could still bypass that by editing the source code (a drawback of a nullpo being open source).

3. NullpoMino has pretty much only these 2 garbage options: a) change per attack garbage or b) garbage where there's a constant chance that the garbage hole switches after each row (changerate). I think Tetrises & T-Spins are too weak for change per attack garbage (unless there's line clear delay but I am strongly against that) and T-Spins are too strong for changerate garbage (unless you limit softdrop speed, but see point 2). In my opinion the ideal garbage system for a guideline game would be some kind of change per attack system where there's also a small chance that the garbage hole switches during an attack (about 20% after each row during the attack). But implementing such a system would make the new client incompatible to standard NullpoMino.

4. NullpoMino 7.5 has reached that much visibility (google rank) that only a very small playerbase will discover any other NullpoMino version.

The only way, I see how to improve Nullpomino online play without sacrifying too much time is by making new default multiplayer rulesets (the only default rules are TOJ, blockbox, allspin). This wouldn't break compatibility, but wouldn't nullify the basic problems I see. So even that I would consider as a waste of time.

Disclaimer: I never bothered to look into the Nullpomino source code or play NullpoMino online, so some statements above may be wrong.
[/quote]

The default settings will be slow for a casual player, easily changed.
Rulesets, or something of the like, will be implemented.

Quote from: DarkWolfLP2014
I guess I'll pour in my 2 cents. Don't really want to see a browser based Tetris game like TF. Would like to see something similar to Nullpomino and TOJ. Except it has better 16:9 resolution support and higher desktop resolutions in both windowed & fullscreen, easy to capture in programs like Fraps and Bandicam. Also easy to livestream through OBS & XSplit. Fully moddable of course where the user can change SFX to their will or BGM (some Tetris apps I toyed with don't allow neither). Everything everyone mentioned above seems cool with me though. That is just what I'd like in general.

Well the way its being setup is to be a client and web game simultaneously. Resolution options will be friendly towards your camera programs.

I am making some progress, its not my primary project (money speaks to my soul) so your patience is appreciated! When i feel it is polished enough I will have a test client for people to play. Any additional thoughts or ideas will not go unnoticed.
<div style="overflow: hidden; background-image: url(http://harddrop.com/design/pic/badges/bg_black.png);background-repeat: no-repeat; width: 285px; height: 80px;position:relative;"><span style="width:60px;height:80px;float:left;overflow: hidden;margin-top:10px;margin-left:10px;"><a href="http://hard