1. Escape From Mandrillia
  2. News

Escape From Mandrillia News

0.2.1 - MORE SPLITTING

Hello there! So far the new hybrid audio system is going pretty smoothly.

While working on it, I've noticed that it's actually possible for this hybrid mode to be compatible with "true" split audio for local play (without the need of two separate builds!): ported sounds work surprisingly well in both hybrid mode (remote play or local play with mirrored audio) and true split mode (local play with non-mirrored audio). This is the best possible outcome, as the game will be able to be played in true split audio when playing with people at your computer while still being pretty acceptable with the forced remote-play mixing. It also simplifies things: once all the sounds are ported, you won't really need to activate mirror audio for local play, so the only setting you'll have to worry about is the PC audio target device.

This update includes spatialized audio for gate slamming, exploding barrels, button pushing, and several Mandrillian upgrades, as well as a muffled effect for distant noises for the Robot. In the following updates, I'll finish the system up by adding weaponry, "big noises" like the elevator and big gates opening, and possibly new ambient sounds for just the Mandrillians.

I've also included a little toggle (default off) for the VR player to hear their own footsteps (just like the olden days in Mandrillia). VR player footsteps are the only thing that can't be worked around with hybrid audio, so a toggle is the best solution, either as a personal preference or to switch for when you're playing locally with the soon-to-be true local split audio.



That's all for now. Hopefully I will be able to finish the split-audio translation without much hassle!

[h3]CHANGELOG[/h3]
  • Advanced the hybrid split-audio implementation
  • Shock noises at the menu (when Mandrillians hit the training dummies) are now muffled for the VR player
  • Implemented sound muffling for distant Mandrillian noises
  • Implemented split audio for keycard-operated door noises, buttons, barrels, and some Mandrillian upgrades (Plasma Gun and Smoke Bomb)
  • Added a toggle at the menu for the VR player to not hear the Robot footsteps in VR

0.2.0: SPLITTING THE AUDIO

Well here we are.

When I started working on the game back in 2019 I thought split audio would be trivial to implement. After all, we already have split video in VR, which makes local asymmetric games possible, right? Right.

Watch out, there's a Mandrillian right behind you! Oh no! The Robot can't hear us! It's using the new Hybrid Split Audio System on his Escape from Mandrillia-branded gaming headset!

[h2]A BRIEF HISTORY OF SPLIT AUDIO PAINS[/h2]

As most of you know, until now Escape from Mandrillia had shared audio between the VR and PC players. This is a limitation of Unity, and there is no real way out of the box to route different listeners through different devices (hell, Unity doesn't even have multiple listener built-in support for stuff like split screen games)

This created an obvious issue. If the VR player (Robot) audio was properly spatialized, the PC players (Mandrillians) could use sound cues like their own footsteps getting louder to basically echo-locate the VR player, which was not good. My solution up until now was to cheat as much as I could by making very flat fall-off curves for stuff like the Mandrillian footsteps. This made it pretty hard for the Mandrillians to pinpoint the Robot location, but it did make things feel... off for the Robot. Mandrillians that were half a mile away sounded the same as if they were right on top of you, which, while unnerving, was not very immersive. As a Mandrillian, you could still sort-of deduce if you had just run past the Robot if you were paying attention to sudden shifts in the sound panning.

Now, I said Unity had no out of the box solutions for this. Turns out, this was technically possible by using industry-standard sound systems like FMOD or Wwise, which let you have multiple system instances routed to different devices. Documentation about it is scarce, but there are at least 3 local asymmetric VR games on Steam that successfully use this method. So, problem solved, right?

Surprise! Valve's very own Remote Play Together doesn't give a crap about targeted devices, and will mix every single sound coming from the app and play it to the client(s). After a brief talk with Valve Support it was clear: this was a hard limitation, which meant that when playing over Remote Play, Mandrillians would always get both their sound AND the Robot's. I was surprised to notice that, indeed, the 3 games that use this system were actually giving the Remote Play PC player the sound of the VR character -it was just pretty hard to hear as these games were of the "giant VR player and tiny PC player" variety, which are better at masking this issue.

This wouldn't happen when playing locally or using other programs like Parsec, which more closely emulate local play, so at this point I was considering either giving up or doing some sort of local-only/Parsec-only branch with the split audio when I had the game 100% finished, but that was not a great idea.

So I decided to work around the Remote Play limitation just like I've been trying to work around the shared-audio limitation until now. By using SteamVR Audio Mirroring (just like you would have needed to do to play the game locally until now), the remote play "mixing" effect could be emulated, sparing me the need of doing 2 different builds.

This update comes with a complimentary audio-themed headwear cosmetic for the Robot

[h2]THE HYBRID SPLIT AUDIO SYSTEM[/h2]

The solution I've come up with is as follows:
The VR player keeps the current Unity audio system, but with proper spatialization curves for sounds like Mandrillian steps and roars. The VR player is now able to properly hear the location of Mandrillians.

The PC player(s) now have an FMOD system just for themselves that is meant to play on top of the VR audio (which also has the music, ambient sounds, loud noises etc). While they are "technically" hearing their footsteps getting louder when they get closer to the Robot, the system does a good job at masking this by having these sounds play at a constant (and louder) volume on their devices. It also allows for several "mandrillian-only" sounds, like the Robot's footseps actually playing louder when the Robot is sprinting near them, instead of that being just shown on the minimap as little blips.

While this is not a perfect system, it's at least not any worse than the old shared-audio system, and it's undeniably more immersive and "logical" for the VR player. It's as good as it can get, and it lets me iterate on it incrementally without needing to fully remake the sound system from scratch.

I also added some fancy stuff, like the Mandrillian noises in the Menu scene being muffled to the VR player... until the gates open.

[h2]IS IT HARD TO SET UP?[/h2]

If you're playing with friends over Remote Play, you just need to make sure this new setting is not set to the same audio device as your headset (or else you will also hear the Mandrillians' audio!). Remote Play will do the mixing for the PC players. You can use the "PC-ONLY SOUND CHECK" button to confirm you're not hearing monkey-only sounds (only PC players should hear the tone)



If you're also playing with people on your computer, the setting should be set to whatever your friends are using (speakers or headphones), and you will need to enable "Audio Mirroring" on your SteamVR settings, selecting that same device as the mirror target. That's all.

In any case, I also added a small pop-up that will appear (once) right in front of the VR player explaining the audio system.

[h2]SO WHAT NOW?[/h2]

I'm still processing the fact split audio is finally here. I don't expect things to work flawlessly straight away, so feedback is always appreciated, either in the Steam discussions forum or at the Official Discord that you can join by clicking here.

As I mentioned on the last update, the next big thing coming up for the game is the Firing Range scene. This should be an easy one, and I have some cool surprises prepared for it, so stay tuned!

[h3]FULL CHANGELOG[/h3]
  • Added a hybrid split audio system to the game
  • Added a "Mandrillian audio device target" setting to the Main Menu, with a built-in sound check
  • VR Player now hear properly-spatialized Mandrillian footsteps, roars, etc
  • Mandrillians now hear properly-spatialized Robot footsteps
  • Mandrillians noises at the Menu scene now sound muffled for the VR player until the gate opens

  • Added new head cosmetic: headset
  • Added new cheat: EPIC-GAMER that activates the cool gamer alt skin for the headset

  • Adjusted the speed you have to move to start making loud steps to roughly halfways between walking and sprinting speeds, to prevent situations where going 99% of the sprint speed would make you move silently
  • Fixed Player 2 armor pieces not playing ricochet sounds when getting hit


BETA 0.1.0: THE ENDGAME UPDATE

Hello there! I'm very happy about this update, as it gets rid of the last big placeholder left in the game: the Victory Room. With this, the general experience of a match from beginning to end is pretty much what I envisioned -I think it's safe to say the game is now on beta as I inch closer towards out-of-early access release.

ENDGAME ZONES

In Escape from Mandrillia there have always been three ways of ending a match: the VR player died, the VR player escaped, or the VR player killed all the Mandrillians.
At the very beginning, after finishing a match the VR player used to get sent into a featureless room where they could choose to repeat the match or go back to the menu, with the PC players left behind in the facility.

Then, the "Victory Room" placeholder was added, a sandboxy place where both sides could check the match statistics and mess around for a bit before playing again. One thing stayed the same: it didn't matter whether the VR or PC side won, you would always be sent to the same place, with only the statistic screens changing. The Elevator Update did at least add some extra satisfaction to the Robot's victory, but overall the game didn't really seem to care if you won or lost.



Now, with the Firing Range/Sandbox scene around the corner, I thought it was the right time to get the placeholders out of the way (it only took several years!)

[h2]ROBOT LIMBO[/h2]
You're gonna see this place a lot.



Losing should make you feel bad, and this eerie place is designed for that. Revisiting the concept of the original endroom, It retains the Victory Room's statistic screens, but all inside an eerie black void where the mangled Robot can just decide to try again or go back to the menu, all while being observed by the PC players.

[h2]SURFACE LOBBY[/h2]
On the other hand, you should feel like you achieved something for winning instead of ending up in the same place as if you lost.



Taking place right at the end of the final elevator ride, you'll get here if you escape or kill all the Mandrillians.

The scene starts as a VR-only section, with the PC players having the third-person spectator view. However, generous VR players can allow Mandrillians to spawn just like in the old Victory Room.

There's some cool stuff I will be adding to this area, but this update includes all the core stuff I needed before I start building on top of it.

[h2]ENDGAME CODE CLEANUP[/h2]
Because the "game over" mechanics are one of the first things I coded for the game, they were an absolute disaster of pure spaghetti. They still are, but at least I've managed to clean some stuff up and make it look and feel better.

One thing I was very unhappy about was the lack of feedback for when the VR Player killed all the Mandrillians. You just waited a few seconds and got yoinked into the Victory Room. With this update I've decided to revisit the "bootup screen" you get at the beginning of each match and rework it to give some critical messages to the Robot within matches. For example, after the Mandrillian headstart has ended, the text will say that there are hostile lifeforms in the area. When the last Mandrillian has been killed, the text will tell the player all major hostile lifeforms have been neutralized, and you'll get a nice fade to black into the Surface Lobby.

Doing this also made me aware of some funky interactions when playing with both human-controlled and bot Mandrillians. Bot Mandrillians could pick up 1-ups that would add up to the human spawn pool, potentially saving them from game overs (which is extra unbalanced because after all Mandrillians died they would get the VR player's view). Now, Bot Mandrillians will add 1-ups to their own spawn pool, and human Mandrillians will stay with the VR player spectator view after depleting all their lives if there are bot Mandrillians left.

FIXES AND TWEAKS

This update includes a bunch of fixes and tweaks not related to endgame stuff; most related to players' feedback.

A tester discovered that it was quite the strat to boobytrap sentry turrets by covering them with mines. Because the mine explosion has reduced radius damage and the sentry turrets are semi-resistant to blast damage, you could do that and keep the turret alive. Now, the strat is still possible, but you will end up with a destroyed turret.

Insectoids used to -always- start spawning 5 seconds in the match, which had the side-effect of often hearing the insectoid spawning sound very consistently at the 5 second mark. Now, insectoids start spawning randomly after 60%-80% of the selected Mandrillian "headstart" setting, which means they'll usually start ~20 seconds after a match starts.

I noticed the flamethrower weapon had a bug that could cause the fire rate to decrease when playing at 80Hz or lower. I fixed it, and also improved the fire stream FX a bit, in loving memory of a certain other game that recently ruined their awesome fire FX. I also increased the fire speed (and range) slightly, as I felt the flamethrower was underperforming a bit compared to other longarms.



Speaking of underperforming, the poor Crossbow was in need of some hefty buffs, so I increased the regular bolt damage from 30 + 70 bleeding to 100 + 50 bleeding, meaning it should consistently 1-shot Mandrillians, and dramatically increased the explosive bolt radius and damage (which can be dangerous in close quarters -use that scope!). Feedback on this one will be greatly appreciated, and I'm guessing lots of tweaks are yet to come for this weapon.

Remember you can always join the Discord server to share your feedback and get people to play with!

Finally, I fixed a bug that was causing ammo crates to sometimes spawn nothing when the Super Shotgun was the last longarm you used.

NEXT UP: FIRING RANGE/SANDBOX... AND A FINAL SPLIT AUDIO ATTEMPT

As this update removes some of the most sandboxy features of the Victory Room, I'm going full throttle into making the Firing Range scene as soon as possible. The Surface Lobby served as a great test bed on how to make a simplified version of the regular match Mandrillian Spawning and systems that would still allow for most of the features to stay, and I think it will do for a great training option for both VR and PC players.

I'm also finally going to try a last ditch attempt at implementing split audio, having in consideration Steam Remote Play limitations regarding it. This might go pretty well or might be a disaster and another waste of time. Stay tuned!

PS: The game is now on a local-vr-asymmetric-themed bundle with Containment Initiative 1 and the recently released Containment Initiative 2. Both CI1 and CI2 are currently on sale and it stacks with the bundle, so consider completing your collection if you haven't already!

[h3]CHANGELOG[/h3]
  • Added the "Surface Lobby" area as a new section when the VR player wins a match
  • Added the "Robot Limbo" scene when the VR player loses a match
  • Removed the placeholder "Victory Room" you got sent to whether you won or lost a match
  • Mandrillians are no longer stuck with the last used upgrade at the Victory Room (now Surface Lobby)
  • Incidentally, fixed the Victory Room bug that caused the Robot's IK rig to jitter
  • Fixed wrong collisions in the holes on the walls at Observation Chamber 3

  • Reworked and polished all the "endgame" situations and transitions (the code was a mess)
  • If playing on "timed" mode, killing all the Mandrillians does not finish the match; the Robot player has to actually get out of the facility before the countdown ends
  • If playing with both human and Mandrillian players, the camera will switch to spectator mode after human Mandrillians deplete all their spawns
  • Mandrillian bots can no longer get Mandrillian players back to the match after they deplete all their spawns: if a Mandrillian bot takes a 1-up, it will increase their own spawn pool

  • Reworked the Robot's bootup screen to be actual text fields (for potential future translations), and made it lore friendly
  • Robot player now gets a text warning when Mandrillian's headstart has finished
  • Robot player now gets a text warning when all Mandrillians are dead
  • Mandrillian players get a text warning when the Robot has died

  • Insectoids spawning start now tied to the selected Mandrillian "headstart" setting: they will start spawning at 60-80% of the headstart time

  • Flamethrower rate of fire no longer slower when playing at 80Hz or lower
  • Flamethrower range/projectile speed slightly increased
  • Flamethrower fire stream FX improved

  • Crossbow regular bolt damage increased from 30 + 70 bleeding to 100 +50 bleeding
  • Crossbow explosive bolt damage and radius substantially increased

  • Folding chair damage buffed x5
  • Folding chair collisions now produce noises
  • Folding chair no longer breaks environment stuff like explosive barrels

  • Mandrillian armor upgrade buff: head armor piece is now level 2, making most non armor-piercing projectiles ricochet
  • Mandrillian armor upgrade now reduces both poison gas and electric shock status effect times
  • Changed the "Special" setting name to "Berserk", as it only affects berserk charge (or disables it)
  • Setting Berserk setting to 0 no longer prevents normal upgrades' cooldowns to be shortened by picking up vent items/connecting attacks
  • Reduced Berserk explosive damage reduction (you could tank several direct grenade launcher hits!)
  • Mandrillian armor upgrade now gives a slight (10%) explosive damage reduction (combined with berserker, it will still give less damage reduction than just berserking until now)

  • Mine explosions now damage turrets to discourage turret boobytrapping
  • Fixed bug that could cause crates to spawn nothing if the last held longarm was the Super Shotgun
  • Mandrillians' Plasma Gun shots (and hits) now count for accuracy stat
  • Fixed bug that caused Player 2 Mandrillian's Plasma Gun upgrade to not damage certain objects
  • Fixed "RTFM" achievement, now actually needing to close all the tips in both the menu and match in one session
  • Fixed "EASY WAY OUT" achievement activating just by dying before 30 seconds pass, now it triggers if dying before the Mandrillian headstart has finished
  • Mandrillian's Plasma Gun upgrade now counts towards Mandrillian accuracy stat

  • Fixed annoying visual bug that made the resolution setting display the actual full monitor resolution instead of the window resolution when starting the game on windowed mode

SMALL FIX

Small one here, fixed an invisible bullet deflector that appeared on the security room on the last update.

Still working on the final versions of the victory/defeat rooms. Stay tuned!

0.0.27 - SECURITY CAMERA SYSTEM

Hello there! This update brings the final version of the security camera system. Yes, there was a camera system. Nobody used it.

I'm not really sure what was I thinking

[h2]THE NEW CAMERA SYSTEM[/h2]

Since the game's launch, the security room had this very convoluted camera system where you needed to first link your Multitool to it (which also gave you the location of the Sentry Turret), and then use low-clearance keycards to enable the cameras in different sections of the map. There was no actual video feed, with the cameras acting as glorified motion sensors that fired off if anything moved inside their trigger.

The previous update revamped the Sentry Turret part of said system, and here we are.

When you insert a high-clearance keycard in the console, you get access to all the security cameras in the map, with live video feed. You can select the area you want to see with the buttons on the map screen. Pressing the big button below the video feed switches between the left and right camera.



This system is meant more as a way to check for useful stuff around the map (keycards, the second Sentry Turret, valuable loot) rather than as a Mandrillian detector (that's what the Minimap Stations are for). It also looks kind of cool, which is important.

Of course, Mandrillians can destroy the cameras using upgrades. Damage-dealing upgrades like the Plasma Gun or the Self-Destruct will straight out remove them, and the Jammer, if used near an intact camera, will disable the entire system for 15-20 seconds.

[h2]HEALER BUFF, OVERCLOCK NERF[/h2]
This update also has some balance changes. Until now, it was possible to chain overclocks one after another, which was a bit frustrating for Mandrillians. Now, overclocking while already overclocked or overheated will instantly start an overheat. To go with this, the wrist menu now includes a heat meter that will go up when overclocking and down when overheating, so you know exactly when you're gonna be able to pop another OC.



On the PC side, the Mandrillians' Healer Upgrade got a cooldown buff. After the Jammer rework, the Healer was the only upgrade that felt out of place, with both cheaper and more expensive upgrades giving way more utility. By reducing the cooldown from 25 to 15 seconds, this upgrade now enables a very aggressive playstyle.

That's all for now. Stay tuned!

[h3]FULL CHANGELOG[/h3]
  • Implemented the full security camera system
  • Improved security camera destruction FX
  • Added heat meter to the wrist menu, which goes up during overclock and goes down while overheating
  • Using an Overclock while already overclocked or overheating will send you back to an overheat, preventing overclock chaining
  • Mandrillians' Healer Upgrade cooldown reduced from 25 to 15 seconds
  • Fixed bug that caused Sentry Turret to spawn way too many gibs when destroyed via explosive damage