Tidalis:0.409 Beta Release
Notes From The Producer: May 13, 2010
It's been another long stretch with few beta releases, and so again of course this is absolutely feature-packed. We keep hitting these large features that require a lot of behind-the-scenes work and testing (first multi-well play, now VS mode and the AI), and which tend to break a lot of the game until we get them fully back the way we want.
There's a possibility that our upcoming work to get network play added to the game will have a similar effect, but a lot of the preliminary structuring of the code for that has already been done, which hopefully means that the network stuff will be more isolated than the last two big things. Of course, I thought the same thing about the multi-well and VS code, so I guess that's how it goes.
On the bright side, other than network play there aren't any other big features with that sort of huge scope and touch-everything-in-the-game nature. Other than getting network play in place, we're down to adding more special blocks, more items, more modes, more themes, more levels, more story, and then a bunch of fairly modular features like high scoreboards, achievements, gamepad support, etc.
There's still plenty to do, but we're looking good for the July 1 "done with everything" date. Whether or not the game will be fully feature-complete on June 1 or not is a huge question mark programming-wise, but that's largely because we keep doing so much polish as we go, rather than leaving it all to the end. That seems to be for the best, but we'll see how it affects our pre-release milestone dates as we get closer to them.
--Christopher M. Park
New & Updated Levels
- Levels 44-49 now exist and are available on the adventure map.
- Level 50 has been added and is available in adventure mode.
- Level 51 is done and in adventure mode.
- Level 85 has been added, but is not in the adventure mode yet.
- Added Puzzle 2 - 7 and Puzzle 5 - 5.
- Rebalanced levels 37 and 39.
New & Updated Art/Music/Sound
- An all-new title music track has replaced the older title music track.
- A new Temple music/visual theme has been added to the game.
- New, better, Dying animation for blocks.
- Charred, Fire, and Ice blocks now have sound effects for when they die (via being triggered, not via time-out in the case of Fire and Ice).
- Added a new "Vs Garbage" player-versus-player (or player-vs-AI) mode.
- The detailed logic for competitive garbage spawning (which will undoubtedly be revised pretty soon) are here: Tidalis:VS Garbage Calculations
- A new interface for specifying "player rules" has been added to the quick game and custom game menus. Right now Garbage Vs is the only option other than Normal, but more will be added soon. This is where all the various special Co-Op and PVP rulesets will be chosen from.
- When a VS type mode is chosen in single player, there is now a slider for choosing the difficulty of the AI player that will control the second well.
- Additionally, the AI is not intended to be able to play in all modes, or with all special blocks or items. Those unsupported features are now disabled when an AI is selected.
- Added a new Quad Repeater special block.
- Absorbs streams that hit it, but creates new streams of the same color in all four directions. Can only be destroyed by dropping out of the bottom of the well.
- The interface for selecting special blocks in the custom game menu is now much more visually pleasing, takes up less room, and now uses icons instead of text.
- There is now an icon-based interface for choosing a game style in both the custom and quick game interfaces.
- The Quick Game window's layout has been redesigned in general to be simpler-looking and more attractive.
- Made keep-one-column-free-of-specials logic more dynamic.
- Game Styles for the current board are now displayed on the HUD (just above special objectives) in-game.
- Added settings options for assigning mouse, keyboard, gamepad 1, and gamepad 2 to the left or right boards for local two-well play (note that gamepad 1 and gamepad 2 input itself is not yet supported).
- Added Embedded Item Frequency slider and Allowed Items Toggle set to custom game menu.
- Various Eater block behavior adjustments:
- Eaters can no longer be eaten by other eaters.
- Eaters can no longer eat blocks that are part of a chain—they'll hit those and sit until the chain has cleared.
- The effect of the magnets is now less realistic, but much easier to play with. The effect of the magnets is now just in a narrow band between half a block away from themselves and two blocks away from themselves, and it now exerts a constant angular force against streams moving along those paths (rather than one that grows stronger closer to the magnet itself). The overall effect is more cartoony and it's vastly more subtle of an effect, but it's also easier to predict and not so frustrating as before.
- When playing multi-well co-op and one well enters a Loss state, the other board can now keep playing.
- When playing multi-well co-op on a puzzle level, and one well enters a Win state, the other board keeps playing until they win (non-puzzle levels end in victory for both wells if one wins).
- When playing multi-well co-op on a puzzle level with objectives, the objective goal magnitudes are no longer doubled and each board checks progress (and thus win/loss) separately. Non-puzzle levels still double the magnitudes and win/lose via objectives together.
- Added "Revive" buttons under the Ultra-Fast-Forward buttons when playing multi-well, which function as single-board restarts, and are only available when the associated board is in a Loss state. The Keyboard board's revive button is activated via the R key (default key binding). The graphic for the revive buttons is very much placeholder.
- The AI for the VS modes now scales in difficulty with the AI difficulty slider. It scales both in terms of speed of actions and in terms of how large of chains it is allowed to make.
- The AI also now knows how to use the ultra-fast-forward button to make sure that it can play as fast and well as possible (depending on the difficulty level).
- Restart button now available in Quick Game and Custom Game
New Level Editor Features
- Added explicit less-than, equal-to, and greater-than controls to the make-X-combos-of-Y-depth objective type (for the Y variable).
- Added clear-method selection for clear X blocks of Color Y and clear X blocks of Special Type Y objective types.
- Added new objective type: make all columns < | <= | = | >= | > | <> X blocks tall.
- "Clear All (Color|Special) Block" objective types converted to "< | <= | = | => | > | <> X Remaining Blocks (of Color|Special)"
- added < | <= | = | >= | > | <> operator control to "X Chains of Y Blocks", "X Combos of Y Blocks", "X Combos of Y Chains", and "X Clears of Y Simultaneous Lines" objective types (all on the Y variable; no point in doing it on the X variable)
- A new section has been added to the Tidalis wiki with information and formulas about internal gameplay calculations. This is useful for really hardcore players, or for the developers of the game.
- Basic vendor store branding is now supported, and can be expanded on as needed later.
- Fixed a bug that was causing the animation speed to run at a variable rate depending on mouse movement (thanks dumpsterKEEPER for reporting).
- Fixed a bug that sometimes allowed two blocks to be located exactly on top of one another.
- Fixed a number of bugs relating to blocks and hard-landing. Most notably with glass blocks, but also other blocks in general.
- Fixed a bug with falling velocities not resetting correctly after a block hits another block.
- Fixed a bug where the fast-forward/ultra-fast-forward buttons from multi-well games would show through the title screen while the game was paused.
- Fixed the method for calculating when a column is "dire," and how dire that column is, to include blocks that are falling, on top of eaters, etc.
- Fixed a bug that was causing special blocks and dying blocks not to wiggle when their column was dire.
Internal Programming Notes
- FInts have been dropped from coordinates in favor of a system of two scales of int coordinate systems. This allows for easier-on-the-CPU math, the same level of math precision, and sets the stage for future potential changes to the AI system of the game.
- The dragging and hints system logic has been refactored to work better with multiple wells (again paving the way for some future enhancements).
- The coordinates of the mouse cursor are now immediately translated to sim coordinates, which makes it so that there are fewer coordinate system conversions needing to take place. This helps to correct a few offsetting bugs relating to the mouse cursor, as well as helping to prevent future ones.
- The Reset method on GameBoard was becoming unwieldy and was already missing some needed stats tracking resets. The Reset method has thus been scrapped for new Copy, Destroy, SaveToStringBuilder, and LoadFromLines methods on the GameBoard, which makes better reuse of existing logic.
- The GameCycle, ProcessCycle, ProcessingTurn, MustAuthorizeCycleCount, AllowedTurns, and AuthorizedCycles on GameLoop have all been moved to being on individual GameBoards, and thus being ready for multi-computer networking.
- Added a new GameCommand structure for network-readiness, and to support the queue timing of garbage blocks and item drops in local play.
- Added a new set of Configuration.WriteBinarySmallArray methods and Configuration.ReadBinarySmallArray methods, along with general BinaryWriter and BinaryReader parsing logic for GameCommand to allow for hyper-efficient binary serialization of game data across the network, rather than relying on our usual string-based serialization.
- Added a request/response pattern for the dual-host events in upcoming network gameplay.