Back
v0.2.0.13 Changelog (from v0.2.0.12) - Profiles & Right-Click Actions
Released November 17, 2024
- Special thanks to SpritzySecretary & FCSplayz for going the extra mile to search for bugs
- Mode Rulesets
- Added the pieceSpawnRules and playerRespawnRules
- Added ruleset descriptions
- Added the :intTime, :floorTime, and :ceilTime formats to ignore milliseconds, while :time now always includes milliseconds
- Added a lot more null checks
- Fixed not being able to assign null to scope and hardcoded variables
- Added boardStack2D as a hardcoded variable; operates the same as boardStack except it returns a nested list representing rows instead of a 1D list
- Various fixes and added checks
- Evolution
- Fixed the mission viewer not updating immediately after performing a run
- Personal bests and cached leaderboard records that are above Gr.73 because of v0.2.0.11 will now be reset
- Fixed not giving bonus spirit points for clearing mission 12
- Fixed not properly handling quitting early, as well as its various side effects:
- Not giving bonus spirit points for the current mission
- Not giving qualification progress when it was going to
- Sending a leaderboard entry as a lower grade than what the replay preview data says; resending these entries will send the correct grade
- Making my validation misunderstand what happened sometimes
- The Master objective clear of 4S-3 is also granted if you quit during the 3 seconds after 4S-2's Ultra Hard clear
- Added mission 12 clear times / last grade times in the leaderboard
- Any game clients pre-v0.2.0.13 will not be able to display the leaderboard properly
- Mission starts are now fired off after exactly 3 seconds, no longer including the frame's delta time
- Various submenus have been given right-click context actions, activated via right-clicking or the Menu key
- To support the use of right-clicking for context actions in menus, right-click no longer goes to the previous submenu; a Back button at the top left corner has been added (the Back mouse button still works)
- Added profiles; they display 3 records and 8 accolades of your preference
- You can also search by username or user ID for other player's profiles
- Added the ability to see your personal best history from any leaderboard
- Added the ability to report players
- You can now view some of your stats; a lot of the stats were previously tracked, but a few more have started being tracked as well
- I'm open to suggestions for new stats to put in this screen (just don't make me add literally every little detail)
- Title screen now has the ability to play demo replays
- Added an option to control what gets played: the bundled demo replays, any downloaded replays, both, or none at all; default is both
- You can manually start the next demo by pressing D
- Added a watermark on the sides of the board which indicates the game version and if from a replay; also helps establish board borders when the stack is empty
- Added Rotation Hints which indicate where rotations will land
- Implemented session tokens and a way to logout with one click
- Added the ability to resubmit any replay if you can verify you're the one who made it
- Rewarded contribution in Versus mode through playing without attacking (rulesets with attack interactions are still rewarded better)
- Prevented the Versus Many submenu messing with the goalPoints if its range or default value was overridden from 1-255 and 3
- "Expensive" AI behavior is currently being dumb, so AI Next Queue limits are lowered until I figure out what's causing problems
- Made various attempts to stop the AI from stalling with infinite spinning
- Added a new message for users attempting to replace cloud saves with older saves
- Changed the usage of F12 to F8
- Added a graphics benchmark to the Test mode in the Controls settings menu when F8+3 is active
- Added F8+Shift+M and F8+Shift+P to switch backward in the mode debugger panel
- Added the ability to change sound levels at the username prompt submenu when you start a new save file; it'll be needed for v0.3
- Added the ability to copy an exception message and its stack trace with Ctrl+C
- Added the ability to cancel connecting to a multiplayer server
- Fixed some issues with the mode debugger (F8+5)
- Game no longer throws away beaten unsubmitted records in the leaderboard submission cache
- Game no longer removes empty lines that were not part of the line clears
- Fixed placed minos not having the stack outline if they were in a row with garbage minos
- Fixed a bug where no line clear groups larger than the width of the board could be performed
- Renamed input cooldowns to debouncing time
- Lowered the limit of Control Rules to 31 to lower chances of griefing in Multiplayer, might raise later
- Changed the core serializer being used for Debug Info
- Rate limited base spirit points, bonus spirit points, and mino chips
- Made the MenuAsterisk sound operate through only one voice
- Fixed various menu problems concerning a lack of rulesets to choose from
- Fixed the negative ordinal kills limit in sound instruction sets being ignored
- Fixed line clear hints appearing for lines that are not about to be filled when the piece clipped into the stack
- Fixed Tab crashing the game in submenus with no options
- Fixed the garbage meter appearing when the garbage limit is 0
- Fixed problems with the menu when a message appeared while a text input box was activated
- Fixed a problem where you could not download replays if you had no Replays folder
- Fixed the report system including the replay in JSON form despite saying No to including it
- Fixed not being able to properly cancel the game update on failure (must update to v0.2.0.13 for the fix)
- Fixed the game prompting to quit after opening the website from a game update failure (must update to v0.2.0.13 for the fix)
- You can now scroll when previewing an error report
- Fixed the nickname field not updating after using the Register or Update submenus
- Fixed the Home+Enter shortcut breaking the menu while a widget was selected
- Prevented a softlock when Photon Realtime encounters an internal error on connection
- Reaper piece result text now shows up next to the scoring/power/attack totals
- Various other fixes
- Eliminated some allocations in the core gameplay loop
- CURRENTLY KNOWN ISSUE: Some of the text looks brighter than usual; this is because Unity changed the gamma settings on me
- CURRENTLY KNOWN ISSUE: Changing preferred spawn and line clear delays does not apply to the next piece in certain modes
v0.2.0.12 Changelog (from v0.2.0.11) - When the Evolution
Released March 7, 2024
- Fixed Evolution mode going to the wrong objective on mission 3 if a Hard or Very Hard objective was cleared in mission 1
v0.2.0.11 Changelog (from v0.2.0.10) - Cloud Save Conflict Fixes
Released February 29, 2024
- Added an Open Folder option to the Replays submenu
- Allowed account users to access their message inboxes
- Made the game quit all ongoing modes and multiplayer if a cloud save is loaded
- Made the game check if new save data can be loaded before it is written to file
- Divination stage now first appears from below
- Fixed some issues with communication of conflicting cloud saves
- Fixed beforecloudoverwrite{x}.sdsf not being created, making cloud save loads irreversible
- This message also does not appear when nothing was actually overwritten
- Fixed some problems with singleplayer qualifying progress when the minimum level is not met
- Fixed some Evolution missions being unfailable; leaderboard submissions exploiting this have been invalidated
- Reset leaderboard cached records for users of earlier versions
- Fixed the appearance of the transcension and ascension light pillars for Good and Great quality
- Various other fixes
v0.2.0.10 Changelog (from v0.2.0.9) - Control Rule Diagnosis & Event Stepping
Released February 12, 2024
- Added an option in the Gameplay Settings Wizard to add Control Rules for the following gameplay problems
- If Auto Shift Period is less than 16.65 ms and no control rule checks for high auto-drop rates to override it (or one does check but does not override ASP)
- If Auto Shift Period is less than 16.65 ms and no control rule checks for wide boards to override it (or one does check but does not override ASP)
- If Soft Drop Rate Addition is less than 5.5 Hz and no control rule checks for low auto-drop rates to override it (or one does check but does not override SDA)
- Added Event Stepping (Period key) in the replay viewer
- Made input box options left-align the text when typing
- Made the menu option headers light up when their respective option is selected
- Made error reports give more context to help with inputs passed into certain functions
- Gave pieces more movement weight on the stack if the Auto-Shift Period is at least 16.65 ms
- Made the side and bottom borders of the board slightly thicker when they have no meters attached, to emphasize the open-top more
- Lowered the Soft Drop Rate Multiplier minimum from 0.1x to 0.0001x
- Raised the Soft Drop Rate Multiplier maximum from 100x to 10000x
- Raised the Soft Drop Rate Addition maximum from 100 Hz to 9999 Hz
- Made the decimal slider options logarithmically go up/down with the mouse
- Fixed uncoverable watermarks appearing white in replays
- Fixed "()" appearing in the username prompt menu for new players
- Fixed various visual problems with seeking in a replay and kept visuals in sync with the mode's time
- Fixed invalid ruleset JSON files and files other than JSON files breaking the base ruleset search
- Various other fixes
v0.2.0.9 Changelog (from v0.2.0.8) - Gameplay Settings Wizard fixes & Graphics Toggles
Released January 19, 2024
- When the game starts with the nickname prompt, the game will ask to check for username availability (for the WebGL port it will stay automatic)
- If you have an existing save, the game will prefill the user ID, username, and nickname from the first available save and skip the check altogether if used
- You can now disable piece rotation
- You can now hide the watermark during gameplay (but the watermark will reappear in replays and when you get a game over)
- Gameplay Settings Wizard's Diagnose Auto-Shift Delay option
- Added more logic for when the dropoff from the left peak to the trough is so steep that it has no meaningful bumps in between
- Thanks to NOT_A_ROBOT for helping out!
- Lowered tolerance for the divide when the left peak is further to the left
- Giving a second option for when the first suggestion is too drastic
- Made the qualification diamonds blink when the player stalls
- Made the higher level menus not continuously run the Control Settings Wizard when it no longer needs to
- Removed some log statements about recording and loading replay states causing lag in mass AI battles and replays
- Optimized low detail board displays by removing the unused text canvases
- Fixed the game erasing your controls if you closed the game at the title screen
- Fixed some issues with loading a control scheme
- Fixed a problem with the control game settings submenu when there are no control rules
- Fixed the PB delta meter in Line Race 32L Paced generally being colored red
v0.2.0.8 Changelog (from v0.2.0.7) - Gameplay Settings Wizard & Mass AI Optimizations
Released January 2, 2024
- Enabled the Gameplay Settings Wizard, with an option to check if your Auto-Shift Delay could be better, using your history of ShiftLeft and ShiftRight press durations
- Controls now autosave when the game is closed
- Optimized mass AI battles by skipping the breakdown sequence in low-detail mode except for the focused player
- Optimized mass AI battles by skipping most rule categories when there are zero rules, such as boardPassiveRules
- Optimized various checks on alive group count when playing versus without teams
- Optimized the random targeting style; this removes a lot of the round starting lag
- Made replays record replay states when unpausing only if the control settings were changed
- Various optimizations concerning display logic
- Fixed control settings being temporarily read-only if the displayed units are changed
- Fixed a bug with alive counts being calculated incorrectly for the playerBreakdownRules
- Fixed versus transitions not updating their text after their first use ("Round 2")
- Fixed mode bar meters showing up as empty if their values are stored as integers
- Fixed not being able to restart practice modes during multiplayer
- Fixed the teaser message for Divination still saying it will continue in v0.4 (after you view the roadmap)
- Fixed not being able to resize the window, don't know how long it was disabled
- Fixed updated game keybinds not being used in an ongoing mode
- Fixed replays always using the previous set of control settings whenever they change
v0.2.0.7 Changelog (from v0.2.0.6) - Customizable Soft Drop, Control Rules & Rotate-Off Resets
Released December 19, 2023
- Added soft drop multiplier and soft drop addition, they can be modified in the controls
- Fall mode now no longer controls your soft drop, see below
- Added ruleset variables for setting the minimums and maximums
- Moved the High Drop Rate and Wide Board timings to Control Rules, a customizable array of gameplay setting modifiers for various situations
- The currently available conditions are for mode type, auto-drop interval, board width, lock delay, drop resets, shift resets, and rotation resets
- Control rules can set Auto-Shift Delay, Auto-Shift Period, Soft Drop Multiplier, Soft Drop Addition, or a combination of such
- Control rules that change Auto-Shift Delay or Auto-Shift Period will show up as an Auto-Shift Paradigm Change
- Control rules that change Soft Drop Multiplier or Addition will show up as an Auto-Drop Paradigm Change
- The highest priority rules that meet their conditions for either ASD or ASP will be the active rules
- You can have multiple of the same kind for varying levels of danger
- All players start with these basic control rules:
- High Drop Rate: changes ASD and ASP to higher values
- Wide Board: changes ASP so that columns can be shifted to more leisurely
- Fall Mode: changes soft drop multiplier to double instead of half, so that pieces drop more gently
- Input biometrics now records inputs where ASD is not modified by any control rules
- Added the ability to change gameplay settings in the middle of gameplay
- Changed how rotation resets are consumed; along with rotating on the stack, they are also used when rotating OFF the stack
- This means some upward kicks will fail if your rotation resets are far in the negative
- Added the ability to change usernames once a week
- Added the ability to hide the mouse cursor during gameplay
- Made the Pull, Fall, and Rise progress bars more accurately display stages 1 through 5 (i.e. if you entered stage 5 at 203 lines instead of 200, the stage 4 segment will be a little longer)
- Skipped the restart prompt if you already got a game over
- Put more restraint on the Controls menu autosaving the .sdcs file
- Moved the hold queue toward the left when there's more than 1 capacity
- Made the game stall for 1 second after surrendering to Alt+F4 spamming so that other programs don't get gutted
- Swapped the username and nickname fields for starting a new save and in the register submenu, username field now prefills based on acceptable characters
- Added keyboard frequency units to the control settings menu
- Controls settings menu can now cycle through multiple demonstrations and restart them
- Removed the MaximizedWindow option as it only works on Mac OS and does the same thing as FullScreenWindow on other platforms
- Turned the fullscreen option on Linux into a toggle as the ExclusiveFullScreen is only available for Windows and does the same thing as FullScreenWindow on Linux
- Added explanations to the fullscreen options
- Made ExclusiveFullScreen prompt for a resolution change if not currently set to the display's maximum
- Made users' preferred groups visible to each other in multiplayer
- Fixed the Evolution menu disposing the gilded texture when looking at a mission group
- Fixed the Hold text covering a preview if the capacity is more than 1 and the interface is using Wrapping Queue
- Fixed a bug where pressing backspace in a password field or a hidden email field replaces the contents with ■
- Fixed some attempts to register with a user ID
- Fixed some issues with logging in from the Manage Saves submenu
v0.2.0.6 Changelog (from v0.2.0.5) - Background & music fixes
Released November 15, 2023
- Added more details to the background stage; the platform is also about 10% darker
- Added smooth transition logic to the custom sound effects submenu
- Made each mode prompt you if you want to quit after having cleared some levels
- Added the ability to play ordinal-based sound effects in rulesets
- Fixed the ascension light pillars spinning all over the place =D
- Fixed the Evolution gilded texture not generating
- Fixed the music changing for modes that you are not spectating in multiplayer
- Fixed the music not playing when you begin spectating
- Fixed viewing the replay of an ongoing mode interrupting its music
- Fixed the background going into spin mode after viewing the replay of a singleplayer mode and then resuming
- Fixed some gameplay settings being able to be set to NaN
v0.2.0.5 Changelog (from v0.2.0.4) - Menu dropdowns & ruleset null policy
Released November 7, 2023
- Menu options now have dropdown menus; you can see all the options (or however many can fit) at once, and you can select with the mouse
- Prevented any rulesets setting variables to null
- Null values are now repurposed to variables being undefined; any rulesets using uninitialized variables should react appropriately
- This also means the null constant cannot be sent through multiplayer
- Null may still appear when using hardcoded variables, so rulesets can still use the null constant in expressions
- Now I can work on the new documentation :)
- Made qualify clear levels for Pull, Fall, and Rise go down based on minimum required clears of each mode
- Purification qualify boons are based on twice that of the minimum attempts, rather than a fixed 64 attempts; increases at least three times as fast
- Ascension qualify boons are based on 1.25 times that of the minimum attempts, rather than a fixed 64 attempts; increases at least twice as fast
- Made qualify power for Dynamic go down based on minimum minutes required
- Purification qualify boons now increase 4.27 times faster
- Ascension qualify boons now increase 6.825 times faster
- Game now prompts to replace cloud saves if they have different save IDs
- If an auto-upload occurs on game close with differing save IDs, the game will prompt you to replace it when the game is opened again
- Ping is now displayed at the bottom-left in multiplayer
- Force closing a mode no longer makes the mode graphics disappear forever
- Made Tab in the Singleplayer menu make the menu options visible
- Manage Saves menu now appears with the latest save selected
- Optimized the menu mouse selecting
- Optimized the Sound Effects unlockables submenu when picking a different sound type
- Removed some memory leaks surrounding texture generation
- Fixed changing Minimum Participants in multiplayer change the Goal Points slider but not the actual goalPoints
- Fixed qualifying levels failing to lower if you made it past half the minimum level but not the minimum level
- Fixed fetching a single hexomino, heptomino, or octomino returning a pentomino instead
- Fixed input biometrics not loading
- Fixed the ruleset infix parser failing to add an operator which is followed by a postfix expression
- Fixed identification of the latest save file in the Manage Saves menu
- Fixed the power wave in the background not moving up and down
- Fixed the menu not appearing when attempting to close the game during gameplay
- Various null reference fixes
v0.2.0.4 Changelog (from v0.2.0.3) - Soft drop back in time & various menu fixes
Released September 27, 2023
- Gave the auto-updater the ability to search for a patch of the same minor update
- Stopped the game from having more than 10 general menu messages
- Messages from a particular source of the menu now get ignored if that source spams messages
- Made the quit prompt get pushed as the first message if the above somehow still happens
- Clicking the close button while the quit prompt is flashing lets you bypass the prompt (though oddly Windows 11 ignores double-clicks on the X button)
- Added a way to get into the account menu other than clicking the top-right
- Menu can be summoned at any time by pressing Home+Enter
- There is also an additional option in Settings > Misc
- Added the binary representation of doubles to BackInTimeExceptions if the two times appear the same
- Game now prompts you if you want to manually replace cloud saves
- Added unique IDs inside the save files that are assigned when created or imported from a previous version, will be used soon
- Optimized menu cardinal navigation pathing
- Optimized accepting garbage into populated garbage meters
- Fixed the auto-updater always expecting an array of options
- Fixed 3C-2 using the primary piece pool of 3C-3 and 3E-2 if either were ever started
- Fixed the game attempting to send leaderboard entries every frame when there's a problem doing so
- Fixed a problem with Shift+Tab from an input field always going to the next option instead of the previous
- Fixed skill levels being set completely to the value of the last attempt with less than 100 inputs
- To compensate for glitched skill values, any values under 20000 now range from 15000 to 20000
- Fixed the Gameplay Settings submenu setting the Hard Drop Cooldown to the value of Auto Drop Threshold
- Fixed the game saving the debug JSON of a replay under the same filename and then subsequently replacing it with the binary
- Fixed Fall replays from before v0.2 having more than 1 piece preview
- Fixed attempts to save more lock delay than available
- Fixed soft dropping off the stack after running out of lock resets causing a BackInTimeException
- Fixed the power history bar not appearing in Dynamic replays
- Fixed the save menu appearing even with the same AppData save and GameDir save
- Potentially fixed a problem with including replay data in error reports
v0.2.0.3 Changelog (from v0.2.0.2) - Submission detangler
Released September 4, 2023
- Added Width Threshold demonstration
- Added the ability to include your leaderboard cache data in the error report
- Lowered the impact of shorter Rise attempts to the associated skill level
- Dynamic skill value no longer starts at 0 in non-arcade mode, meaning shorter playthroughs do not hurt the Dynamic skill as much anymore
- Made the game not search for save files that are not save.sdsf or save1.sdsf to save9.sdsf
- Made the Auto-Shift bar blink whenever it changes paradigm
- Made the game not log in twice in a row when using the Manage Saves submenu
- Made importing pre-v0.2 saves easier
- Fixed the game not starting into the Line Race intro on a new save file
- Fixed errors leaking out of updating user IDs in replays preventing some account flow logic
- Fixed roadmap submenu throwing errors on certain names I'm trying to give >:(
- Fixed deserialization of v0.2 replays, rotationResetsUsed and holdsUsed now load in the right order
- Fixed the saves menu attempting to load non-existent save files
v0.2.0.2 Changelog (from v0.2.0.1) - Nice auto-update bro
Released August 22, 2023
- Fixed the auto-updater creating a prompt to update every frame
- Fixed the auto-updater not restarting the game
- Fixed not being able to get the user ID after importing a save file from v0.2.0.0 that had one
v0.2.0.1 Changelog (from v0.2.0.0) - User ID fixes
Released August 22, 2023
- Made the power wave effect layer correctly by splitting it into 5 segments
- Made the account status say "Login Incomplete" if there's somehow no user ID
- Made pause allowance recover faster in Freeform All Clear and Versus
- If a leaderboard entry fails to submit or get updated, it is put at the back of the queue, retaining a single submit button for the interaction
- Made the game remember the last user ID used in the Manage Saves menu
- If a save file is loaded with a different user ID than the last one used, the password and email are forgotten locally
- Added the ability to pick update patches
- Fixed leaderboard entries not including user IDs in their preview data
- Fixed user IDs not being included in error reports
- Fixed letterboxing logic to prevent aspect ratios less than 16:9 hiding some visuals
- Fixed the reset password flow tossing the email at the last second
- Fixed reset password flow overwriting usernames and emails if the save file had a user ID
- Fixed getting too many spirit points in a round of Versus
- Fixed multiplayer room submenu not prompting for leaving the room
- Fixed test reset code submenu not prompting for invalidating the reset code
v0.2.0.0 Changelog (from v0.1.1.10) - Multiplayer v2 + Custom Rulesets
Released August 15, 2023
- Shoutouts to anyone that reads all of this; I don't have it in any concurrent order, so reading some of these details will be confusing at first
- Redid the multiplayer system; the code is much more tightly coupled with the data stored in the Photon Engine
- Photon Cloud now calls the Spirit Drop backend API to log in, which means I can ban you :D
- Players without accounts have the Guest icon prepended to their nickname
- Quick Play was removed, now we all create rooms
- Roll call is improved and cross-checked across everyone
- Players now send their next queue, piece placements, and rise meter rows as part of their update packets
- With the standard rulesets, only the piece placements are sent here
- Mode, board, and group variables in the ruleset can now be synchronized
- Resyncing works now, the game can now transition from low-detail to realtime
- I am very confident about this one, been testing this with multiple bots that were doing various things to try to break the room and bandwidth usage, and with custom rulesets to boot; let's not forget the players that helped test in the betas
- In the menu, the chat bar is no longer activated if it shares a menu key
- Also I blocked access to the practice modes because I considered it low priority and didn't want to make this update take any longer
- Versus Rulesets
- You can now use ruleset .json files from your Rulesets folder in multiplayer rooms and the Custom Rulesets submenu
- Moved the button text into the board variables
- Eliminate target style is now based on the height of the middle 4 columns and the number of minos present
- Added indexing
- Supported CLR types are BoardStatistics, List, and Dictionary; the game will try to use 32-bit integer indexes when needed
- To push a value to a collection, use the add rule or + operator
- For dictionaries, you must add either a list of two values (first is the key, second is the value), or another dictionary
- To remove a value from a collection, use the subtract rule or - operator
- For dictionaries, you remove the keys instead
- To set a value to a collection, use the update rule or @ operator
- Added stack read/write operations
- Each cell is currently comprised of one byte; the lower 4 bits are the color, and the upper 4 bits are the metadata
- Attack and cancel multipliers are no longer used by Versus mode (aside from the multiplier visual), giving ruleset creators full control of the damage formula
- The Standard Ruleset now implements two separate multipliers now: Back-to-Back multiplier, then Defender's Bonus
- The multiplier shown at the bar is purely visual, but still displayed with the same variable as before
- All Clears and All Clear Chains were moved to post-B2B-multiplier (nerfed)
- Added the Before Top Out event; if this event is present in the ruleset, the game will check for block out a second time after evaluating
- This can be used to avert normal lose conditions; note that Reaper state will always be applied this way
- Added the ability to read and write row data
- Added the ability to add additional side text, and moved the current target strategy in the Standard Ruleset to the side text
- Added the ability to play sounds; the rule will randomly pick files that start with the specified name or sound event; for sound events you can pass in a number index
- Added the ability to disable passthrough; when disabled, attacks will burn pending garbage as well as what's currently in the garbage meter
- Added the ability to control when players can play and whether or not they even have a board
- Added the ability to use a base ruleset of which you can override or add on to its behavior; to prepare for the Nexus, rulesets are referenced by author-name-version
- Default shift resets is now 16 and default rotation resets is now 12
- On a side note, I started work on Lua support; you can use Lua functions to generate numbers, strings and tables
- For more details on how to create ruleset JSON files, see https://rayblastgames.com/spiritdrop/rulesets.php
- At the moment, you can't do everything in rulesets (such as custom graphics), but you can do a lot
- NOTE: Due to the overhaul in various areas of the code, playback of versus replays pre-v0.2 are no longer allowed
- Added a new practice mode subtype called 32L Paced; you can select it in the Line Race submenu as well as on a new save file
- Has the following restrictions: 100 ms minimum spawn delay, 500 ms minimum line clear delay, and 33.3 ms minimum auto shift period
- In multiplayer, the lower of the two personal bests is used; 32L can give slower players a quicker time
- Players have the option to view a combined leaderboard of the faster of 32L Paced and 40L Turbo
- Added a new practice mode subtype called Timed 2:30 Paced, which has similar board timings as 32L Paced
- Players also have the option to view a combined leaderboard
- Timed Turbo had its spawn and line clear minimum delays removed
- The lock out mechanic was removed (topping out when placing pieces completely above row 21); to make it easier to know when you will top out, an outline of the next piece appears where it's going to spawn
- It moves if your current piece is going to change where it spawns
- It also moves during spawn delay based on initial moves
- The auto-locking mechanic was also removed; to offset this, 1 less shift reset and 1 less rotation reset are given
- To prevent stalling, using twice the number of rotation resets disables kicks
- Added two-step kicks, where both kicks check for placement in the stack; either both kicks are used, or neither kick is used
- One such kick has been added at the beginning of the T piece 180 kickset, which allows the T piece to "dig" into a hole
- Added a Garbage Stack Visualizer, which appears when garbage in the garbage meter is ready; squares represent the next board state if no lines are cleared
- Enhanced the save system
- Up to 9 slots can be loaded from
- Game now also saves in AppData as the new priority; if the save in the game directory is older or newer than the AppData save, a load menu is shown
- Game now also saves in the database when you quit the game
- If you log in and the save in the database is the newest one, you get the option to use it
- Moved sound effects into a Sounds folder and Spirit Drop OST music into AssetBundles; after this update, successive updates will be slightly smaller
- This is how custom sound support is achieved
- There are two categories of preview sounds; the column-by-column ones, i.e. "pieceR1T8", and the ID ones, i.e. "piece S"; named sounds are prioritized
- Logic has been saved to a _cfg.json for more control of the custom sounds
- There are some sound types that were added but I don't have bundled sounds for them; check the Unlockables menu for the full list of sound types
- Custom music support was enhanced
- Custom music can now be specified using space indentation instead of tabs
- You can now see all the music that correctly loaded in the Music submenu
- Gave the ability to use the same song for multiple stages without it being interrupted, as well as being able to change its current stage loop
- Gave the ability to omit stage music; the game will re-use the previous stage music
- For example, having Stage 1 and 5 music but no 2, 3, or 4 will let stage 1 music play for the first 20 levels of Pull mode uninterrupted
- Gave the ability to omit the rest of the music types; the modes that use them will just play no music
- The exception is if there's no line race or timed music, the game will try to use the regular practice music
- Added new line clear types
- Flat Clears, performed by clearing lines at the top of the stack (but not the entire stack, as that would be an All Clear)
- Split Clears, performed by making two separate groups of line clears
- Aerial line clears, achieved when there is a group of at least 4 spaces beneath the lowest line clear, or when you uncover 2 groups of spaces
- Added 5 mino themes (Checkers was also renamed to Color Checkers)
- Line Race now highlights the number of wells
- Added the j7, l7, J7, L7, and V7 pieces (new colors cost 97,500 spirit points)
- Added the ability to set piece color in Vault > Pieces
- Added the ability to set the piece generation seed for practice modes, useful for finding the most efficient way to use certain bags
- To make this even more useful, the Piece Generation Seed now shows up in the results screen of practice modes
- Obviously you cannot submit new records with this method, and spirit point rate is lowered
- Currently the seed is not used for Timed multiplier x6 and up, however this still does not let you beat your PB
- Made Purification and Ascension qualifying requirements clearer; they now appear during gameplay with new icons
- Max delta time now appears next to framerate; it turns red if the delta time logarithmic range is large, to indicate CPU spikes
- Prevented nicknames from using
- Added basic clipboard pasting functionality for menu input boxes
- Made input boxes in the menu easier to read
- Separated keyboard and mouse selection in menu
- You can now pause replays
- Struggle Mode runs can now beat their Non-Struggle PBs if they technically beat them
- Added user IDs; replays will be tied to user IDs instead of usernames, making it possible to change usernames freely
- Username remains for login purposes, but you can login with your email instead
- Switched to Unity's Universal Render Pipeline, will be using this for future visual effects while the game still runs in Unity
- The background is forced to appear in Singleplayer from now on; there is also no more Dark background
- Controls
- Controls menu now auto-saves
- Added Hard Drop Cooldown, which disables the use of Hard Drop after a piece has been placed automatically; default is 125 milliseconds
- Added Preferred Spawn Delay and Preferred Line Clear Delay; default is 100 milliseconds
- Modes now use minimum and maximum timings, similar to the auto-shift timings
- Pull mode has a maximum spawn delay of 481 ms and a maximum line clear delay of 901 ms at level 1
- Dynamic mode has more wiggle room in the early power levels
- Added the ability to Re-Hold, which lets you swap pieces without the piece respawning; this is universally enabled by default, notably including Freeform All Clear
- In custom rulesets, holdLimit controls the number of holds that respawn the piece, and allowRehold lets the player continue to swap pieces
- Game now records up to 7 MB of data about how long you press keys for; this will be used in an upcoming feature for control settings
- Data lasts up to 60 days or up to approximately 130,000 key presses for each input code
- Prevented High Drop Rate ASP from ever being below Drop Rate Threshold, defeating the purpose of the mechanic
- Control Settings submenu now shows demonstrations of different timings; there are a few that aren't finished yet though
- Controls can now interrupt each other, giving an alternative to autoshifting with multiple controls linked to Left/Right (keep in mind that
- Added the ability to manually lock pieces using Soft Drop
- Line Race
- Added stack separation guides; they turn red if you have multiple of them, and gold if it's created with a 6-3 stack
- 6-3 times are not displayed until PB gets to sub 1 minute or a 6-3 run is performed
- Freeform All Clear
- Added a solution finder; it doesn't give solutions, but it will indicate if there are not any
- Strong Solution Hints will take much longer to calculate than Weak Solution Hints, but it will check if placements are possible via Omnikick (might have false positives)
- Due to Re-Hold and new lock reset mechanics, auto-drop rate was increased
- Timed
- In Timed mode, full All Clears #1 → #8 went from 10 → 17 attack to 11 → 25 attack
- All Clear Minis are not affected and still give 8 → 16 attack
- Combos 8 to 11 give 2 additional attack and combos 6, 7, and 12 to 15 give 1 additional attack
- To counteract the buffed Timed Turbo, buffed All Clears, buffed all spin, and buffed 180 kicks, Timed now becomes biased against pieces used to create line clears from x10 onward
- For example, doing 10 T-Spin Doubles in a row makes T pieces appear less often
- The bias is based on attack generated and the level score multiplier
- Preview data was changed around
- Fall
- Fall mode no longer starts with an S, Z, or O piece, as well as on top out in Struggle Mode
- Kill screen was removed for you maniacs out there; drop rate continues to increase from level 40 in increments of 3.75 Hz
- Rise
- There is now a Backlog Assist; it now places numbers where the marks are, and the numbers displayed are the number of minos on top
- They indicate with a sound when you significantly increase them, and they enlarge slightly when your ghost is above them
- Slightly nerfed the spirit point bonus
- Small change to garbage generation when near the top to prevent some boring scenarios and misleading difficulty
- To balance out the removal of lock out, Struggle mode now requires 6 garbage clears each top out
- Due to the introduction of customizable spawn delays, they were capped at 300 ms to prevent slow pace in terms of Transcension
- Stopped generating a hole on the leftmost or rightmost column of the first garbage line, even after you top out in Struggle Mode
- An indicator appears for the garbage line you need to clear to continue in Struggle Mode
- Dynamic
- Slightly increased spawn and line delay in Dynamic at high power; line clear delay will never be below spawn delay anymore
- Lowered lock delay in general by a few milliseconds
- To balance difficulty with the elevated lock reset mechanics, excessive shift reset penalty was changed from 5 power to 4, and rotation reset penalty was changed from 8 power to 6
- These penalties are nullified if you can manage to move the piece around for a while
- Qualification progress is now made faster at higher power levels
- Qualification progress stops when pieces are not being placed
- Game now prompts you once if you want to quit after topping out in a short period of time outside of Arcade Mode
- Evolution
- 2S-1 spawn delay now shrinks the longer the piece is in play, to a minimum of 875 ms
- 2S-2 spawn delay is now based on 22 rows instead of 21
- Piece generators for 3S-2 and 3S-3 now cycle through polyomino orders in a predictable way
- Specifically, 3S-2 is now tetro → pento → mono/domino/tromino, and 3S-3 is tetro → pento → domino/tromino → hexo → tetro → pento → hexo → monomino
- Made the requirements in 3S-2 and 3S-3 slightly harder
- 3A-1 now has an ASP maximum of 0.0 ms, and 3A-2 and 3A-3 have an ASP maximum of 33.3 ms
- The extra I, J, and L pieces in 3C-2, 3C-3, and 3E-2 are now evenly distributed
- Frenzies now count as Twins, meaning one Quad Frenzy counts as two Twin Quads
- Increased the hold capacity to 2 in 3C-2 & 3E-1, and 3 in 3C-3 & 3E-2
- Added an I7, three j7's, and three l7's in 3C-3, another I5 in 3E-1, and another two I6's, a j6, and an l6 in 3E-2
- More lock resets were given to 3C and 3E
- Made the requirements in 4S-1 slightly easier
- Made the requirements in 4D-2, 4D-3, 4E-2, and 4E-3 harder
- Masseyai v2.1
- AI was made aware of the garbage meter, making it tougher to catch off guard
- Input rate limit is now 99999
- Buffs concerning auto-shift, about 10% faster
- AI now uses a time limit instead of throttling; if evaluation takes over 30 milliseconds, the AI will stop sending inputs for that frame
- You should be able to set input rate to 25000 without the game becoming unplayable (may vary based on hardware)
- Unless your computer truly can't run thousands of boards with certain rulesets, mass AI battles also shouldn't lag anymore
- Now stop reporting about this to me lol
- AI can now use more than just tetrominoes
- Debug Menu
- This is a new menu controlled by holding the F12 key; there are various views and actions you can perform
- F12+1 for recording Debug Info
- Enable to make error reports better, disable to increase performance
- F12+2 for JSON tracing
- Reserved for any problematic JSON serialization issues
- F12+3 for profiling (new!)
- Shows the amount of time it took to process a frame, with all the times it took to process each board; also shows network statistics
- F12+4 for input biometrics (new!)
- This is a feature that's in progress, it shows how long key presses are typically sustained in a replay
- F12+5 for the mode debugger (new!)
- This one allows you to watch variables in real time
- You can also pause the game with it to compare multiplayer data such as KOs and attack history, with everyone sharing the same view
- Some pages aren't finished
- In multiplayer, the mode debugger views are synchronized for everyone, so that players can quickly communicate any differences
- Adjustments
- Gravity was renamed to Auto-Drop Interval, and Gravity G was renamed to Auto-Drop Rate; only one unit is now displayed at once, in Hertz
- Drop Resets now only reset lock delay if the piece overall moves down
- A line visual was added to show where a drop reset activates; it becomes brighter after using a shift or rotation reset, or if either are disabled
- Pull's Auto-Drop Speed curve was made slightly easier just for the sake of there being a visible difference between levels 19 and 20
- Qualifying levels for Pull, Fall, and Rise slowly drip down even if you don't clear the minimum level, but the amount they go down is based on how close you are to the minimum
- S/Z twist is major now if you leave the north and south faces untouched, or if you completely surround the ends; every tetromino now has a major non-droptwist corner set
- I5, I6, I7, and I8 pieces now have a minor immobile twist
- T piece now also uses immobile detection for minor twists, which means every piece in the game rewards immobile detection now
- Redid the I piece kick tables, each rotation state now has 16 kicks and has an easier time climbing slopes
- Improved the 180 kick table; a downward kick is now prioritized, though the twist bonus is still nerfed
- Adjusted the default kick table to prioritize downward kicks for the rotations toward upside-down
- Made Droptwists performed via 180 kicks Minor; does not apply to Dropspins
- Added the Roofless build identifier for S and Z droptwists that don't use overhangs
- Soft drop has increased in speed; auto-drop interval is multiplied by 0.5 instead of 2.0 now, except in Fall mode, and then 0.5G is added
- Gave sustained sonic drops the same behavior as infinite drop rate: 0.0 ms auto shift period is not able to fly over gaps anymore
- Personal Bests concerning Struggle Mode have become separated; when you update, your scores will be considered the Struggle Mode variant and the non-struggle variant will be 0
- Attack/piece is now shown in Versus 1v1
- Struggle modes now tell you how many more lines or garbage you need to survive
- Made the background screen darker when the results screen is up
- Score multipliers from B2B Chains are now shown next to your score
- Adjusted the transcension camera view so that the whole Divination pillar is behind the board
- Lowered the requirements of the Medium, Hard, Expert, and Master objectives in 1-3
- Combined bottom-right text if multiple controls were set to the General ones
- Pieces now spawn with their origin at the top of the board, or just above it
- Gave extra spirit points for build identifiers such as Twin Quad and Quad Frenzy
- Power combos now play if you gain 300 power with two pieces
- Top out animation in struggle mode now looks like the prototype version where chipped minos are translucent
- Top out animation is now a constant 2 seconds, making the overall respawn time (on a 21 row board) 4.5 seconds
- Improved the look of the Glass theme
- Switched the opponents' Danger Sense and Heuristics back to the left side
- Shrunk the board a tiny bit to add some padding in the UI
- Realtime displays in multiple rows are also shrunk further to avoid overlap
- Game now indicates if High Drop Rate or Wide Board Auto Shift is in effect
- Test mode now has infinite lock delay and lock resets
- 10000+ move or rotation resets are now treated as infinite resets
- Changed the floating-point number sliders to increment or decrement more reasonably now
- Also made the control settings submenu stricter about the slider values when viewing 60 fps
- When registering for an account for the first time, the game now remembers what you entered earlier
- Removed the Threading option for Versus AI
- Shrunk the font size for multiplayer chat
- Made the drop rate timing ice blue when resettable drop rate is inactive (the mechanic present in Fall mode)
- Increased the piece preview sizes (if pieces taller than 3 rows are used, they shrink down to what they originally were)
- Quads were renamed to Quadruples
- Score bonus from All Clears now get half the Back-to-Back score multiplier
- Buffed scores for All Clear and All Clear Mini #4 onward due to a pre-existing bug
- Rebalanced the pause limit mechanics
- Made the pause allowance exponentially go up faster the longer you don't pause
- Pause allowance accelerates much faster in singleplayer modes and somewhat faster in versus
- Pause penalty is lowered for all modes except Freeform All Clear
- You can now pause during countdowns and top outs without penalties; the game will also pause during a top out (but not the countdown) even if you have already spent your pause allowance
- Improved the pentomino kicks a bit
- Add support for shorthand color tags
- Progress bars now appear for leaderboard submissions
- Various other menu tweaks
- Some other changes I probably forgot to write here
- Optimizations
- Monomino to nonominoes are generated during the build and the time to load the game has been reduced tremendously
- Background stage is entirely unloaded instead of made invisible when Hidden Background Quality is selected
- Merged the meshes of the pedestals, with reduced triangles and vertices as well
- To save on hard drive space, replays no longer include the Omnikick rotation configuration; the game includes them instead
- Same with the Standard Ruleset; it is included by the game and no longer included in versus replays
- Optimized the Danger Sense display and other static text shown again
- Replays now save on a separate thread most of the time, reducing the end lag when the mode ends
- Turned on incremental garbage collection to reduce or eliminate garbage collection spikes
- Took control of the garbage collector's spikes by performing them after the end of modes as well as some memory thresholds
- Stopped hard drop and sonic drop from fetching the current piece every row it drops
- Lowered allocations in various areas of the code
- Made replay reports take less space from padding
- The random number generator was split into two new algorithms; the first performs the same as before (but opens up new possibilities later), and the second is much faster but only suitable for visual and sound effects
- Fixes
- Clarified Evolution's Purification and Ascension point requirements in the menu
- Line clear hints no longer appear after top out
- Fixed a major flaw with tag matching where closing tags would be moved to the end, should fix chat messages and crazy nicknames
- Fixed "B2B Chain x4" not pulsating green
- Fixed problems with saving empty pause or chat controls
- Fixed the game attempting to load replays from v0.0.1
- Fixed inconsistencies with the username and nickname field restrictions, you can now use underscores in usernames and enter 255 character nicknames
- Fixed the firework particles appearing on top of the board background
- Fixed garbage offsetting not resetting the garbage bake times
- Fixed Evolution mode redundantly transcending and ascending even if you already got the points
- Fixed the two Evolution submenus creating the Evolution mode twice after quitting Evolution
- Fixed the AI behavior submenu not being initialized properly
- Fixed AI sending endless inputs concerning pieces that never kick over the stack
- Fixed the pause menu appearing after force closing a mode
- Fixed the piece previews with different board sizes
- Fixed restarting Dynamic mode without resetting lives (d'oh!)
- Fixed a problem with restarting Dynamic mode concerning purification and ascension progress
- Fixed multiplayer state being on in singleplayer and practice
- Fixed a menu glitch when deleting key bindings near the bottom of the advanced controls submenu
- Fixed a problem with using partial save data when loading corrupted save files
- Made it to where your email does not have to be stored locally on your device to be considered logged in
- Fixed the reaper state not appearing on the left when no Back-to-Back chain was active
- Fixed the player boards being given the same low-detail display as everyone else, making the game unplayable
- Fixed Versus mode not updating the board timings upon restart
- Fixed a problem with using hold for the first time and not topping out
- Fixed problems with garbage meter data being recorded
- Fixed a problem with the piece result displayed when seeking, among some other gameplay logic problems
- Fixed a problem with resetting your password when you never logged in before on the device
- Fixed Act I skill values being cleared upon loading the save
- To compensate, the game will estimate what it should be based on purification and ascension point progress
- Attempted to fix a problem with save file serialization
- Fixed leaderboard submissions not saving if you never successfully submitted them
- Combined the two input systems in Unity to one
- Many other fixes
- KNOWN ISSUE: Attack history is not synced; shouldn't affect realtime playback in multiplayer but may affect rulesets relying on it
- KNOWN ISSUE: Initial Hold fails even when using Initial Rotate, for instances where it would successfully spawn with the two combined
- KNOWN ISSUE: "Expensive" AI behavior is currently being dumb
- KNOWN ISSUE: Switching between accounts is kind of glitchy and makes misleading info in leaderboard submissions; proper support for alts will come later
- KNOWN ISSUE: Some of the text looks brighter than usual; this is because Unity changed the gamma settings on me
- KNOWN ISSUE: In some cases, spectating fails
- KNOWN ISSUE: Hold queue has bad previews
v0.1.1.10 Changelog (from v0.1.1.9) - Initial Per & Leaderboard pls work
Released August 15, 2021
- Improved the Retro skin again (image editor had a weird transparency blending bug)
- Added Initial Per Hold and Initial Per Rotation; when enabled, the game will check if the buttons are currently down rather than if they were buffered
- This will allow you to use initial moves with 0.0 ms spawn delay
- Hold text now lights up pink when buffered, lights up blue when held while Initial Per Hold is enabled, and flashes red if a Hold attempted failed
- Improved the reporting system; it will attach deserializing replays if they failed to load
- Added the ability to discard leaderboard entries if they fail to deserialize
- Replays now store the version they were serialized with, separate from the version they were recorded in
- Replays from a previous version that fail to load will keep trying later versions until it finally works
- Replays are now loaded before being sent to the leaderboards
- Replays now check for any extra bytes to see if they loaded correctly
- Leaderboard cache gets rid of obsolete entries now while you're offline; the most you can have is 20 pending entries, equivalent to the number of leaderboards
- The 1v1 Losing and Tiebreaker music can be disabled by emptying the lists, and the Winning music will be the only group that plays in 1v1
- Added the winners of versus games to the result screen and preview data
- Lowered allocations used by AI
- Fixed being able to have less Virtual Voices than Real Voices
- Fixed the board controller sending events after re-polling inputs that come right before the events
- Fixed problems with AI's uninitialized memory causing occasional strange behavior
v0.1.1.9 Changelog (from v0.1.1.8) - Grid Display & Error Reports
Released August 12, 2021
- Overhauled the error message system
- If an error occurs in the menu, it will be displayed as a game message
- Players have the option to send the first error message the game encounters straight to the developer, with the option to attach a replay and other recorded debug info
- Every exception is included and they no longer cover gameplay
- Redesigned the Versus view to be organized into divisible groups instead of an awkward two halves
- Player boards are always given their own dedicated group (local play in the future?)
- Each team in team battle is given their own group; if there's only 1 player left in a team, all teams can watch that one player
- Fixed dead boards lingering permanently on screen; the system is completely self-correcting
- Fixed compression of 6-player and other specific board layouts that caused issues
- Terms of Use now appears when you register
- Added Auto-Shift Cooldown, starts right after locking down a piece or rotating/holding after hitting a wall, and prevents Auto-Shift during the cooldown (does not activate when Spawn Delay is longer)
- Separated the Game Controls menu into Simple and Advanced views; Simple view exposes a binding for every control (including unused); Advanced view has the old menu
- Improved the Retro skin (has edges and the scanlines make more sense)
- Game no longer waits for octominoes to finish generating when you quit the game
- Lowered the resonance max volume somewhat but made it get to max volume sooner
- Moved all recorded debug info to a DebugInfo folder (except for the replays)
- Prevented anything creating over 64 reports
- Optimized the replay list submenu
- Added the ability to set rise meter period, move resets, and rotation resets in versus rulesets
- Fixes
- Fixed the ascension animation restarting at certain points in Evolution
- Fixed sprites not being parsed in nicknames (they'll appear as a square instead)
- Fixed menu controls preventing playing the game when the menu is disabled
- Fixed chat messages having unclosed tags
- Fixed the menu control binding submenu not changing the controls in certain ways
- Fixed loading old save files affecting piece generation
- Prevented viewing replays during initial piece generation so that it is not affected
- The campaign continues message now only appears after the mode is finished or you quit the mode
- Fixed the Evolution replays re-generating a copy of every piece
- Spirit point and mino chip overflows now max out the counters unless really large numbers are added (which likely come from error loops)
- Fixed existing spirit point underflows; the limit in the save file is now 2.147 billion
- Fixed the parsing of leaderboard preview data
- Fixed some minos in invisible stack lingering around
v0.1.1.8 Changelog (from v0.1.1.7) - FX & Optimization Frenzy
Released July 15, 2021
- Redid the update system to one that downloads update scripts, effective after this version
- Stowed the roadmap in rayblastgames.com to be able to change at any time
- New stuff
- Added a resonance ambience for Back-to-Back chains
- Added line clear effects, the amount of which is determined by graphics quality (yes, Spirit Points come out of lines now)
- Rows become highlighted if the ghost creates lines
- Added the Retro mino skin (it's based on the SNES port!) and the Checkers mino skin (a little cursed)
- Added a warning in the control settings submenu when high gravity Auto-Shift Period is less than the high gravity threshold
- Split the Register/Update submenu into two submenus
- Added the ability to use Tab and Shift+Tab in the menus; they are based on order of options and automatically activate interactable options
- Octominoes exist now
- Versus Rulesets
- Added a better stack trace
- Added power (^) and modulo (%) operators in expressions
- Added the ability to access board statistics such as pieces placed and lines cleared
- Added the ability to check mode time and round time in mode passive rules
- Added board and group IDs to versus rulesets
- Added the ability to apply versus rules specifically to a board or group ID
- Added the ability to summon pieces by name
- Adjustments
- Pull line clear delay has been increased for levels 21+; line clear delay is no longer shorter than spawn delay at level 24+
- Renamed Back-to-Back x2+ to B2B Chains, and renamed Mini Twists/Spins/etc. to Minor Twists/Spins/etc.
- Freeform All Clear runs that hit the pause limit are now invalidated
- Changed the behavior of enlarged kicks where the largest kicks are tested first
- Increased spirit point rewards for Back-to-Back clears and lowered spirit point rewards for Back-to-Back non-clears
- Applied monospace and bold to variable number text, and reduced acronym usage
- Added immobile minor corner sets to S and Z
- Tweaked the game and menu UI formatting
- Enhanced Divination skill calculation in Fall and Rise
- Seeing any Evolution mission group now unlocks the lower groups (seeing 4S-1 will lead to all the groups being unlocked)
- Fixes
- Made multiplayer more stable in various places (I'm still gonna redo the whole thing though)
- Fixed B2B Chain x100 breaking the Standard Ruleset
- Fixed ruleset compatibility with v0.1.1.3
- Fixed the Dynamic ascension progress bar in runs after ascending
- Fixed a problem with Freeform All Clear replays where it disqualifies early with incorrect piece dependencies
- Corrected the datetimes displayed in the Replays and Leaderboard submenus
- Fixed deserialization of the top out state
- Fixed a spirit points underflow in the mino colors submenu
- Readded the character limits to usernames (24) and nicknames (32, increases when you use tags, hard limit is 127)
- Fixed chat, board text, and mode text not being able to use sprites
- Nicknames and chat messages are no longer able to use or tags
- Any current nicknames that use these tags will be reset
- Fixed a bunch of text fields that were exposed to user input
- Fixed Divination skill evaluation after restarting in Pull, Fall, or Rise
- Optimizations
- Major display optimization for the two high-level displays where the matrix is updated only if the stack updates (with some exceptions for matrix colors)
- The mino flashes, line clear hints, and rainbow effect were combined into a shader
- Stack outline now only shows in Great quality or above
- Optimized the Score State display, Danger Sense display, and other static text shown
- Moved sprites into sprite sheets and rearranged layers to lower drawcalls
- Optimized the starts of large versus rounds
- Optimized piece generation and pretty much any interaction with mino arrangements
- KNOWN ISSUE: Ground jitters in some graphics systems; if it's distracting, simply hide the stage or switch to 16:9 aspect ratio.
- KNOWN ISSUE: Game waits for octominoes to finish generating when you quit the game.
v0.1.1.7 Changelog (from v0.1.1.6) - Qualification Improvements
Released June 10, 2021
- Fixed Combo x22 playing the wrong sound
- Fixed matrix displays of any size that changes the scale of the minos
- Prevented local boards receiving feint attacks
- Improved the ascension animation
- Qualifying levels become more weighted toward your average the longer you have been attempting to qualify
- Lowered the maximum Dynamic qualifying minutes from 65535 to 4095
- Prevented purification and ascension qualifications from being set to the minimum level if 255 attempts or 4095 minutes were exceeded
- The progress bar in Dynamic now shows qualifying powers
v0.1.1.6 Changelog (from v0.1.1.5) - Multiplayer Re-write Part III
Released June 9, 2021
- Fixed the low-detail board displays not appearing
- Fixed low-detail displays not being at proper sizes
- Added the Garbage Accept event to versus rulesets, triggers when an attack finishes its travel time and after it is inserted in the garbage meter
- Added the Before Garbage Accept event to versus rulesets, triggers when an attack finishes its travel time and before it is inserted in the garbage meter
- Added the Before Garbage Intake event to versus rulesets, triggers when a piece is placed that allows garbage in and before it is inserted in the rise meter
- Potentially fixed a problem with synchronizing custom rulesets
- Online AI no longer take on the name of the player powering them
- Fixed enlarged pieces not having proper colors in replays
- Allowed versus rules concerning attacks and garbage to execute even if it's for a non-local player
- Removed the code that kicks players if they have desyncs; instead it sends messages
- Fixed a bug with the Standard Ruleset that set the garbage limit to 9999 at inappropriate times in teams
- Fixed problems with practicing in multiplayer while a multiplayer mode was ongoing
- Fixed problems with displaying targets and attackers on the low-detail displays
- Optimized the matrix view for the base board display and the highest low-detail display
- Less sprites are rendered if grid alpha is set to 0.0%
- Watermarks for other players are a little more visible
v0.1.1.5 Changelog (from v0.1.1.4) - Multiplayer Re-write Part II
Released June 7, 2021
- Fixed pieces ever spawning below the board or past the left boundary
- Fixed the combo sound dissonance after Combo x21
- Added garbage asynchronous intake and line clear garbage intake to custom rulesets
- Fixed the Evolution menu only letting you start at group 1 or not at all
- Made the update script delete the update.zip before the download instead of after extracting it, so when the script fails it's still usable
- Updated Photon
- Optimized the board displays a little
v0.1.1.4 Changelog (from v0.1.1.3) - Multiplayer Re-write Part I
Released June 4, 2021
- Fixed the Evolution submenu switching to the Pull purification and ascension progress
- Fixed the Line Race submenu darkening the screen for the rest of the menus
- Fixed the starting level options for Rise mode
- Added a progress bar at the bottom in Dynamic mode
- Added side mode bars for Pull, Fall, and Rise that fills up each level, and added a side mode bar for Dynamic that fills up every 1000 power (in Arcade mode, this is displayed on the overall progress bar instead)
- Raised the offline AI limit to 8190
- Dynamic's power requirement to get lives now decreases as your power increases
- Made it easier to see why leaderboard entries fail to send
- Fixed not being able to use groups in multiplayer
v0.1.1.3 Changelog (from v0.1.1.2) - More multiplayer stability
Released May 30, 2021
- Added the ability to restart from the result screen
- Changed the Timed result screen
- Progress of each upcoming version is now shown in the Roadmap menu
- Photon events are now logged in photon.txt when Record Debug Info is enabled
- Added the Hard Drop Fallback control setting; when Hard Drop is unavailable, you can treat it as either Soft Drop or Sonic Drop if available
- Added more I4 kicks, rearranged the J/L upside-down kicks, and added more 180 kicks
- Improved compatibility with common pieces in replays
- Added descriptions to the singleplayer mode select
- Added a resolution option in the graphics submenu; you can also tell it to not adjust the window size if you have a custom one
- Removed Fall starting levels 22 to 30, and made starting at 31 possible if you clear level 32
- Added the Line Race submenu with the option to disable the delta line and countdown
- Moved the behavior of the 1v1 AI to its own menu
- Limited the qualifying levels for Pull, Fall, Rise, and Dynamic transcension and ascension to be one below the true requirements
- Fall ascension is an exception, the maximum qualifying level is 30
- Custom Rulesets for v0.1.2 (some of this is not tested fully)
- Compressed pieces in rulesets if they are one of the common pieces, greatly reducing the size of polyomino rulesets
- Gained the ability to keep sonic drop while turning off hard drop
- Gained the ability to set board size in custom rulesets
- Gained the ability to store custom rows in attacks
- Gained the ability to add custom attack lines in custom rulesets
- Gained the ability to change the properties of received attacks in custom rulesets (e.g. defense or interpreting line attack as effect strength)
- Fixes
- Updated the Linux update script to use tar -xf instead of unzip
- Fixed Evolution Purification and Ascension goals displaying the wrong states
- Made the Purification and Ascension point requirements for Evolution clearer
- Made it to where window size is set only if coming from fullscreen
- Got MP3 conversion working again
- Fixed a problem with the music submenu freezing the game a substantial amount if streaming was off
- Fixed Freeform All Clear replays failing to play after rewinding from the end in the case of Not in Queue
- Fixed the garbage meter having its own width
- Fixed a replay desync source concerning moving the piece off the stack (old replays may still fail to play properly)
- Fixed ? appearing in the leaderboard previews instead of →
- Fixed modes creating preview data for uneventful replays
- Bunch of other fixes
- Multiplayer Fixes
- Improved the way rounds start
- Prevented top out from other players in realtime protocol; that desynced player will now send a board state to get synced again
- If a piece with an invalid hash is referenced, a follow-up message is sent to get piece data
- Switched back to realtime data for low player counts
v0.1.1.2 Changelog (from v0.1.1.1) - Quick fixes for multiplayer
Released May 16, 2021
- Fixed not being able to receive custom rulesets from RayRay26
- Compressed the Standard Ruleset a bit more
- Limited chat messages to 280 characters
- Removed multiplayer realtime data until v0.1.1.3 comes out
- You can no longer chat in the pause menu
- Prevented being able to run a benchmark before the intro 40L
v0.1.1.1 Changelog (from v0.1.1.0) - Quick fixes for new menu
Released May 16, 2021
- Remade the Evolution menu
- Added an indicator for Struggle Mode during gameplay
- Fixed the ascension progress not showing in Rise mode
- Email is no longer required locally to update details (though if your account does not exist, you will need one then)
- Save files now have a backup copy, simply change the file type from .sdsfbackup to .sdsf to use (you may lose a tiny bit of progress)
- Chat display now appears above the account button
- Adjusted the benchmark results for gameplay failures
- Made the game use lower-detailed displays if lower-detailed packets are used
- Added the username watermark to the flat display
- Lowered the maximum delta time from 6 seconds to 2
- Hopefully fixed being unable to reconnect after desyncing
- Prevented using the menu while the chat was active
- Using Enter/Return for keybinds no longer causes a glitched menu state
- Pressing Escape to cancel keyboard assignment no longer goes back a menu
- Fixed the tooltip going below the bottom of the screen
- Made the game compatible with running it from any directory
v0.1.1.0 Changelog (from v0.1.0.2) - New Menu & Future Proofing
Released May 14, 2021
- Redid the menu system to make it more intuitive and support mouse controls
- Account system has a better flow
- Various submenus have seen improvements
- Gave the ability to sort replays in the menu by date, version, size, and mode type (it lags a little though)
- Most modes now have result screens
- Some waiting periods are threaded and do not make the game unresponsive (leaderboards, Evolution, etc.)
- You can now play Test mode (renamed from Null mode) while waiting in multiplayer
- WARNING: I might have forgotten a menu somewhere... Could probably break it in specific ways I'm not thinking of
- Added a new mode: Freeform All Clear
- Perform an All Clear or an All Clear Mini within 4 lines each
- The game will end if you make it impossible to clear in 4 lines (out of bounds, imbalance, or a shape not in queue)
- Has a leaderboard
- Added 6 new mino themes
- Gave the ability to set a common piece's color, can be unlocked in the Unlockables or Pieces menus
- Players can now use their own color schemes, which appear in multiplayer and replays
- Added the fullscreen option in Graphics
- Gave the ability to rebind the Pause and Chat controls; also accounted for the corner case of using Enter/Return as the chat key
- Gave the ability to reset your password by yourself, so long as you have access to the associated email
- If not, you'll be able to get it back in 48 hours by contacting the support email
- Timed
- All Clears now give 1 additional attack each
- Combos increment attack every 4 instead of 6
- Pull
- Fixed Pull levels 21 to 30 having no spawn delay, should be easier now
- Separated struggle mode leaderboard entries from non-struggle mode runs; players may need to redo scores in the non-struggle runs
- If you do not update your game, you will be unable to see the struggle mode runs
- Fixed being able to get an Ascension Point merely by topping out at level 21+
- Fall
- Separated struggle mode leaderboard entries from non-struggle mode runs
- Fixed being able to get an Ascension Point merely by topping out at level 21+
- Rise
- Rise period accelerates 2.3 times faster after level 40
- Leaderboard entries that scored in levels 41+ will be stashed in a pre-v0.1.1 leaderboard
- If you do not update your game and you hit level 41, you will be removed from the v0.1.1 leaderboard, and you will be unable to see the pre-v0.1.1 leaderboard
- Separated struggle mode leaderboard entries from non-struggle mode runs
- Fixed being able to get an Ascension Point merely by topping out at level 21+
- Dynamic
- Topping out when not in Arcade Mode enforces a minimum power of what you started with
- You are no longer allowed to start at 10000 power
- You are now allowed to get the Ascension point by getting to 12000 power if you're not in Arcade mode, but it HAS to be 12000 (you can still make qualification progress though)
- Evolution
- Missions start by pressing the Menu Accept button
- Fixed being able to unlock Evolution missions by watching replays
- Fixed multiple problems with qualifying in Evolution
- Fixed 4C-1's Very Hard objective requiring performing the spin without clearing lines
- Fixed missions not being marked as cleared if the player quits to menu
- Fixed record grade not saving locally sometimes
- Fixed replays spoiling mission results and causing Grand Master mode to turn on at inappropriate times
- 3C-2, 3C-3, and 3E-2 have more I, j, and l pieces now
- Reordered V3 kicks to give them the ability to climb stairs (should make 3A-3 easier)
- Modified the priority bag generation to be a bag of bags (generates a bag for every piece)
- Modified the memory generation to avoid making droughts larger than twice the piece count
- Versus
- Mode stage is now based on enemy count, making team battles more reasonable
- AI now has the ability to tuck and T-Spin
- AI now change targets intermittently instead of only when attacking
- AI now has a limit of 20,000 inputs per second (0.5 → 0.05 ms think period)
- AI Versus now has a limit of 4999 CPUs; good luck running that
- Raised the garbage limit in the standard ruleset for stages 1 to 3
- Introduced a Base Attack stat; One vs Many battles no longer have the solo player constantly causing power combo sounds
- Balanced the spirit points rewarded for KOs in asymmetric teams, no longer able to farm in One vs Many
- You can now set the goal points in 1v1
- Online Versus
- Added protocols that control the level of information passed around, which use different kinds of low-detail packets to save uplink
- It cannot go back to realtime data for now, but hopefully this cuts out desyncs
- 1v1 will still send realtime data
- Gave RayRay26 the ability to change versus rulesets in a room using a development version of v0.1.1.0
- AI can now be used; the limit is the sum of everyone's AI Allowance (and the overall participant limit is 999)
- The goal points can also be set by RayRay26
- Utilized packet aggregation to include the AI in the packet updates
- KNOWN ISSUE: rounds sporadically restart and/or end early
- Adjustments
- Players now start with 40,000 spirit points; players of v0.1.0 will receive 40,000 spirit points upon updating
- Bonus spirit points get past the effort multiplier easier
- Buffed the ever living crap out of the kick sets, should let polyominoes twist to more places
- Changed the 0.5 second pause rollover to a 1 second pause cooldown, but also limited the number of pauses to 7.5 (recharges once every 5 minutes, has up to 60 second rollover)
- Made Purification and Ascension qualifications happen earlier in each mode
- Improved preparation for v0.3 concerning how Struggle mode and starting level options affect it
- I7 piece is now registered
- Fixed some asymmetry in some kick tables
- Reorganized V5 and W5 counterclockwise kicks
- Players now have the option to put the Next Queue on the side
- Gray pieces now have a black underlying color
- Line Race countdown begins at 5 seconds if your personal best is less than 32 seconds
- Small change in the rainbow stack effect if you Ascend
- Added a username watermark on the board
- Optimizations
- Heavily optimized the core gameplay loop and got rid of the intermittent pauses in large versus battles; game is up to twice as fast now CPU-wise
- Compressed the standard ruleset size by over 50%, and compressed other parts of the replays
- Various optimizations concerning AI logic to offset the new checks
- Slight performance boost when turning the lights off
- Gave the ability to completely hide the stage
- Fixes
- Replays now store UTC time instead of local time; your previous replays likely saved the wrong timestamps
- Fixed Purification/Ascension/Personal Best data not saving if player quits too early
- Fixed the garbage meter jumping to the next color if it was exactly full
- Fixed the rise meter period not being saved in replay states (Rise replays pre-v0.1.1 still won't play properly if you seek)
- Fixed the orbs retaining their glow after turning off the lights
- Various replay fixes
- Fixed some cases of false replay invalidations
- Replay playback problems are more throughly logged and no longer cover the game with gibberish
v0.1.0.2 Changelog (from v0.1.0.1) - Patch for string parsing
Released February 19, 2021
- Fixed string parsing for players in different regions
- Almost all text is now formatted correctly for players in different regions
- Optimizations for anything text related
- Made it easier to perform power combos in Dynamic
- Fixed the mega fireworks being attached to the board and playing the wrong sound
- Made the game properly run the update script
v0.1.0.1 Changelog (from v0.1.0.0) - Patch for versus and other inconsistencies
Released February 18, 2021
- Fixed alive players in versus carrying over to the next round
- Fixed 1v1 and the beginning of small Eliminations rounds having no opponent sounds
- Various online multiplayer fixes
- Upgraded the O tetromino mini spin to a true spin
- Fixed the V3 180 kicks from being able to teleport
- Fixed the Intro 40L replay having no author
- Replays now display the author during playback
- Made some Evolution objectives easier/less tedious, and added replay compatibility
v0.1.0.0 Changelog (from v0.0.1.0) - Singleplayer Act I
Released February 16, 2021
- Added board power
- Split the definition of Spins into Twists, Spins, Droptwists, and Dropspins
- Twist: occurs if a corner set of a piece is satisfied after rotating; separate corner set for mini twists
- Spin: a Twist where the piece can rotate without performing a kick
- Droptwist: a Twist that used a kick where the piece moves down at least 2 rows
- Dropspin: a Droptwist where the piece can rotate without performing a kick
- Added several board instructions for Evolution mode
- Added 5 singleplayer modes:
- Pull: fight escalating gravity and shrinking lock delay (equivalent of Marathon mode)
- Fall: fight escalating gravity with no lock resets and slow Auto-Shift
- Rise: fight asynchronous garbage rising faster and faster
- Dynamic: the speed of the game matches your ability to keep up (you can breeze through early levels by performing twists)
- Evolution: branching paths with objectives; due to the nature of this mode, it is practically half the singleplayer content at the moment
- 18 classes containing 3 missions each
- 16 conditions that can appear in missions, such as polyominoes, board sizes, fading stack, etc; you are guaranteed to run into polyominoes in each playthrough
- 324 objectives that determine your grade
- Gave players the opportunity to prepare for singleplayer Acts II and IV
- Added multithreading to AI
- Added the ability to adjust Auto-Shift on circumstance
- Added a Null Mode used for testing new control schemes
- Added leaderboards
- Converted the multiplayer rules into a Turing-complete (programmable) language
- Added packet aggregation and low-detail modes to lower traffic for large lobbies (not thoroughly tested yet)
- Added the special server multiplayer option
- Fixed Sonic Drop Tucks only occurring before Auto-Shift activates
- Fixed Initial Hard Drop and the Initial Hard Drop Ghost during Auto-Shift
- Prevented overcoming ∞G with 0.0 ms Auto-Shift Period
- Various replay fixes (but don't be surprised if there's still issues, such as Fall mode)
- Various multiplayer syncing fixes (there are still some left to fix, such as someone leaving, player not doing their final hard drop, chat messages staying on screen, etc.)
- Various optimizations and fixes