Hello, hello!

I’ll be honest. I’ve been kinda struggling to find a good way to follow up the absolutely massive news of the previous blog post. I mean come on, how are we supposed to follow up that news…?

… Well, with a kickass changelog, that’s how! :)

A Very Bright Future Ahead

If you were living under a rock for the past couple of weeks and somehow missed it (or want to read it again, like I’ve been doing repeatedly), Momentum Mod has been granted engine access from Valve! You can read more about this and our partnership with the Chaos Initiative team here: https://blog.momentum-mod.org/post/636153097782280192/you-got-a-license-for-that

There’s been a ton of things developing since then, so to keep you all updated:

Kowalski, Analysis

The new engine and all of its code is absolutely fascinating, but extremely overwhelming. Seeing the guts of how things work from other Valve games always fascinates me, but it’s been personally a lot to take in.

But oh, the progress we’ve made!

The overwhelming size and scope of the entire engine hasn’t stopped our team of dedicated developers from jumping in, cannonballing into the deep, green-and-brown, dummy-thicc mud that is the full Source Engine codebase. We’ve been primarily working with the Chaos Initiative developers on prioritizing what needs to be removed, what needs to be shared, learning structure of build tools, best code practices (including a proper formatting file this time around!) and dependency handling, and more!

Y’know, fun nerdy code stuff!

Okay fine, I have a couple of teaser photos to give you all, because yes, we do have a build “running” on Chaos, but it has quite a bit to go! I’ve personally taken 2 weeks off work for the end of the year to sit down and work on the game (and relax too, I suppose). We want to get a build of Momentum on Chaos out to playtesters by the end of the year!

Belated Spooktober cubemaps~

Belated Spooktober cubemaps~

Just kidding, all good!

Just kidding, all good!

Coming from ivy, out middle, and through your connector, in a game near you!

Coming from ivy, out middle, and through your connector, in a game near you!

VGUI ain’t workin’ quite right yet...

VGUI ain’t workin’ quite right yet...

Nudge nudge, wink wink~

Nudge nudge, wink wink~

You can maybe even find some more in our Discord server, but it’s a secret, so don’t share that with absolutely everyone you possibly can, okay!?!

The New-ish Release Schedule

One of the problems I’ve had with the previous way we did things was our release process and “schedule.” We were getting pretty good about having semi-regular game updates, but this meant that bugs could see months of playtime at once when it had been fixed on our develop branch for all that time.

So what are we going to do with our new engine coding and release process is more of a “nightly” release schedule. We will be pushing regular, stable builds to Steam as we fix key bugs or implement small Quality of Life features. These will be considered “silent” (no grand announcements) pushes, ensuring that our playtesters are always on the latest version, with communication perhaps focusing on the specific things pushed and confirming fixes or gathering feedback.

Major (or otherwise game-breaking) features, such as our port to Panorama, will have dedicated Steam beta branches to help get in-development feedback. This is going to put much more emphasis on our External QA team, as there will be plenty to break, test, and enjoy.

Full release milestones (like this one) will still have their normal milestone blog posts and announcements as we hit them, but the goal is to place playtesters on an always-stable version of the game at all times, so that repeat bug reports aren’t a problem, and we get feedback for things gone wrong much, much more quickly. After all, even internal playtesters can’t build the game now, so we need to have a regular update cycle to be able to properly internally test things anyways!

Oh, six too?

And to celebrate our engine access and going closed source, we will be creating a new public release for those looking to evaluate the game. It’s been a while (January 2017 was how long ago?) since we pushed 0.6.2, and we haven’t been pushing “public” builds due to fear of people thinking the game was done. But we want the community to enjoy the new modes added, and most importantly, the immense amount of bugs fixed since then.

So, we went ahead and created a “public” ““release”” of 0.8.7, found on our game repo’s releases page.

I want to reiterate, right here, that the online functionality does not work. This means that, unless you have a Steam key for the game:

  1. Runs do not submit.
  2. No maps are available for download with it.
  3. Our site does not track your progress.
  4. Game mounting is a bit of a manual process.
  5. Steam lobbies do not work.

This build is just to give those looking to try out the added modes and potentially map for them as we work towards future versions of the game. 0.6.2 isn’t going anywhere, it just won’t be promoted as “the alternate way to try Momentum in the meantime,” this new “public” 0.8.7 version will be.

Keys will still be given out in the priority list found in the FAQ channel in our Discord server, including any and all contributions to our other open-source repositories!

Absolutely Mapbased

Have you heard of the Mapbase project? It’s a wonderful project that adds a ton of fixes, other-branch functionality, and more to a default SDK 2013 build, completely open source. Please go check them out and support their project, because this section has improvements we were able to use thanks entirely to the Mapbase team!

Xen was hard at work in this update porting improvements made by Mapbase, on top of a ton of miscellaneous mapper requests and quality-of-life improvements! He actually started much earlier than 0.8.7, getting the majority of work done by the time 0.8.6 was wrapping up. So if you’re surprised by how quickly this update came out, that was a major reason why!

You can see the full list of added entities and improvements from Mapbase on our docs page about it. If you’re a mapper, we strongly recommend you check it out, there’s a ton of good stuff in there!

It’s kinda hard to show off all the cool stuff, but some of the things that we’re really excited about for mappers are:

Hint (Game Instructor) System

This system will allow mappers to have detailed instruction for the player, and you can see more info about how to use it from the env_instructor_hint entity. We will be using this entity a lot during our campaign, but mappers for the game can get a head start and use it for their upcoming maps!

Explosive Teleporting

Gimmick mappers unite! You can now successfully teleport the explosives of a player, reorienting them to the destination as well!

Depth of Field Effect

Have something you want to have the player focus on, that’s up close? This effect is used in Alien Swarm and later branches of Source, and can now be used by mappers to draw emphasis on something in their maps!

There have been a ton of smaller improvements that I will list below, but we urge you to read the full changelog, and browse the docs website, specifically the entity subsection, as it can cover everything more in depth, including how to use them!

  • `skybox_swapper` for changing 2D skybox texture without requiring map reload
  • A lot more inputs/outputs to BaseEntity
  • Many many new filters
  • Many many new logic entities
  • Added game instructor system
  • Duration value to particle systems
  • Ability to directly start the particle system effects on player
  • Landmark teleports can now reorient player’s velocity & angles
  • New modes for dealing with player’s velocity in `trigger_teleport`
  • A new entity that teleports a player when they touch a specified surface type
  • A new filter that checks whether the player is on the floor, surfing, or just bhopped
  • Collectible system; non-linear checkpoint system.
  • Replaced speed threshold trigger with a filter
  • Increasing/decreasing impulse every tick option for push and shootboost triggers
  • OnKeyHeld & OnKeyReleased outputs for `trigger_momentum_userinput`
  • All triggers now have a flag for ghosts
  • Fixed flags breaking between 2 limitmovement triggers
  • Fixed stickybombs having 0 velocity when shot through a teleport.
  • Multiple sky_camera support
  • Targeting entities now support true wildcards and regex
  • Improved entity debug commands
  • Entity I/O paramater conversion improvements
  • Minor changes to VBSP including `-defaultcubemap` and parallax corrected cubemaps
  • Projected texture improvements (new I/O and KVs, mapbase fixes to shader)
  • Converted most brush entities to use BSP instead of VPhysics collision (Solves func_brush compiling 0.5 units smaller)
  • Fixed particles with start active when the map loads
  • Default cubemap is now black

About That Hammer I Owe You…

Timing be damned.

This update was supposed to include the Momentum Hammer project that SCell (and I did a little bit of things but not anywhere near as much) has been working on. This section would have contained so many videos and pictures of cool things that our Hammer can do now…

But then we got engine access, so now we get to include it with the game.

Which means we need to get the game working and out to playtesters and mappers first. :(

Timing be damned, I say!

So while this update features a ton of very nice mapping related improvements and additions, it still doesn’t have everything planned for mappers, since the development team’s focus is now on the closed-source repository, including our Momentum Hammer. So keep an eye out for our next update, which will contain the first version of our Hammer for the inner mapper in you to go crazy with!

But for now, a groovy, 600+ fps sneak peek:

How About This Route?

This update brings a heavily requested feature: we have added time to savelocs now, and any saveloc created from when the timer is running now stores that time, allowing mappers and routing prodigies to test the best possible route for a map!

It even compares against your personal best still, showing what time you would have gotten at the end of the map, including the potential improvement comparison! The rest of the HUD does not compare properly yet, but we plan to flesh this out more with v0.11.0. Furthermore, with our planned TAS tools and mode, we plan to flesh this out even more to allow players to stitch together their best savelocs for the ultimate replay! More about this will come at a later date.

How About This Gamemode?

Added by Ijre, you now have the ability to play any map as any other game mode, prefix-be-damned.

Gamemode Overriding

Through the map selector you may right click a map and choose the desired game mode to play it as. Times will never submit, so keep that in mind!

For unofficial maps, it’s as easy as using the newly-added mom_gamemode_override command before doing the “map (mapname)” command in the console!

Chat Command and Conc-er

(Gotta end it with a double punner, sorry, it’s in my contract)

This update also brings another heavily-requested compatibility feature: chat commands! Players can use their chat to quickly restart the track, goto or spec some player, and more! The full list of commands can be found on our documentation site.

And an update to the Conc fans out there, False created an original model to use for the grenade, and with it Vortex worked more of his magic and created a brand new animated viewmodel with original particles, all accompanied with the succulent sounds from Monolith.

Full Changelog

This release brings 238 commits from 11 lovely contributors!

Added

  • Added missing limit movement trigger texture (1077)
  • Gamemode overriding (1081)
  • Explosive fizzle sound (1082)
  • Free roam spectate (1090)
  • Saveloc importing from other maps (1109)
  • Noclip/practice mode duck speed multiplier (1117)
  • Add beam_spotlight from ASW (1119)
  • Zonemaker, a tool that generates .zon from .vmf files (1128, 1145)
  • Temporary, per-run stage start marks (1136)
  • New steam game mounting system (1150, 1161)
  • Ability to draw info_teleport_destinations in game (1153)
  • $HSV to PBR shader (1160)
  • Chat commands (1165)
  • Mapbase entities (1133)
    • `skybox_swapper` for changing 2D skybox texture without requiring map reload
    • A lot more inputs/outputs to BaseEntity
    • Many many new filters
    • Many many new logic entities
    • Added game instructor system
    • Duration value to particle systems
    • Ability to directly start the particle system effects on player
  • New conc viewmodel (1110)

Fixed

  • Fixed saveloc & ruler menu binds in keybinds panel (1066)
  • Fixed sprint/walk being handled while spectating (1071)
  • Fixed conc grenades being usable in other gamemodes (1072)
  • Fixed friend’s times sometimes not loading (1080)
  • Removed “unpause” command call (1089)
  • Fixed toggle_ jump/duck commands not doing spec commands for jump/duck (1090)
  • Fixed menu drawer lobby name corruption bug (1098)
  • Fixed doublepress run safeguard not being reset properly (1106)
  • Fixed certain commands going through map finished panel even when after map movement is disabled (1125)
  • Fixed HUD timer not properly updating when hidden (1127)
  • Allowed console to be opened from (almost) anywhere (1131)
  • Fix arrow keys resetting combobox selection (1156)
  • Immediately remove ghosts of blocked players (1163, 1173)
  • Real-time updating of player names on user components (1164)
  • Fixed game crash when pressing enter on main menu (1165)
  • Fixed various chat exploits (1165)
  • Fixed seeing blocked player’s chats (1165)
  • Fixed seeing blocked player’s typing status (1176)
  • Fixed certain particles not being removed (1110)

Improved

  • Enabled spec hud mouse input when chat is opened (1090)
  • Improved scrollbar track clicking (1099)
  • Hardcoded ghost update rate (1100)
  • Improve top of frame grip sizing (1101)
  • Default RJ viewmodel to centered version (1102)
  • Stored time in savelocs (1103)
  • Improvements to rocket/stickybomb launchers (1124)
  • Trigger enhancements (1126)
    • Landmark teleports can now reorient player’s velocity & angles
    • New modes for dealing with player’s velocity in `trigger_teleport`
    • A new entity that teleports a player when they touch a specified surface type
    • A new filter that checks whether the player is on the floor, surfing, or just bhopped
    • Collectible system; non-linear checkpoint system.
    • Replaced speed threshold trigger with a filter
    • Increasing/decreasing impulse every tick option for push and shootboost triggers
    • OnKeyHeld & OnKeyReleased outputs for `trigger_momentum_userinput`
    • All triggers now have a flag for ghosts
    • Fixed flags breaking between 2 limitmovement triggers
    • Fixed stickybombs having 0 velocity when shot through a teleport.
  • Mapbase enhancements (1133)
    • Multiple sky_camera support
    • Targeting entities now support true wildcards and regex
    • Improved entity debug commands
    • Entity I/O paramater conversion improvements
    • Minor changes to VBSP including `-defaultcubemap` and parallax corrected cubemaps
    • Projected texture improvements (new I/O and KVs, mapbase fixes to shader)
    • Converted most brush entities to use BSP instead of VPhysics collision (Solves func_brush compiling 0.5 units smaller)
    • Fixed particles with start active when the map loads
    • Default cubemap is now black
  • mom_restart_stage now does nothing on linear maps (1134)
  • Require repress of +attack to throw another conc (1146)
  • Make leaderboard static (1147)
  • Scale ghost entpanels with resolution & center them (1148)
  • Added divider in speedo settings to make more understandable (1157)
  • Prevent +moveup and +movedown from affecting ground movement (1158)
  • Warn player of mapping mode on run start (1159)
  • Allow dynamic updating of teleport destinations (1172)
  • Improved flashlight code & shadercompile (1174)
  • Mapping mode cvar for toggling RNG fix (1175)
  • Allow teleport destinations as restart points for start/stage zones (1170)
  • Made conc grenade follow rules of other explosives (1110)


I am absolutely elated for the next year of development. Like I said in the beginning of the post, we are genuinely trying to get the Chaos version of Momentum out and into playtesters hands as soon as possible. From there, it’s pure progress as we speed towards our ambitious goals of things like integrating Panorama and our custom hammer, as well as all of the already-planned game features on our road to 1.0.0.

Wanna hang out and theorize about the fabled Momentum Man’s existence? Consider joining the official Momentum Mod Discord server! It’s also coincidentally the best place to stay up-to-date with the development of the game!

Also, did you wishlist Momentum Mod on Steam yet? ...No? Okay. :(

I appreciate you all, and until next time (Chaos time, baby!),
Nick (Gocnak) K.
Momentum Mod Project Lead