Thread in 'Discussion' started by aioobe, 19 Dec 2009.
Yeah hold, more previews or both would make modes a lot more fun
Some Tnet2 features that would improve usability:
- Ctrl+R or typing /ready toggles your 'ready' status (green light indicator). Each player's status is reset to not ready after every game (red light indicator).
- Adjustable countdown timer in game settings (default to maybe 15 seconds). This gives enough time for some chat.
- When at least half the players are ready (excluding 2 player games), the countdown begins.
- Room creator can start the game immediately with Ctrl+S or /start
- Ability to change teams with /team <team name>.
- Additional tab at the bottom right to display messages such as Player X has sent # lines or used special on Player Y
- Option for 0G (useful for downstack modes)
About clear-holes mode:
Yes. Several good points. I'll change to the TGM2 randomizer to start with. Let's also try with twice as much garbage (~35 lines of garbage).
Well. It's not a bug, but it's a really stupid feature. A hole is defined as a cell with no open path to the ceiling.
How about taking a new point of view and say "clear all stones", and let all initial lines be made of a different "stone" type. This would enable more fun modes where stones are layed out differently as well. I've for instance played around with a checkerboard pattern of stones which is really challenging.
Let's allow 3 previews.
Good idea. I haven't taken the "command line" approach to stuff yet, but I'm starting to see the need for it. Added to the todo.
You think there is a need for this if it's really easy to toggle between ready / not ready? When everybody is ready to start, 15 seconds is a long wait.
I'm a bit reluctant to this approach. What if someone wants to write a message, take a bite, or whatever in between games with 4 players? Does any other game with a ready-mechanism work this way?
There is currently no notion of a room operator. I know that this is a fairly standard feature to have, and good in case a kick-command is needed. So far I've just tried to keep it really simple.
Sounds really good to have.
Sure. That would be nice to have (added to the todo). Part of this information is already available though. Above each opponents playfield you see how much garbage and what items he has sent to you.
Sure. This is a good idea and easy to implement. Added to the todo.
This sounds good. There could be lots of different maps instead of random holes such as a secret form garbage map, an X or whatever else.
That's great. It's very useful for private messaging too. In tnet2, you could message someone with /p user message and /r message replies to the last person that last messaged you.
Oops, I left out some important details because my memory isn't that great. How it worked on tnet2 was like this:
The game would start with about a 3(?) second countdown as soon as everyone was ready. The countdown when at least half the players were ready started at around 10 seconds and the people who did not 'green' after the countdown was over were moved to spectate the match. Players were then able to return to the game with Ctrl+M or /move (moves from playing/spectating to spectating/playing).
Simple is good.
The new 35 lines mode is fun. My only problem with it is that wallkicks are still disabled. Just about every game these days includes wallkicks and most players will misdrop without it.
Tetris demonstration diagram
Hint: with the right rotation system you won't have that problem
Not really. It's just that with wallkicks disabled, the 'kick to the right or left' in ARS still works, but for SRS, none of the kicks are tested.
Let's not turn this into another argument of SRS vs ARS because it's clear which one is better in multiplayer oriented games *wink wink*
It was just a mild joke about the example you gave, where ARS requires no rotation at all.
Yes, I need wallkicks
I've only complete 1 game of the new "Clear Holes in Time" due to this, I misdrop a lot without wallkicks
Ok. My intention was to enable wall-kicks. Must have forgotten this.
I've enabled it in all single-player modes except the ones in which you should get a high score (since they are ment to emulate more old-school tetrises).
meow: The example you gave should now work as you want. Let me know if it doesn't.
New clear all holes looks very interesting. You should change it to remove all garbage as suggested before. New shadow is quite nice.
You need to fix input issues. I have same issues on Ubuntu and Windows 7, so i think this is not OS related as you suggested (i think all were mentioned already, but to summarize):
- left/right input stuck at random, you need to press it to unblock it
- rotation has undesired autoreapeat
- soft drop has undesired repeat delay
- holding softdrop cause lock delay cancel
- Blink and Maserati say that there is impossible to move and rotate at same time or something
- lockdelay is too short
You suggested some problems are because of Java limitations. If it's true then you need to use some game input api to bypass those limitation.
I also have request: save and restore window size.
Thanks for the report.
I reviewed the code once again, and I *might* have found (and fixed) another bug. Hard to tell though, since I have no way of reproducing the bug.
There is a known issue of some combinations of OSes and JVM versions. I have summarized this issue here:
Basically it is because some JVMs on some systems report key repeats as "key pressed, key released, key pressed, key released, ...." and not as "key pressed, key typed, key typed, key typed, key released" as they should (which essentially renders it impossible to implement custom key-repeats).
(This has nothing to do with key-repeats getting "stuck" though.)
Does the problem persist if you turn off your system key repeat?
What do you mean? Shouldn't soft drops have a repeat delay?
Do you mean that if you "soft-drop-repeat" all the way to the floor, the key repeat should stop before the tetrimino locks down? (I vaguely recall that this was the case in TDS (but not in GB Tetris, for instance, right?)). Please clarify if I've misunderstood.
Done some updates that might affect this behavior. Let me know if it persists from now.
Okey. I'll revise this.
Yes. This is one resort. I have deliberately avoided this as far as possible, to allow for the client to run sandboxed. This has many advantages, but it's obviously not worth it if it limits the game in some way.
Good idea. Added to the todo.
In all games I know softdrop key's time to first repeat is same as to all next repeats. Only for shift keys time to first repeat is longer than time to next repeats.
Yes, all old games behave same way as multrinet, but all newer games (I think TGM series is only exception) don't lock piece if you hold softdrop to move it all way down. If you want to cancel lock delay in this case, you have to release key and press it again. I never played TDS, but you can check TOJ for reference.
In TGM3, only Ti-ARS would be the exception to that seeing as it has a non-locking fast drop and would not need/should not have a second non-locking drop. Ti-World has a locking fast drop and a non-locking slow drop like most guideline games.
TDS and TNC have this behavior if I recall correctly. Some, however, -- TGM3 and I think TF as well -- do not.
So how do I compute a reasonable value? It seems to be dependent on the current gravity?
Interesting. I've never noticed this. MultriNet now has this behavior.
Okay, MultriNet now has this behavior. Should I have an option for this? Does anyone want the other behavior (locking right away on soft-drop-repeat).
So, you're locking on the next iteration of gravity like GameBoy and NES Tetris? Add a counter that counts up to a specified value before locking a piece. Half a second of lock delay is a pretty standard number.
The counter should count up when in contact with the ground -- i.e. another iteration of gravity would cause overlap with the stack or with the playfield boundaries. It should not continue to count up if the player moves to a position where the piece can fall again, obviously. It should return to zero when a new piece spawns or when a piece falls a row. Resetting only when the piece falls a row is called "step reset" lock delay. People may want to see "move reset" lock delay as well, where the lock delay counter is zeroed on successful shift or rotation operations.
What kind of drops do you have at the moment? Is there a non-locking fast drop (firm/sonic drop) as well? Some players might want to use firm + locking soft, but most will be using hard + non-locking soft or firm + hard as their two drops.
Thank you Kitaru for your summary. I obviously hadn't read up enough on this when I implemented lock delay...
Yes, unless one checks "Infinite Spin". Then I have a hard-coded 1000 ms lock delay with move-reset.
What would be the optimal solution? A "lock delay reset"-option with three alternatives:
1) step reset: resets when the tetrimino falls down
2) move reset: resets when when the tetrimino shifts / rotates.
3) no extra lock delay: works as good old GB tetris.
I'll read up on soft, firm, hard, and locking soft drops to get a better understanding of this.
seems left/right stuck bug is fixed now.
First off, thanks for this wonderful game
No he means a 180 rotate
It is the equivalent of using one of the available rotate buttons twice.
So from the initial rotation, you would only require one button to change to any other rotation.
An extra rotation button would allow you to go to the 3rd rotation state faster (3rd column).
One other thing I noticed is that the autorepeat keeps going even after a key is released,
this happens when I DAS to wall at fast speeds.
It should do this (im using the 100+ AR):
Tetris demonstration diagram
But instead it keeps doing this:
Tetris demonstration diagram
It also happens sometimes when a new piece spawns, it shoots to one side.
No, he did in fact mean a second CCW button. A 180 rotation button sounds good as well, however.
As for the second problem, I bet I know the cause. DAS charge needs to drop to zero on direction changes. This probably is not happening in the current code.
Separate names with a comma.