Freefall cover
Freefall screenshot
Android Steam
Genre: Quiz/Trivia, Indie

Freefall

HTC Vive VR Issues

This is just a quick notice about the recent VR Update. Some issues have been discovered with VR mode on the HTC Vive and I’m currently looking into these. During development I have only had access to an Oculus Rift for testing SteamVR so I’m hoping to gather as much information related to these issues as possible.

If you have a Vive and are experiencing these issues, the best thing you can do to assist me in fixing them is to switch to the “tangerine” beta branch (in the Properties window for the game on Steam) and add -debug to the launch parameters in the first tab of the same Properties window.

After running the game and closing it, switch to the third tab in the Properties window and open the game directory on your hard disk. There should be a log.txt file that contains debug information intended to assist me in solving this issue. If you can create a bug report in the Discussions section of the Freefall Steam Community with the contents of this file, I’d be very grateful and should be able to solve this issue more quickly.

Thanks again everyone for bearing with me as I try and resolve these issues.

VR Update (v0.5.0)

A new version of Freefall is now available for download! The VR Update adds SteamVR support and overhauls the input system to unify support for keyboard/mouse, controllers, and VR controller devices.

The VR Update has been a long time in the making, requiring large chunks of Freefall's engine to be rewritten and most importantly demanding a complete overhaul of the previous input system. The engine now uses a powerful actions system, allowing multiple input methods to be bound to the same action to ensure consistency across all our supported input methods. The new actions system also opened the door for VR thumbstick and tracking support, allowing us to do some complex stuff to let you play the game with just the VR headset and controllers.

Here's a more comprehensive list of changes:

* Add support for SteamVR. Freefall can be launched in VR mode by selecting the appropriate launch option in Steam, or by running the executable with the -vr command line option.
* Add x/y axis inversion options. These options are available in Options -> Controls.
* Add head tracking support for in-game movement.
* Add VR controller thumbstick support for menu navigation.
* Add VR controller trigger support for switching between levels in the menu.
* Add VR controller tracking support allowing the player to move the controller while holding a trigger in order to 'drag' the game world in their movement arc.
* Add mouse selection of menu items in the menu system. This has some known bugs right now, but we're working on fixing it.
* Add new graphics option for Bumpiness, adding random-looking bumpmapping to the world when enabled. This option is available in Options -> Graphics -> Bumpiness, and only takes effect when Lighting Realism is turned on.
* Add new graphics option for menu UI scaling. This option is available in Options -> Graphics -> UI Scale, and will only affect menus where the size of menu items has not been decreased due to screen space constraints (for example on the Options -> Graphics menu when the window height is small).
* Add Back menu item to all sub-menus, allowing for less confusing menu navigation.
* Rewrite sprite and text rendering routines to allow proper mapping of sprites/text onto a virtual HUD inside VR.
* Reduce bloom bias value to prevent over-bloom in VR.
* Fix a bug causing player rotation to slow down at framerates lower than 60 and speed up at framerates higher than 60.
* Fix a bug on macOS that could prevent the player rotation from ever slowing down (creating 'fun' drifting gameplay).
* Fix shader issues on all graphics cards.
* Fix shader issues on Intel graphics cards.
* Various minor performance improvements and bug fixes.

Progress

Hey everyone, I just wanted to give a quick update on the current status of Freefall, as the last update was at the beginning of October and I realize it's been 2 months since then, without any information about what's going on.

In short, I made a mistake a few months ago when I planned out my development timeline. I significantly underestimated the amount of work that would be needed for important features like multiplayer. Loads of extra stuff has popped up that I didn't originally think would be necessary.

One feature I was excited to work on was Philips Hue color lightbulb integration. I hinted about this a couple of updates ago, and my goal is to allow players to set up their lights to complement the color of the world in Freefall in real-time. This feature has forced me to consider many things, from networking, to user interface design, to designing a better, more robust local config system. It's still coming - I've not given up on it - but it's going to take a bit longer before it's anywhere near ready for everyone to use.

I've also spent quite a long time trying to tidy up the game code, the engine code, and the build system, as I kept hitting blockers between different platforms (Windows, macOS, Linux) that forced me to rethink a lot of stuff. I'm going to get a bit technical for a moment - the game and its engine are both written in C++, and part of what I'm doing right now is simplifying, tidying up, and rewriting big chunks of the code base to use features from the latest version of C++, C++17. I've also been trying to rewrite any unsafe code to eliminate potential bugs from popping up later down the line.

Part of the work I've done for the networked multiplayer system has involved writing a basic physics engine sort of thing, as having something like that will allow me to more easily keep clients in sync without inconsistencies popping up. There's a lot more to be done before networked multiplayer can be a thing in Freefall, but I'll keep you updated on the status of this.

Finally, I’ve begun thinking about how to write a Vulkan renderer for Freefall’s engine. OpenGL is pretty good, but it has its limitations and I’m very interested in Vulkan as it’d allow me to do stuff like caching for the game’s raymarcher, to avoid recalculating everything, every frame. This idea is still in its early stages, so I can’t say much else about it yet.

I'm hoping to get an update pushed out before Christmas, as there are some performance improvements in the current development version. Whether or not some of the bigger things I'm working on will make it into this update is still unclear, but I'll continue working hard to get this stuff finished.

Technical Update 3 (v0.4.0)

A new version of Freefall is now live! Technical Update 3 focuses almost exclusively on the game's underlying engine and build system. Countless changes have been made to these areas - far too many to list here - and you can read about these changes in more detail in the following announcement.
http://steamcommunity.com/games/620280/announcements/detail/1477601466712899271
Most of the changes this month are described in the above announcement, but here's a list of the notable changes to the game itself.
  • A realistic lighting model has been added to the game. This is disabled by default, but can be tuned from 0-100% in Options -> Graphics -> Lighting Realism.
  • A new graphics option, Specularity, has been added to accompany Lighting Realism. This option affects how shiny the game world looks, and only takes effect when Lighting Realism is turned on.
  • Very minor performance improvements and a couple of bug fixes.

Most of the tedious work on the game engine is complete, but there's still some other stuff required before I can put more effort into the game itself. However, I should be able to get a bunch of game-related changes done by next month - a lot more than this month, for sure.

Upcoming Technical Update 3

I was intending to post this announcement much earlier, but this month's development of the game and its engine have taken a lot more time than I originally anticipated. This is just a quick update to explain a few things about what's changing under-the-hood this month, as there are some significant changes.

This month I've been working largely on Freefall's game engine. Several things in the engine have been bothering me for a while, and up until now, it's been too big of a task to try and fix them, but I decided this month to do them all at once. These won't be relevant to you, the player, but it will have a huge impact on future development of Freefall.

I started by redoing my entire build system, so instead of managing separate projects for Windows and macOS, I now manage a single, cross-platform, build project, which makes it a lot easier to unify things, keep them tidy, and also begin to add Linux support to the game. After this, I reorganized every code file across the engine. Previously, all the code files were split arbitrarily across 4 different directories, but now they're all in one place, organized into a neat hierarchy too.

Once this was done, I took up the task of renaming everything in the engine code to make it a lot more consistent and easier to understand. This has been the biggest task of the whole month, and it involved modifying every file across the entire engine, changing thousands of lines of code, as well as splitting sections out into new files to take advantage of the new hierarchical structure.

At this point, I began to split Freefall out of the game engine entirely. Up until now, the game has been sort of intertwined with the engine, and so the "engine" has really just a portion of the game. However, after tireless nights, I've finally managed to move all the game-related code out of the engine, meaning the engine is now entirely separate. Again, this isn't going to affect players at all - at least, hopefully not - but the advantages it'll bring for the future development of the game are very important.

There are still other engine changes that I'm hoping to complete before the end of the month. I'm hoping to get some game-related things into the update, but unfortunately the engine changes may end up taking all of the time. I gave a teaser about an upcoming feature in the Technical Update 2 announcement, but this won't make it by the end of this month.

I hope this gives some clarity, in advance, about what was actually accomplished this month, and why there are no new game features. I've still got a ton of things planned, and this is just one step on the road to adding those things to the game. But for now, see you at the end of the month for Technical Update 3!

Technical Update 2 (v0.3.0)

A new version of Freefall is now live! Technical Update 2 focuses largely on performance improvements. If you were seeing a low framerate previously, your performance may increase by up to 400%, but this will depend on your hardware. Here's a list of the notable changes.
  • Chromatic aberration can now be enabled in Options -> Graphics. Enabling chromatic aberration may decrease your performance slightly.
  • Menu config options are now available for Master Volume, Music Volume, and Effect Volume. These can be found in Options -> Audio.
  • The UI has been updated to be a little bit cleaner and more consistent. It should also be slightly more efficient now.
  • Text rendering has been rewritten to draw text per character. This vastly improves performance for dynamic text such as the in-game level timer.
  • Assets can now be loaded asynchronously to avoid stalling the game while loading. For example, music files now begin loading at start-up while you're in the menu, and they should have finished loading by the time they're needed.
  • Audio assets were previously being loaded in a super inefficient way. Now they're being loaded in a better, faster way.
  • Shader variables are now uploaded to the graphics card in batches rather than immediately, which should offer a slight decrease in CPU overhead and a slight increase in graphics performance.
  • The build date/time being printed at the beginning of the engine log no longer shows July 16, and now shows the real build date/time.
  • Various other bug fixes and tweaks, and a couple of minor optimizations that won't affect most players.

I'm going to post another announcement soon, focusing on the changes coming next month in Technical Update 3, the current state of things, the plan for the future, as well as a few other interesting things...

Hue?

Technical Update 1 (v0.2.0)

A new version of Freefall is now live! This update is largely technical in nature; here's a list of the notable changes.
  • Borderless fullscreen support has been added. Fullscreen can be toggled either in Options -> Graphics or by pressing F anywhere.
  • Audio mute can now be toggled by pressing M anywhere.
  • Camera smoothing can now be changed in Options -> Controls.
  • The mouse cursor is now only locked during gameplay, and is unlocked at the menu screen.
  • Various tweaks, optimizations, and bug fixes.

Early Access Roadmap

In this post, I'm going to give an overview of everything that's currently planned for Freefall during Early Access, as well as a rough timeline of when all of these features are expected to be implemented. Bear in mind, this roadmap is only an estimation of how the development will go, not necessarily a fixed plan, so please take everything with a grain of salt.

Over the next couple of weeks, I'll be tidying up a lot of the game engine code and fixing the bugs that have been exposed since the Early Access release. It's important that the game has a strong and stable engine that will pave the way for the development of new features.

During this time, most of the updates will be highly technical in nature, so don’t expect many/any new features being added. One big thing I want to investigate quite soon, though, is adding support for Steam OS (Linux). I’ve already done some preliminary testing and this will likely be pretty quick and easy to add.

I’d also like to solidify things like achievements and leaderboards at this time. I’m not saying that all (or any) achievements and leaderboards will be implemented during this period, but I’d like to, at the very least, have concrete plans for how both of these will work. In particular, I want to support leaderboards both for standard levels and for custom player-created levels in the future.

The first big addition to the game will be a turbo mode, allowing players to fast-forward time, increasing their speed in return for a time bonus. This will require an overhaul of the audio engine to allow time shifting of the music, as well as some way to keep the music always in sync with the current time.

At this time, I’d also like to look into ways to generate levels from music automatically. The way I see this working would be for an initial level to be generated from imported music, as a starting point for allowing further customisation by the player to make any tweaks, changes, additions, etc, so I’ll be working on a way to create and share custom player levels at this time too.

This next one is a biggie: multiplayer support. The current engine is written in such a way that may make it difficult to implement any multiplayer stuff, so this will probably require quite a significant rewrite of the engine. Right now I’m unclear on how long this could take, but ideally I’d still like to do it. To clarify, I’d like to support both local and online multiplayer, experimenting with both cooperative and competitive gameplay modes.

The future? There are a bunch of little features that I’d like to try out at some point during Early Access. I’d like to add Steam VR support at some point. I’d also love to investigate whether or not it’s possible to port the game to iOS, although this is probably less relevant to Steam players. There may be other features and changes that pop up later in development, so I’ll be reviewing this roadmap quite regularly to make sure everything still makes sense, and adjust as needed.

I’d like to be clear about something. After the game exits Early Access, I want to continue providing updates. Most of these will be technical in nature (bug fixes, etc), but I’m not just going to abandon the game. Freefall will only transition from Early Access to full release when it feels ‘done’, but if a great new idea comes up some time after that final release, I’ll happily investigate adding it to the game.

In the long term, I do intend to use this engine as I work on developing future games. The reason I’m mentioning this now is because I intend to keep engine compatibility with Freefall for the foreseeable future. This means that the game will continue to receive engine updates, benefiting from any performance, stability, and graphical improvements.

I hope this has served as a comprehensive outline of Freefall’s current development roadmap, and please don’t hesitate to ask questions in the General Discussions forum on the Community Hub. The whole point of this roadmap is to give an outline, so there are undoubtedly some unanswered questions that I’d be happy to cover in more detail.

Early Access Release

We're finally here! Freefall is now officially released into Early Access!

I feel I should begin immediately with an apology. Freefall was originally in development back in 2015 but, due to reasons I won't go into here, I halted work on the game until March this year. I wish the game could have seen the light of day much sooner, but I'm thrilled to have been given that opportunity later than never.

Since March, I've been working really hard to get the game up-to-scratch for a release, but I have to admit that the game isn't as far along as I'd hoped it would be by now, partially due to some bugs that took crazy lengths of time to resolve. Nonetheless, I'm not going to delay the release, as all the stuff that didn't make it will still be completed during Early Access.

I'm going to be posting a detailed overview of what's currently in the game as well as everything that's planned throughout Early Access, but for now, here's a summary of the current status.


    <*>The level gameplay is provisionally complete, by which I mean it's in an acceptable state but may undergo additions and tweaks throughout Early Access.
    <*>The Steam Controller API is fully supported. This should work with any Steam Controllers, PS4 controllers, Xbox controllers, and generic gamepad controllers enabled through Steam Big Picture mode.
    <*>A bunch of graphics effects have been added. These are all cosmetic but the intention is to allow players to tailor the aesthetic of the game to their precise liking. More of these will come later down the line, but for now functionality is more important than beauty.
    <*>Three provisional levels have been included with the release. These will almost certainly undergo tweaks and changes, but the principle of each level should remain the same.
    <*>Game options are stored in Steam Cloud, and performance-related graphics options like Base Detail are stored per-machine to avoid syncing high-quality options to a low-performance machine.
    <*>Provisional achievements for total time played in-game have been added. These are not necessarily final, but they probably won't change much, and more achievements will be coming soon.
    <*>Leaderboards are under construction, but I'm still trying to figure out the best way to handle these. I'd like custom user levels at some point down the line, and it seems like a shame not to enable leaderboards for these, if possible. More investigation required!

    I've tried to test the game on a variety of different devices to make sure it runs efficiently and actually works at all, and I want to give many thanks to the team of play-testers who have given me feedback and worked with me to debug various graphical and gameplay issues.

    Having said that, I can't imagine that there are no remaining bugs, gameplay issues, unintuitive features, etc, so if you have any feedback, please don't hesitate to open up a thread in the Freefall Community Hub and I'll see what I can do to resolve your issue.

    Until next time, happy falling!