Malfunction is a co-op first-person shooter set in a distant future where an A.I. created to oversee a factory run by robots has developed motherly feelings for the robots that are under her care.
She tries to keep them from knowing what's truly going on outside of the factories locked doors.
It's best for her dear children if they don't know that they have outlived their customers.
That they have outlived the human race.
In Malfunction you play in an FPS view as one of the factory robots trying to figure out what The Mother AI is hiding.
However she throws her lackeys at you and you have to fight off robots in tight corridors while picking up ammo and health packs along the way. In the beginning of the project we had plans for having three different weapons, an automatic weapon, a sniper and a shotgun.
The idea was to have the enemies use the same three weapons where it would be clear to the player which enemy used which weapon. So for example you might see two blue robots coming towards you meaning they have shotguns and so you deal with them at a distance using your sniper.
It turned out to be an incredibly demanding project however and a lot of these ideas had to be cut.
What we ended up having was the automatic weapon and the shotgun, however they used the same weapon model and was not communicated clearly enough to the player.
In hindsight there are many ways we could have done this clearer without putting too much time into it but I'm very happy that we at least had two different firing options in the end.
As I was in charge of the story, tutorial and the last level it was not what I was hoping for when all scripted events were decided to simply taking too long to get in. So I decided to try to only convey the story through The Mother AI talking to you through speakers hanging on the walls.
However we did manage to get alternative ending into the game which I think gave the game that little extra feeling of polish that it needed.
Design and pipeline
We used Unity as a level editor and then used our XML export script from previous projects as well as some new scripts I made to speed up the design workflow. Overall it felt like we had a pretty good design pipeline except that it took quite some time to go from making a change in unity to testing it out in engine.
I would as always start out with some paper planning, then move on to rough whiteboxing and after a few iterations wrap it up with level arting.
About halfway into the project we had gotten enough art assets to start making presets in Unity. They could for example contain a desk, chair, computer, some file cabinets, etc. and we could use these for generic areas to save valuable time.
Because a lot of other groups had issues with having to make a seperate collision mesh in Maya on top of their models we made the decision to place all the collision in the game manually. I think this was a good decision even if it was extremely tedious. At least it only had to be done once a prop and be put into a preset in Unity.
I would say that one of the more interesting parts of this project was that we had support for co-op mode.
Designing a co-op game was really interesting and challenging but I think that it really gave a lot to the overall experience in the end and was worth the extra effort!