Weekly Dev Log
A short look at what I'm building on Rooted, posted every week. See all dev logs.
Summer is over... at least the vacation part of it! I got back on Wednesday. If you are heading back to work or school too, I wish you a good return. The break was needed, but honestly, I was looking forward to getting back to Rooted. That makes this a shorter week than usual (three days of work instead of a full run), and they went to the new main menu and session layer, in-game voice chat, input rebinding, and the PlayStation 5 version. None of this is in the public build.
Main menu and sessions
The visual pass on the menus continued this week (pause, options and create-game moved to the cleaner second-iteration look), but the real work is underneath. Connecting to the game now runs on a new login flow and API, and the menu pulls news, patch notes and dev logs straight from the site, so what gets published there shows up in the game too.
The big piece is sessions. The whole session layer is new, built in-house directly on Epic Online Services with no third-party wrapper in between: hosting, invites by code, finding and joining games, version checks and cloud saves all run through it. That is what makes crossplay possible: Steam, Epic, PlayStation and Xbox players all meet through the same session system, whatever the store or platform.
The session flow got real fixes with it: a proper loading screen when hosting or joining, a fix for a bug where a freshly hosted world could not be joined by anyone, and save deletion now cleans up cloud-synced index entries that used to block it.
Voice chat
Rooted now has a first in-game voice layer, built on Vivox. I picked Vivox for two reasons: it runs across PC and consoles, so voice follows crossplay, and it supports positional audio natively. In practice it means you hear teammates around their character, within a few dozen meters, with push-to-talk and a louder shout. There is also a radio path for talking over long distance on a tuned frequency.
- Your voice follows your body, not what you control. Piloting a drone or driving a vehicle does not relocate your voice, and it does not let you eavesdrop around the drone either. Mouth and ears stay with your character.
- Voice options. The audio options gained a voice chat section: an output volume slider and a microphone picker, both applied live while you talk, saved with the rest of your settings.
- Honest state. This is validated solo against the real voice backend, with an echo test and working push-to-talk. Sessions with several people talking are the untested part, and the radio distortion effect is designed on paper, not implemented.
Rebinding and playing on a controller
The options now have a Controls tab, and like the rest of the frontend it is an in-house system I designed and coded, replacing the third-party input plugin the previous menus relied on. Every player-facing action can be rebound, on keyboard and mouse and, new with this system, on a controller too. Bindings show as key glyphs, a conflict steals the key from the previous action (which is then shown unbound so nothing is silently lost), each row has its own reset and there is a hold-to-reset-all. Changes apply instantly and persist between sessions.
Alongside it, the whole frontend is now fully navigable with a gamepad: menus, forms, option steppers, the on-screen keyboard on text fields. On console builds the Controls tab is controller-only and the button glyphs match the platform.
PlayStation 5
Headlight is now a PlayStation partner, and the PS5 port of Backrooms: Extractions is close to done, so working on PlayStation hardware has become part of the daily routine here. This week Rooted took its turn, and the work went from zero to the open world running on the dev kit.
The first step was getting the entire game code, including the voxel terrain layer, to compile and link for the console. The second was the runtime pass: memory budgets, texture streaming caps, and a global illumination setup that holds stable on the kit. The game boots in an offline mode there, and hosting a world locally goes through the exact same menus as on PC.
Also this week
- Audio. The third-party audio middleware is out of the project: audio now runs end to end on the engine's native system, which is also the path the console build uses. A few sounds that only existed in the middleware currently have no native replacement.
- Gamepad look sensitivity. The sensitivity setting is now actually wired to the right stick; it previously read as connected but had no effect.
- Localization. Text that lives in code is now picked up by the translation pipeline, which added a few thousand words to the translatable set across all 25 languages.
- Upscalers. The NVIDIA upscaling plugins were updated to their current official versions for the engine version the game runs on.
That's the week from the development side.
Mat
Comments
Join the conversation. Log in to comment and react.
Log inNo comments yet. Be the first to share.
Wishlist on Steam
Don't Miss Launch
Get notified the moment we launch, and be among the first into Early Access.
Wishlist RootedJoin 1M+ players who've already wishlisted Rooted