Dev Notes

  • "Alpha V" is our internal codename for the next major alpha of Project OutFox, Alpha 5.0; we have a number of new things planned for it, and one of them is a new default theme.

    While Soundwaves served us well as a transitional interface, it was still built around many of the same behaviours associated with StepMania, including a "one size fits all" approach to handling game types that is less than ideal, and dizzying options menus that even we have trouble navigating. Long story short, on Alpha V we plan to replace Soundwaves with a new default theme, which will be modern and better-suited to our current direction.

    Actually, no. There will not just be one replacement for Soundwaves, or two, or three. Our goal will be to give every major game type its own default theme. Each game has its own requirements, including different ways we need to render gameplay, different behaviours we have to simulate, and so on, so it quickly becomes unwieldy to put everything in the square hole as we have in the past. A general goal with these new themes will be a narrower focus, modularity, and improving support for different input methods. We are also aiming to support frequently-requested features, such as song favourites and different sorting methods.

    In this post, we will be previewing just a few of the new themes we have been working on, with a focus on those that have had the most in-engine work so far. You may have already seen in-game footage of some of these new themes in the OutFox Serenity trailer, or teased in discussions on our Discord server.

    Some of these images are mockups, and in any case the designs are subject to change based on feedback and implementation. If you have any feedback, ideas, or questions regarding these Alpha V, we have added a new #alpha5-wishlist channel to our Discord server where you can discuss them.

    pump

    Our new pump theme features a more familiar layout and control scheme, integrated with OutFox features such as our chart statistics and NPS displays, as well as mouse/touchscreen support.

    All screenshots are in-engine.

    dance

    The new dance theme is also being designed with mouse/touchscreen support in mind, carrying over popular features from Soundwaves, but with an overhauled codebase, a revamped workflow, and official support for vertical aspect ratios (portrait mode). The color scheme system from Soundwaves is also being revamped, making it easier to share your creations with the community.

    All screenshots are mockups except for the gameplay screenshot seen below, which is in-engine.

    para

    The para theme is designed to reflect the aesthetic of Eurobeat, downplaying scoring and visual chrome to put a more prominent focus on the gameplay and routines.

    All screenshots are in-engine.

    beat

    The beat mode is also set to receive a major overhaul, and we have some internal design concepts with a redesigned user experience, and a steampunk-inspired design.

    All screenshots are mockups.

    taiko

    This mode will feature a theme comprised of original assets, arranged to resemble a popular franchise involving a Japanese percussion instrument. Though, we've also brought in some of our original ideas, including an optional stats and NPS graph to show just how much of a storm you're drumming up.

    All screenshots are mockups.

    gddm/gdgf

    Also internally known as "concert", this theme is designed for both gdgf and gddm, and has a visual aesthetic inspired by live music. The gameplay screenshots showcase a combination of noteskins, theme-level code, and new theme features introduced on Alpha 4.9.10 that enable a more familiar gameplay layout.

    All screenshots are mockups except for the gameplay screenshot seen below, which is in-engine.

    gh

    Our new gh theme will have a more streamlined look and feel, and a more familiar workflow. We have also been testing out a new system for customizable "backplates" for notefields; while it was designed with gh in mind, it is also usable in other game types with a few simple theme metrics.

    All screenshots are mockups. Backplates are avaliable now in a nightly build.

    pomu

    And finally, Halloween is coming a little early! With a classic design, original characters, and being the first PMS/pomu client with multiplayer support, we hope that you'll have a lot of fun with this.

    All screenshots are mockups.

    This is just a small taste of what's to come; we will have more to share with you over the next few months, so stay tuned! Once again, if you have any feedback or suggestions about Alpha V, visit the #alpha5-wishlist channel on the Project OutFox Discord server.

  • We have released a native, nightly build of StepMania 5.3 for the new ARM-based Macs using the Apple M1 system-on-chip. We've been surprised by how smooth the game runs on this architecture, so we hope you will give it a try and report and issues you encounter.

    Screenshot_2020-12-08_at_22.03.24.png

    The build currently does not support controllers and pads, as we are currently awaiting dev notes on the topic from Apple.

    You can download the build here; please note that this build is NOT a universal binary, and only supports M1-based Macs.

    Thanks again for your support, and stay safe everyone!

    EDIT (12/12/2020): We have controller support on ARM now, which will be included in the next public build.

  • We have been hard at work on OutFox, as well as engaging with the community via other platforms -- such as our Discord server, and occasional development update streams on Twitch. As we approach our first public alpha release -- which will be released on December 15, 2019 -- we will be updating the site to reflect the progress we have been making.

  • Hiya, this is Squirrel, Jousway and Lirodon once again showcasing the development work on the new OutFox branch!

    Remember you can follow the progression using the tracker link at the top of the page. It has been a busy month in terms of development, and we've been beavering away at the code-base to try to bring you some more improvements!

    This month's progress:

    GLU and it's emulation/non-support in Windows/MacOS.

    We also found out that most of the time in Windows and MacOS, there is no GLU support due to 1.2.2 being offered, when the game needs 1.3. This will also need a rewrite to remove the dependency on GLU again, as much of the hardware since 2005 has not supported any acceleration of the GLU functions, so these are emulated on the CPU. Many even consider the inclusion of GLU on GL applications nowadays laughable, as you are slamming the brakes on any optimizations. We will of course, rewrite the code to omit this, so we can push forward performance.

    Vertex/Fragment Shader Errors.

    We discovered a few bugs in the way the driver was reporting the availability of these shaders, and this was due to GLEW not reporting things correctly. We have corrected the check code, and now fragments are being loaded and compiled as expected. It also showed us that many of the GL commands being used, are forcing the engine to be <GL 1.4 and this needs to really be modernized.

    New NoteSkin features

    NoteSkins can now optionally be coded to be usable in any game type, rather than be tied to a specific one. These are known as global NoteSkins.

    There are two major new capabilities for holds and rolls too: a single sprite for an entire hold tail can be stretched to the required length, rather than constructed from a tiled middle portion and bottom/top caps (as they are traditionally done). and there is also support for quantized holds (i.e. a hold's color can match that of the note itself, such as red holds for red quarter notes, etc.).

    Some of these new abilities are showcased in bundled noteskins, such as Paws (a noteskin its creator had a lot of fun making).

    Meet the Appearance folder!

    There is a new folder in the StepMania directory tree known as Appearance, which is used to store customizations can be used across supported themes.

    The Appearance folder is used by the default theme for two new features; you can now load in custom judgement graphics (a feature that users of the third-party theme Simply Love may recognize), and the Toasty system has been upgraded so you can build your own exciting (or annoying) sets of effects to celebrate combo milestones. Both of these features are accessible from within the player options menu before starting a song.

    Giving Clearer Log output.

    The current version of the game spits out a lot of log code, which is not really sorted to be human readable and easy to be used to send to us to debug in the future. We are going to ensure our use of logging is modernised and correctly attributed to the right portion of the game, for example 'Graphics Manager: OpenGL Renderer Version 3.1.0`. In doing this, we will be able to also remove a lot of the unnecessary logging portions in the game loop which should give us another boost to performance.

    Clang modernize checks and code improvements.

    We have begun to move the code to be compliant and standard to C++11 so that it will have less bugs and warnings when compiling on modern systems. The code currently builds on MSVC2017 and linux fine, and we also have a Darwin (MacOS) build compiling without any issues. We have found that a few of the bugs we had with memory leaks on long play times are gone, as well as a crash after 93 minutes on windows 7 has also not shown itself since this patch. We will keep you informed if it returns!

    Visual Studio 2015 and Windows Version Checking.

    It was noticed that when compiling on Windows VS 2015, the compiler would output many errors in relation to the code, and this after some research, was found to be an error in that compiler. It will never be fixed, and we recommend you build with VS2017, as it will not spew these messages. We also fixed a problem with archaic windows checking, and enabled the game/compiler to be windows version aware. Jousway also fixed the NSI to give new options in the installer process, allowing us to have more control and freedom in allowing for mods and new features and functions to be added, while keeping compatibility to older legacy themes and content.

    h3. PRs from SM Mainline.

    Squirrel also added PR's/Suggestions/Help from the Mainline, and this month we added the fix for ghosting on X11 input, a small fix for a %s being shown on translation files, as well as a few small tweaks for sound on Linux.

    (Alpha Code) New debugger OpenGL Loader, and fixed function issues.

    This month Squirrel has been planning to move on from GLEW, as it has a host of problems and adds to some of the complexity of debugging, as well as some of it's own bugs that seem to just be ignored. We will be looking at integrating GLATTER, as it has a unique function to enable us to truly debug the GL code effectively, and as we rewrite the rage code to be non fixed-function, it will be invaluable. The issue with the RAGE engine, is it uses a really old method to draw and manipulate the screen, which is done nowadays by shaders. The system emulates most of this code, but it's horribly inefficient.

    (Alpha Code) Raspberry Pi support

    SpottyMatt generously helped us with a patch and code addition to allow building on the Raspberry Pi 3/3+! Right now it utilises the basic OpenGL in the engine, but we are going to finish the GLES support to give a boost in performance to allow a better gaming experience on the Pi. More news to follow in future months!

    We hope you enjoyed this months progression review, and hope to see you next month!

  • Hiya, and welcome to the first development blog update for project moondance!

    This will be the first of our monthly progression posts enlightening our user-base on some of the things the team have been doing over the month in regards to development and fixing/modernizing the game.

    Firstly, we have chosen to develop from the 5_1-new branch. Why? Well, pretty simple one to answer! The newfield changes removed a lot of support and compatibility and this prevented us from continuing from our 5.0.x project. Secondly, I had a hard time comprehending some of the decisions made in why the changes were made in the first place. So for ease of continuation and simplicity, we chose that branch.

    Although it will be internally known as version 5.3, we've decided to give this particular version a prominent codename as well: "OutFox". To outfox is to be clever and cunning, a skill that will be very useful while working on this code!

    We are active in several branches on our development repo, as this allows everyone to work on something to their talents, and also keeps things fresh in the team as we can always sit and have a chat on different topics.

    This Month's Progress

    You can always follow our work on the "Taiga tracker":https://tracker.projectmoon.dance/, and if you feel like you can offer anything to the project, please feel free to contact us!

    Libjpeg and libPNG removal: Replaced with STB_Image

    It has been a bane of RageTexture in regards to texture support due to the age of the libraries and the methodology in how it loads and supports textures in game. We have noticed that the versions of these libraries are from circa 2005, and are almost as archaic as Rage itself. We have changed the texture support to stb-image which removes library dependency altogether, and removes a lot of the paletted texture problems which are causing problems on modern day hardware. The use of paletted textures has been deprecated since 2004, and it is about time we remove this code from the engine.

    Update GLEW to 2.1.0

    In preparation to remove GLEW completely in favor of a new methodology, we chose to modernize the version first to see if there was any benefits or improvements in it's technique for loading function pointers. It gave a marginal gain, but was disappointing overall. It will be removed in a future build.

    Themes

    A modified version of the Lambda default theme introduced on 5.1 is included in these builds, with OutFox branding, a new blue and gold/orange colour scheme, and other internal performance improvements.