JSTris

Started by jezevec10, December 06, 2014, 03:21:55 PM

Previous topic - Next topic

jezevec10

#105
Updated:
  • Survival game mode
    • The goal of this practice mode is to survive as long as possible by clearing the garbage appearing at a constant rate (1 garbage / second).
    • To save server disk space, replays are stored only for your personal records.
  • Improved replay analytics
    • Speed chart shows the current position as the replay is being played
    • You can click anywhere on the speed chart to rewind the replay to that moment
    • By placing the cursor on individual segments in Fastest/Slowest, these segments are highlighted in the speed chart
    • Global average has been added
    • Finesse errors can be visualised
    • You can toggle these layers on the chart to make it more readable
  • All game settings are saved into your user account
    • Make sure to open and save the settings after the update to send your current settings to the server.
    • This method also saves options in the settings that are normally not saved (like playfield grid (reported as a bug by BestN00b few posts above))
  • New garbage blocking mode - Instant
    • Garbage is added in the same way as in the Survival mode - asynchronously with no red bar and no chance of blocking.
  • HDO9 winner in-game title & icon assinged. Congratulations ajanba!

Donorgyll

After the update I'm having a bug where every time I reload my Sound Effects get reset from Yotipo SE to NullpoMino SE.

jezevec10

Quote from: VladtheImpala
I think the bot seriously glitches out when it plays hurryup garbage. At least what the bot displays becomes really strange.
This happens only to MisaMino and Fool bot, which weren't originally created for the AIgames bot communication protocol, but later modified to work with it. Real_block and jez_block won't have this issue.
Because MisaMino and Fool don't interpret the solid garbage blocks correctly, they just clear it internally as it were normal blocks.

Right now it is not my priority to fix this because I have limited time, but anyone can help by implementing block id 2 as solid garbage for these modified bots at https://github.com/jezevec10/MisaMinoBot

Quote from: Donorgyll
After the update I'm having a bug where every time I reload my Sound Effects get reset from Yotipo SE to NullpoMino SE.
True, I forgot about this option and it wasn't being saved   . Now it will work, thanks

VladtheImpala

Will sprint replays not be removed? I think that's what your update says, but I want to make sure.

jezevec10

#109
Updated:
  • Team mode
    • Added the Team room as a new default room, you can also create your own team rooms
    • All players can choose their teams when the round is over, it is posible to start with unfair teams
    • Currently these garbage distributions are available: toLeast,toAll,divide - therefore it is not possible to target individual players in teams
    • Game results show stats for teams and their players as well
    • In custom team rooms, you can customize your team name (use the /set command)
  • Room settings presets
    • With increasing amount of options in the standard room create form, this option allows to quickly create a room with pre defined settings
    • Presets are created by players - click Save in the room settings form, then you can submit it with name and description
    • Other players can then load it either from the selection, or by entering the preset name
  • In-game lobby chat
    • You can switch between room/lobby chat using the button next to the chat area
    • Notification will appear if a message arrives to the chat that is not active at the moment
    • No affect on game performance - the server doesn't send the lobby messages to you unless you have it switched on, only a notification is received and only once. If you then switch to lobby chat, the message history is downloaded from the server.
    • If you are in Jstris Discord server, you can also access this chat from there
  • Records from all game modes available in user profiles
  • After a practice mode ends, the chat pastes a link to a list of your games where the last game is highlighted like this
  • Improvement in speedchart cursor - explained here
  • Survival mode added to improvement chart
Afterword:
In the last 3 months I was able to do 8 new versions - 1.23 to 1.30 now. The update frequency will now decrease as I'll have less free time. If you liked any of the changes made this year, you can make a donation so we can fund the server expenses, the info is here. Thanks to everyone who has already helped.
Finally, here are the results of the feature idea popularity survey (total 66 submissions)
Sum of all votes
Count of extreme votes
5 out of these 8 ideas are now implemented (to some extent).

Quote from: VladtheImpalaWill sprint replays not be removed? I think that's what your update says, but I want to make sure.
Replays from practice modes played on registered account won't be removed. As soon as the sprint replay count starts approaching the server limits, replays of guest accounts will start being removed, which will add a lot of time to find a solution how to preserve all replays. Removal of any replay can be avoided by adding it into favourites.

Danieru

Just an Irish tetris player.

XaeL

Jez would it be possible to do a bigger Lines remaining gui in 40L? I struggle to know when to stop upstacking in 40L.

Maybe here...

[!--ImageUrlBegin--][a href=\\\"https://i.imgur.com/TLPyx4O.png\\\" target=\\\"_new\\\"][!--ImageUrlEBegin--][img width=\\\"500\\\" class=\\\"attach\\\" src=\\\"https://i.imgur.com/TLPyx4O.png\\\" border=\\\'0\\\' alt=\\\"IPB Image\\\" /][!--ImageUrlEnd--][/a][!--ImageUrlEEnd--]





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

Aluce

I struggle with the same thing sometimes. Although, having the font change colour (to yellow at 20 lines and to red at 10 lines, or something like that) would work miracles as well.

In any case, I am in love! This is the best thing since Nullpo and sliced bread!
40L: 33.92 | [/font]

Okey_Dokey

Quote from: jezevec10Updated:
    ...[/li]
  • Room settings presets
    • With increasing amount of options in the standard room create form, this option allows to quickly create a room with pre defined settings
    • Presets are created by players - click Save in the room settings form, then you can submit it with name and description
    • Other players can then load it either from the selection, or by entering the preset name
    • In-game lobby chat

        ...
    Thanks! Can you also make garbage messiness available in room presets / creation (garbageDelay would be another candidate although I doubt anyone will use a value different from 500 ms). For all kind of rules I wanted to create, I would use a garbage messiness bigger than 0. It would be also nice, if a user could delete one's own rules.

    Very minor bug: If you go to create room, select a preset other than Default, then cancel (or play for a while) and go to room creation once again, then the game shows you the description of the last used preset, although Default is selected.

    jezevec10

    #114
    Quote from: Okey_Dokey
    Thanks! Can you also make garbage messiness available in room presets / creation (garbageDelay would be another candidate although I doubt anyone will use a value different from 500 ms). For all kind of rules I wanted to create, I would use a garbage messiness bigger than 0. It would be also nice, if a user could delete one's own rules.

    Very minor bug: If you go to create room, select a preset other than Default, then cancel (or play for a while) and go to room creation once again, then the game shows you the description of the last used preset, although Default is selected.
    I've added messiness and garbageDelay to advanced settings so it saves to the presets. I've made some optional properties available that won't save when using the Save button in the room settings, but they can still be used by manually editing the JSON data of the preset:

    numPlayers - integer, defines max. room capacity (for tournament presets it's probably best to enforce 2)
    gameMode - integer, 0=standard,1=cheese,2=team
    isPrivate - boolean, should the rooms made under this preset be private or public
    roomName - string, if this is set, it replaces the room name that user filled, so probably not good

    caffeine

    #115
    Thanks for all the work. I know you said you're slowing down development for now, so I don't expect you to get to this anytime soon if at all. I normally play with sound off. When I load a replay, it has sound, it can be loud and jarring. I was wondering if it might be possible to mirror a user's settings for the replay he/she is watching.

    Okey_Dokey

    I noticed that a combo bonus is still applied for Perfect Clears. I don't know how Tetris Friends handles this but I find it weird that in Jstris a Tetris-PC sends 2 less lines than a Single-Double-Single-PC (Double sends 1 line, 2-combo sends 1 line).

    Here comes my last real suggestion: more singleplayer modes.

    The leaderboard and replay function make Jstris a good place for singleplayer, too. I had played some classic-styled Ultra on Multris majorly because it showed a weekly and monthly leaderboard.

    First currently missing kind of mode is Ultra. I mustn't say much about it. 2 minutes should be enough. Maybe a second Ultra challenge with steady garbage insertion (e.g. a garbage line every 5 seconds or every 10 pieces) or a score race mode (game finishes after you reach e.g. 100,000 points; if MicroBlizz + Jstris really gets accepted for AGDQ, then another speedrunnable mode could be good).

    Second currently missing kind of mode is Marathon. Marathon-like modes were the most popular modes throughout the history of Tetris but SRS made them not worth playing. Things I dislike about modern Marathon:
    • move-reset lock delay: It's unchallenging unless gravity becomes 20g (pieces always touch the ground when they spawn) and lock delay is decreased to a small value in which case the pieces often lock even before you can move or rotate them (e.g. start at level 25 in the game at tetris.com or play Final mode in NullpoMino). So, I think the lock delay should be longer when the piece spawns compared to when it is moved.
    • SRS upwards kicks: Upwards kicks can undermine the purpose of 20g, as you might get a piece over a hill although the piece already touches the ground. The really bad thing about SRS upwards kicks are that they often move a piece sidewards which leads to misdrops. In multiplayer you'll never use those upward kicks, so you're often surprised to which column a piece rotates to. For example, once an S or Z piece touches the ground, clockwise rotation will behave like counterclockwise rotation and vice versa. A remedy could be to deactivate upward kicks or limit the number of upwards kicks per piece: If the first found feasible kick is an upward kick and too many upward kicks are already made, then the piece isn't rotated at all.
    • T-spins & hold: You often manage to prepare a T-Spin but fail the execution. T-Spins require hold. With hold you can stall a little. I mentioned this point just for the sake of completeness. I don't suggest to get rid of T-Spins and Hold (as your other singleplayer modes are also based around guideline Tetris).
    As said in point 1, I think lock delay needs another implementation for Marathon, giving more time when a piece spawns. Here's the system I would prefer:
    • Each piece starts with a timebank which is roughly twice as big as the usual lockdelay value.
    • If a piece touches the ground and tries to make another gravity step (without lockdelay), the game begins to subtract time from the timebank until the piece is moved or rotated to a place where it doesn't touch the ground.
    • Certain actions (e.g. moves and rotations for move-reset) increase the timebank to the usual lockdelay value (no effect if timebank was bigger than lockdelay value).
    • A piece locks once the timebank reaches 0.
    Depending on which actions increase the timebank in step 3, we differ between:
    • move-reset: The timebank is increased everytime a piece is moved or rotated
    • step-reset: The timebank is increased when a piece falls down a step (usually happens when a piece doesn't touch the ground after movement or rotation)
    • entry-reset: No action increases the time-bank. The timebank is only reset when a new piece spawns (and no hold was used)
    Here's how I would implement a Marathon depending on which reset system is used:

    move-reset: Forget about the timebank thing I talked about. Just make it easy beatable (game stops once level ~15 is cleared so that you avoid the awkwardness of SRS) and use a goal system like in Tetris Friends (a Tetris subtracts 8 from goal, a Triple 5, a Double 3, a Single 1). The only really important change is how leaderboards work: Games are sorted firstly by highest level reached (that's maxlevel+1 if maxlevel is beaten), and secondly by the time passed when the highest level was reached. So the goal is to beat this Marathon as fast as possible and not with a score as high as possible. I would suggest that the last but one level is the first level with 20g and that lock delay is decreased in the last level. I also suggest to use a 50% longer lock delay when a piece spawns.

    step-reset: I suggest that this Marathon already starts in 20g which simplifies the time-bank system: Time is subtracted from the timebank in every instant/moment in which the piece is active. Levels don't change the gravity, instead they change how much time there is originally in the timebank and to which value timebank is increased, once a piece is moved or rotated to a slope (that means when a piece doesn't touch the ground after movement or rotation, in which case the timebank is increased and the piece is pulled down to the ground again). Also, it's importantly that the game doesn't use Instant DAS (this means infinite autoshift rate, otherwise the piece could overcome wells or the piece would instantly teleport to a well or to the wall). Secondly, upward kicks must be deactivated. You also need to check "alternative rotations" like explained in the thread Mania modes with SRS-like rotation or pieces usually won't rotate (without upward kicks).

    entry-reset: I suggest a system similar to classic Tetris: Level increases every 10 cleared lines (or 20 to 40 cleared lines in later levels), leaderboard is sorted by score. Pieces never fall faster than ~12 miliseconds per row. The initial time bank is about 5 times bigger than the time per gravity step. Upward kicks should be deactivated. "Alternative rotations" are not needed, as you will have enough time to rotate pieces before they hit the ground. Also works for Instant DAS. I had implemented such a system in my NullpoMino League Mod. The entry-reset is there to give more time for spins and to allow to survive a little higher in the matrix. To survive even higher in the matrix, one could make the piece stay at spawn for a short time (like in SNES Tetris: wait some miliseconds before the piece begins to fall) whereas this time could be also made a bit longer if the last piece locked higher in the matrix (like in NES Tetris).

    eevor

    Small feature/UI request - could we maybe have a choice of the position of the remaining line count in Sprint? I can't get used to this right- position, and believe the under- like in Nullpo is much more visible during sprinting.

    SmartS101

    I just want to start by thanking you for all the work you've done. But for the past week I've been experiencing an error where after ~30s any piece I drop that would send lines (double, triple, tetris, t-spin, or combo) it will clear the lines on my screen, but not move on to the next piece or count the lines as cleared in sprint or as lines sent in survival/live. Usually 5-10s later the "you lost connection" error pops up and it won't save replays so I can't show you what I mean. It happens across both my personal laptop and my work computer. I've tested it on Chrome that has an adblocker installed but disabled and on FireFox where I don't bother with add-ons/extensions on both computers. It happens in both regular and private/incognito modes. I was mostly wondering if this is a known issue, or if it's just something funky with my security/firewall settings.

    L2R

    Can you change the fast restart button in jstris? cant see the option.