Project OutFox 5.3 Alpha 4.9.8 released

“An Alpha is never late, it arrives precisely when it means to!”

Project OutFox 5.3 Alpha 4.9.8 has been released! There is a lot to go over with this release, including new game modes, user-facing features, and other internal bug fixes and improvements.

Gameplay features

Game types

One of our major goals with 5.3 has been to improve its various gametypes, and add new ones never implemented in StepMania before. Many of them have been neglected for years or even a decade, so they have been buggy and incomplete.

Alpha 4.9.8 contains improvements to a number of gametypes (including new styles, and updates to the parsers for BMS and PMS), as well as one brand-new gametype:

  • gdgf (renamed from “guitar”): We have added a 6-fret style. This mode and its sister drum gametype gddm will support a DTX loader in the future, but you can also use the built-in editor to author drum and guitar charts in the standard .SSC format too.
  • popn: This mode has been around for a very long time, but has not really had any support or been looked at since before 2010. It was side-lined into the BMS loader, which actually broke a lot of the needed changes PMS actually uses, and as a result most PMS files with 7 or 9 lanes, would be added to the game as beat 10-lane or 14-lane charts. We thank the anonymous reporter of this bug, as Squirrel took the time to investigate it and we decided to return a new modernised PMS loader to the game, which now correctly loads PMS songs as they should be. This also removes the oddity and edge crashes when anyone wished to play this mode on OutFox. With these changes. we have been able to load packs such as Colorful Channel with no issue.
    • The new loader can also handle long notes, the 06 (POOR), 07 (BG2) and 0A (LAYER 2) BGA channels, and the ITEM channel.
    • In addition, we have support for 3-lane (battle), 4-lane, 5-lane, and 7-lane charts, while community member Daniel has contributed several new noteskins specifically for popn mode too.

  • para: A double style has been added.
  • techno: 9-panel and 18-panel styles have been added. In addition, a new version of Broadhead with column-based colors has been added as a global noteskin and as the default for techno.

  • gh: A new 5-fret (and 6-fret coming soon) gametype based on a collection of popular games that used a guitar-styled controller to press frets and strum along to bass and guitar parts of a song.
    • It can load charts in the .chart and .midi formats, and supports co-operative multiplayer (i.e. one player can play a bass or rhythm guitar chart while the other plays lead guitar, for example).
    • To implement this gametype, new note types were added, and internal changes were made so that its code doesn’t have to be squished around dance-centric code.

All gametypes have access to features such as the built-in chart editor and modifier systems, allowing you to extend your content to as many as 52 styles in 14 gametypes as of this release.

Most gametypes currently have a “preliminary” implementation, meaning that they are functional but may be missing features. They also run within the default Soundwaves theme, which was primarily designed for the dance gametype and its associated paradigms, and may not necessarily work well with all gametypes. The next phase of implementation will be to give each gametype a tailored theme and user experience, so that they will no longer have to be shoehorned into an interface they aren’t meant for.

Most of these modes are sadly-neglected and have been without support or a maintainer for upwards of a decade, so be a touch sympathetic to them if you decide to take the time to explore, they will be given the love they deserve. We are going to stop the trend of “adding new stuff then doing nothing with it” that was so common in the project we are formed from.

Given that we now have more gametypes that aren’t step-based over those that are, we have also made a decision to reinstate the Project OutFox name for our builds going forward rather than StepMania. None of this means we are abandoning step games, though.

LiftHolds

We have added a new option for hold and roll tails known as a “LiftHold”, where the player must let go at the end of the hold. You can add them to charts by using DL instead of 3 to end a hold or roll in the .ssc file, while a modifier is available to change all holds and rolls in a chart to LiftHolds.

lifthold-tail.png

New pause menu

Due to limitations in how pause menus are currently implemented in-game (we need to change it in order to support the new BGA layers needed for for BMS, PMS, and DTX. Plus, since it was an actor in ScreenGameplay overlay, it became invisible if a song [such as the majority of mod files] toggles its visibility), we have made a new implementation of one within the fallback theme.

115640138-27f26a00-a30e-11eb-94f1-6cb697b01ace.png

It appears instantly once the Back button is pressed; we may restore the existing “Hold Back to give up” behaviour as an option in the future.

Theme developers can enable the new pause menu by setting the the metric UsePauseMenu=true under [ScreenGameplay]. A basic menu design is provided, but it can be customized by themes. We have maintained backwards compatibility with themes which do not enable it.

Technical changes

Timing changes

Since Alpha 4.9.7GG we have slightly adjusted the renderer pipeline to optimize how we deal with frames within the kernel timer of the OS. This is to prepare for new sound/rendering drivers coming in the near future, but as we’ve found with a lot in this game, baby steps to fix little blockers before we do major updates. We also have removed more of the Rage engine in favour of modern mathematics algorithms, and this has needed a slight tweak to the order on how we draw things.

if you find your median timing skews early or late (like the example below) after migrating to 4.9.8, take a moment to re-calibrate your offset.

115966525-dcb2a400-a525-11eb-9888-538f322ba115.png

Video upscaler

We have implemented the ability to change the scaler algorithm used by FFmpeg for videos in Project OutFox, via the preference VideoUpScaleFilter. If you have an older system, take the time to experiment with the different algorithms and see how it affects your performance, as this will add a little load onto your system.

  • 0 - none (default; recommended for Raspberry Pi and low-end devices)
  • 1 - fast bilinear
  • 2 - bilinear
  • 3 - bicubic
  • 4 - X Sharpens + Contrast
  • 5 - Point
  • 6 - Area
  • 7 - Bicublin (recommended)
  • 8 - Gaussian
  • 9 - Sinc
  • 10 - Lanczos
  • 11 - Spline.

Input

We have added a new preference, UsingArcadePads, which will allow you to use the input driver for Python boards natively without any freezes. As per the “starworlds” StepMania branch, you need to set InputDrivers=Python23IO,SDL in Preferences.ini. This will set up your board driver, and allow you to use keyboard/XInput/Bluetooth controllers to control the game while you’re on your pad (if you exclude SDL as input, you will have no keyboard input!).

You will need to set UseOldJoystickMapping=0 as well, so the game will initialise the XInput controller driver alongside your Python board. This preference only currently supports the Python23IO driver, but will be expanded to Reflex and other drivers in the future.

Release notes and download

You can see the full changelog and download links for Alpha 4.9.8 here on GitHub, which has details on the other improvements and bug fixes featured in this build.

Give all of the new modes a try and be sure to give us your feedback! You can visit the new r/OutFox for support and discussion of Project OutFox on Reddit, and stream Project OutFox on Twitch.

OutFox Community Pack

We are still accepting applications for music contributions, graphics artists, and charters for the OutFox Community Pack project. With the release of Alpha 4.9.8, we have added a series of new channels to the Project OutFox Discord server for organizing submissions, as we formally begin the process of producing the pack!