Advanced rhythm game for Windows, Linux and OS X. Designed for both home and arcade use.
A decision was made to delay some of the more signifigant changes originally intended for 5.1 to a future release, which will be known as StepMania 5.2 (see here for more details), and is in continued development on the master branch. At the same time, a new iteration of 5.1 was forked from the branch of 5.0, which features enhancements and other internal improvements, whilst aiming to be "almost entirely compatible" with content designed for 5.0.x, such as themes.
In other words, the previous preview release made under the version number 5.1, "5.1 -3", is actually an alpha build of what is now known as StepMania 5.2 on the Master branch. This is the first preview release based on the 5.1-new branch, created as a result of the aforementioned fork.
The user data directory has been changed to reflect the new version number;
The Alternate folder preferences can be used to share content such as songs between multiple versions of StepMania.
A decision was made to delay some of the more signifigant changes originally intended for 5.1 to a future release, which will be known as StepMania 5.2 (see here for more details), and is in continued development on the master branch. At the same time, a new iteration of 5.1 was forked from the branch of 5.0, which features enhancements and other internal improvements, whilst aiming to be "almost entirely compatible" with content designed for 5.0.x, such as themes.
In other words, the previous preview release made under the version number 5.1, "5.1 -3", is actually an alpha build of what is now known as StepMania 5.2 on the Master branch. This is the first preview release based on the 5.1-new branch, created as a result of the aforementioned fork.
The user data directory has been changed to reflect the new version number;
The Alternate folder preferences can be used to share content such as songs between multiple versions of StepMania.
A new high-resolution default theme known as Lambda has been introduced. It features a cleaner visual design with a bold color scheme, a more streamlined layout, and is optimized for high definition resolutions. A new noteskin of the same name is also bundled, which is inspired by the visual design of the theme.
While most themes (including the previous default theme) render at an internal resolution of 480p for positioning actors, Lambda uses 720p. Some content, particularly songs utilizing internal BGAnimations and other scripting, may require adaptations in order to render correctly when using high-resolution themes; although this issue is not exclusive to 5.1, it has greater prominence because of its use of a high-resolution theme by default.
The previous default theme is still included as part of the base StepMania package under the name "Legacy", but it will be removed on a future release. As mentioned earlier, 5.1 remains compatible with themes and noteskins that are compatible with 5.0.12.
The DirectInput handler for Windows now supports XInput. (#1443)
"The XBox360 controller driver for windows has a flaw where the DirectInput backwards-compatible driver registers dance pad arrows as a hat and will not allow opposite arrows to be pressed at the same time. This is not a problem in the XInput interface since the arrows are registered as a DPad and each arrow is a button."
Songs can be loaded from profiles on USB drives. Preferences are avaliable to specify caps on song file size, the number of songs that can be loaded, and loading timeout length. On Linux, StepMania must run as root to save USB profile scores. (#1470)
A large number of new ArrowEffects have been added, primarily originating from the OpenITG fork "NotITG". They include new modifiers that can be applied to individual notefield columns, versions of selected modifiers that act upon different axes, offset and speed controls for selected modifiers, versions of selected modifiers that utilize tangent waves, as well as other new effects.
ProgressAlternate
; notes on a frame boundary (for example, if there are 4 frames, notes at 0, 0.25, 0.5, and 0.75 beats) use the previous frame instead. A modification of the midi-solo noteskin called midi-rainbow is included to demonstrate this behavior. (#1621)StepMania 5.1.-3; release notes compiled and Markdown formatted by @kyzentun:
NoteSkins for 5.1 go in the NoteSkins folder now. NoteSkins made for 5.1.-2 will need trivial fixes before they work on 5.1.-3.
NoteSkins for 5.1.-3 and 5.0.x should be able to peacefully coexist.
Remember that NoteSkins for 5.1 go directly in the folder. They are not separated by game type. If you put a NoteSkin for 5.1 inside "NoteSkins/dance/", it won't show up.
The screen for picking a for edit mode has been completely reworked.
Screenshot key can be remapped.
Docs/Themerdocs/5.1_incompatibilities/ThemePrefs_removed.md
The lua config system explained in Docs/Themerdocs/lua_config_system.md replaces ThemePrefs, UserPrefs, and GamePrefs. Having a single system for handling custom preferences is easier for developers to maintain.
CustomSpeedMods was replaced by ArbitrarySpeedMods two years ago. ArbitrarySpeedMods is an inferior version of the speed mod menu that is built into the nesty menu system.
Various metrics and functions removed while removing all traces of the old notefield and noteskin system. See Docs/Themerdocs/5.1_incompatibilities/oldfield_removal_notes.md for details.
Added item_params arg to item_scroller:create_actors. item_params is passed to each item when it is created.
OptionRows is based around picking from a list of choices, not changing a number. So when a number needs to be changed, it's a mile long list of choices, or a list that is too short to give everyone the needed precision. Look at the mess speed mod choices went through.
The nesty menu system has an actor specifically for showing the current value of the number being changed. Each item on the menu changes the value by some amount.
The OptionRows menu system does not have the adaptability to handle dynamic menus. The Noteskin Params menu is one example of a dynamic menu. It allows the player to set options in the noteskin. Those options are created by the noteskin, and can be different for every noteskin. So the menu must be dynamically generated based on the noteskin the player has chosen. When there are two players, they can choose different noteskins. Each player must have their own noteskin params menu.
Dynamically generated menus is part of the core of the nesty menu system.
It is possible to set flags in an OptionRow to only allow one player to use it, but this does not hide the row. The other player's cursor skips over the row. This feels strange and confusing.
Each player has their own menu, on their own side of the screen in the nesty menu system.
Just a random idea I had one day. "Alpha" or "beta" releases get a negative patch version number to indicate that some things are incompatible with the previous release, and some things might not be compatible with the next release. Eventually there will be 5.1.0, and 5.1.1 after that won't break anything more.
StepMania 5.0.12; release notes compiled and Markdown formatted by @kyzentun:
Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.
StepMania 5.0.12; release notes compiled and Markdown formatted by @kyzentun:
Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.
StepMania 5.0.11; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Minimaid driver added for Linux. This is practically identical to the Windows minimaid driver that pkgingo wrote.
Added DisableUploadDir preference to skip saving a score entry to Save/Upload every time a song is played. Generating the unique filename can take several seconds when there are years of scores accumulated. This preference defaults to false.
StepMania 5.1.0 Alpha 2; release notes compiled and Markdown formatted by @kyzentun:
Check the section on Compiling in the release notes for the previous 5.1.0 alpha release. Those instructions still apply.
The backend for fullscreen mode on linux has been rewritten to allow control over which display is used and whether stepmania uses exclusive mode.
All themes use the NewField in gameplay now. The old NoteField actor does not exist on gameplay anymore.
NewField has a special mode to make it use the old PlayerOptions mods instead of the mods that are built into it. Anything that touches the old PlayerOptions mods will trigger the auto detection to put the field into defective mode for that player.
If the beat bars are misaligned and the receptors are shaking when htting play in edit mode, something is triggering the defective mode detection in the NewField. Look for things that touch PlayerOptions and remove them if you're a themer.
This is a system for allowing a noteskin to provide choices to the player that change the behavior of the noteskin. The noteskin creates some variables and decides what to do with them, the theme provides a menu, and the engine saves the parameters in the player's profile.
Lifts are rendered with a hold body preceding them to give the player some warning time. The length of the hold body defaults to .25 seconds or .25 beats, whichever puts it further away from the note. The hold body is purely visual, it is not judged with a hold judgment.
The default theme has a new Player Options screen designed to allow setting all the NewField related options.
The CustomSpeedMods system that reads SpeedMods.txt from the profile is deprecated and its load function is no longer called. Using CustomSpeedMods or ArbitrarySpeedMods will trigger the defective mode auto detection.
The ApplyGameCommand function has been removed. Everything that it did has been possible through other functions for a year, so it's obsolete.
A lua based alternative to ActorScroller. Docs/Themerdocs/item_scroller.md.
The JudgmentUnderField and ComboUnderField metrics are no longer used. The judgment and combo must set their draw order to control whether they are under notes or not. The draw order for the judgment and combo works the same as for a layer in the NewField. This allows players to choose different settings for judge and combo placement.
A lua based system for per-profile settings. Designed to save arbitrary lua tables. Read Docs/Themerdocs/lua_config_system.md.
Graphics/Notefield board is not loaded by NewField. Create Graphics/Notefield layers instead, which returns a table of actors that are rendered by draw order.
Graphics/NoteColumn layers is loaded by each column in the NewField and also drawn in order of draw order.
StepMania 5.1.0 Alpha; release notes compiled and Markdown formatted by @kyzentun:
This alpha release is primarily for noteskin authors and theme authors who are interested in creating noteskins or using the new features. If you are not a noteskin author or theme author, you probably do not want to use this 5.1.0 Alpha release.
The 5_1_0 branch uses submodules for some external dependencies like ffmpeg, so they are not bundled. As a side effect, if you click the "Download ZIP" button on github to get a source zip, you will not be able to build that zip.
If you are not compiling from source, you can ignore this section. The linux tar.gz attached to this release was built for amd64 debian.
To get around this problem, these are the steps for fetching the 5_1_0 branch source:
git clone --depth=1 -b 5_1_0 https://github.com/stepmania/stepmania.git
cd stepmania
git submodule init
git submodule update
(if someone wants to submit instructions for doing the same with a gui,
gui instructions can be added.)
The --recursive
flag is not used in the clone command given above
because some submodules like cppformat have their own submodules that are not
needed for building or running stepmania.
After the submodules have been updated, compiling can be done in the same way as on the master branch of stepmania.
The new systems in this alpha release are not in their final form. They will be extended and modified based on feedback from noteskin and theme authors who create new content. Keeping the systems simple and allowing new people to learn them gradually is one of the goals.
This is the simplest one, so it is explained first. The changes to RollingNumbers were more of an attempt to improve it than a serious rewrite like the other new systems. Changes to RollingNumbers are fully documented in Docs/Themerdocs/5.1_incompatibilities/RollingNumbers.md.
A new noteskin system has been created. The goals of the new system are to
provide a solid base for future development, clear out cruft, remove metrics
from noteskins, and provide more advanced features.
The new noteskin system is fully documented in NewSkins/default, which is an
example noteskin explaining all the features and demonstrating some of them.
NewField is a completely new notefield system. It gives the theme more
control over every aspect, and is self contained.
Initial documentation is in
Docs/Themerdocs/5.1_incompatibilities/NewField.md.
The new notefield system also has a completely new modifier system. This is
extensible, predictable, and documented. Figuring out exactly what a
modifier does no longer requires digging through ArrowEffects.cpp. Detailed
control over exactly what the arrows do is possible.
Full docs in Docs/Themerdocs/5.1_incompatibilities/NewField_mod_system.md.
Because the modifier system does not use PlayerOptions, large parts of the
options screen do nothing. Mods that change the steps in a chart like
Shuffle work the same, but mods that change the appearance of notes like
Dizzy do nothing. This is because the system was not designed with OptionRow
in mind (I hate OptionRow, it can't do anything I want to do, I don't use
it).
Instead, the NewField relies on the theme to set mods through lua
function calls when ScreenGameplay starts. To assist themers, _fallback
provides functions for setting speed, tilt (distant), mini, and reverse by
reading them from PlayerOptions. There are also functions for setting hidden
and sudden mods (with control over exactly where the line is, and only
affecting note alpha. So no white flash), but they do not read from
PlayerOptions and must be called directly.
A future version will probably use lua option rows and a global lua variable
to store the mod choices from the options screen before applying them on
gameplay.
NoteField, NoteDisplay, ArrowEffects, NoteSkinManager, and (most of) PlayerOptions will probably be removed in the next release.
It would be nice if both players were not forced to the same style. Everybody tries to skip past style select quickly, so it seems obstructive. If player's aren't forced to the same style, and the noteskin controls column widths, what point does the style have? Changing between styles on music select is already possible in more advanced themes. This will cement that, and allow more freedom when picking what to play next.
StepMania 5.0.10; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Windows users are required to have the Visual Studio 2015 Redistributable installed. All Windows users must have the x86 version of the runtime installed. All Windows users who are on a 64-bit operating system are also advised to install the x64 version as well.
Cmake is now required for compiling Stepmania. Read Build/README.md
for instructions.
Lots of people came asking for help, so this bears repeating.
The thread in the release forum has been updated with instructions for compiling on Linux.
The linux tar.gz attached to this release was built for amd64 debian.
Additional compilation notes are found at the bottom of this document.
StepMania 5.0.9; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Cmake is now required for compiling Stepmania. Read Build/README.md for instructions.
The thread in the release forum has been updated with instructions for compiling on Linux.
There is a new screen for interactively adjusting the variables that already
existed in the preferences for dealing with overscan problems. This allows
editing the CenterImage* preferences without restarting StepMania to set them
so that the whole image appears on screen.
This currently handles the aspect ratio wrong, so it's not a perfect overscan
solution.
The OptionsListQuickChange, OptionsListLeft, and OptionsListRight messages now have a Selection parameter that has the id of the selection the player moved to.
If you see this screen come up, you need to fix the InitialScreen metric in your theme.