Fixed bug that was causing permanent upgrades to not be as free as advertised (gotta read the fine print)
0.2.4 - UPGRADERED
Many more sounds ported to the hybrid system (loud general noises, insectoids, remaining Mandrillian upgrades) -currently all that's left is the Robot's weaponry
Mandrillian Upgrades can now be used while gassed: this is a big buff specifically for the Healer, as it means you can heal out of a gassed status
Berserk can now be triggered while being shocked, just like you could already do with the regular Upgrades. You won't get out of the shock with it, but the damage resistance can actually save you from being executed, or at the very least force the Robot to waste some bullets instead of embarrassingly losing the Berserk before even getting a chance to use it
Healer Upgrade got a buff: self-heal now lasts 1.5 seconds and heals 200HP (before it was 1 second and 100HP); AoE-heal now heals 100HP over its 5 second duration (before it was 50HP)
Also, new experimental match setting: the Upgrade Style for the Mandrillians now include (on top of the "normal", "free" and "off" modes) a "persistent" mode that lets Mandrillian players keep the last upgrade after death, until they decide to buy another one. This could do for interesting matches with a sense of more permanent progression for the Mandrillians, as well as make the game less frustrating for newcomers that just got a shiny new armor just to step on a mine immediately after. This match setting is better combined with additional multipliers for upgrade cost.
0.2.3 - MINOR TWEAKS AND FIXES
Fixed Insectoids getting ridiculously low damage from Mandrillians' Plasma Gun upgrade (they will now explode if hit with it)
Fixed "door breaking" sound effect not actually playing for the Mandrillian-only audio
Removed the Robot's inventory clicky sounds when hovering over them, added haptics effects for that instead. Also, added extra haptics when successfully leaving an item on an inventory slot
Ported Handgun sounds to the hybrid sound system
TINY HOTFIX
Ported the "breaking a door open" sound to the hybrid system
Fixed Mandrillian 1 taking all the precision credit from Mandrillian 2 plasma shots
Slightly reduced energy barrel explosion volume to hopefully prevent sound clipping on remote play
Hello again! Another small update bringing more split audio ports, and some tweaks to Horror Mode.
Audio wise, the Sentry Turret now has all the bells and whistles of the split system. It's one of the few things in the game that can make very loud noises while at the same time being far away from both the VR and the PC players (as they target Insectoids), so I had to be careful about making the curves work on hybrid mode.
I've also ported the sound of the breakable environment props (bathroom stalls, canteen tables), so Mandrillians can no longer jumpscare the Robot by breaking a stall half a mile away.
And finally, I've potentially solved that one annoying issue where Mandrillian roars sometimes could have an ugly crackling noise when played.
Regarding Horror Mode (which is now more fun than ever thanks to the sound changes), I've made some balance adjustments:
Mandrillians have the "short poison gas stun" modifier, making it more difficult to stunlock them and then chainsaw their faces off or blow them up with multiple C4 charges.
The second weapon crate behind the yellow keycard door is now the Crossbow instead of the Quad Launcher. The Quad Launcher was just not too fun to play against as a Horror Mandrillian, and it didn't really fit the "horror" theme. There was already a guaranteed crossbow spawn in Horror (one of the dead soldiers would spawn with it, some ammo, and a magenta keycard); that spawn is now just the extra ammo and the keycard, which means now you have 2 available tracking bolts on a Horror match.
And speaking about tracking bolts, I've given them a timer that lasts around 5 minutes for their tracking once they've hit a Mandrillian (that resets if you retrieve it). This will change nothing in normal gamemodes (as the average Mandrillian lifespan is way less than 5 minutes), but will help balance things out in Horror.
And finally, I fixed some issues with the chainsaw spawns that were making it rarer than intended.
That's all for now. See you soon!
FULL CHANGELOG
Split audio port for Sentry Turret sounds
Split audio port for breakable props (stalls, tables)
Fixed audio crackling on Mandrillian roars
Horror Mode preset now includes the "short poison gas stun" modifier
Horror Mode preset now has the Crossbow instead of the Quad Launcher as the second weapon crate unlock
Horror Mode guaranteed soldier corpse spawn no longer includes the crossbow (still has crossbow ammo and the magenta keycard)
Tracker Crossbow Bolts now stop ~5 minutes after hitting a Mandrillian (this resets once the bolt is retrieved)
Fixed Chainsaw spawns being rarer than intended
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!
CHANGELOG
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!
A BRIEF HISTORY OF SPLIT AUDIO PAINS
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
THE HYBRID SPLIT AUDIO SYSTEM
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.
IS IT HARD TO SET UP?
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.
SO WHAT NOW?
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!
FULL CHANGELOG
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!)
ROBOT LIMBO
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.
SURFACE LOBBY
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.
ENDGAME CODE CLEANUP
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.
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!
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
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
THE NEW CAMERA SYSTEM
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.
HEALER BUFF, OVERCLOCK NERF
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!
FULL CHANGELOG
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