Puppet Manor – Post Mortem

Hello, everyone!

This post mortem will be slightly different than my latest post-mortems, such as Yemita – Post Mortem & Ostrich Run – Post Mortem for example because I am not going to do a day-by-day review. Instead, I am going to focus on what I think was important and affected more during the whole development. Most will be like in a negative way but I want to say first that it wasn’t that bad. We learned a lot and I am really proud of what we had been able to achieve.

Before starting, consider playing Puppet Manor if you didn’t play it already.

Lots of new challenges and uncertainties

This game came with a ton of new challenges and uncertainties. The biggest one and the one that kinda covered everything was the fact that this was the first horror game all the members of the team ever did. Furthermore, for example, I am not an expert in horror games because I am a huge coward and can’t stand playing horror games so I didn’t have any experience or knowledge about them.

Another group of huge challenges was the AI and other technical ones. The scope was big at the beginning and a lot of technical challenges were new to us so we had to learn a lot during the development. These learnings didn’t come for free, we found them during the development and this took a lot of time.

AI nightmares

We thought about a bunch of cool features the AI could do and we planned to have a bunch more features than the actual ones the game finally had. I think we aimed to a huge scope regarding this.

The first big challenge was pathfinding. We needed the monster to walk around the whole map, including walls and roofs, take care of the rotations and somehow avoid it walking through walls (which improved a lot but it is not flawless). We tackled this by doing our own path-finding system, something that set all the nodes and connected them. Then, we manually set the rotations and fixed the flaws we found in the pathfinding. This took a lot of time but luckily we were able to spend that extra time.

Pathfinding node system was pretty daunting when looking at it

Then we had some difficulties in debugging it. We had a state machine but it was dynamic given the situation so it became a bit difficult to see when the monster stayed idle without apparent reason. Luckily for us, I think we managed to resolve this and this won’t happen in the build.

For last, we did have a hard time balancing the game but it was expected. One of the most difficult things when making this horror game was to make sure the game actually scares the player. Actually, we never knew until people started to test it and we couldn’t test it before the release because it was a game jam and we used almost every minute we had to work on it. Back to the AI, we had to make adjustments for attack intensity, how it decided its actions, and more. All of these were tested by us (though we were already biased by previous plays) and then re-balanced from there. We think it turned out very good though we weren’t sure till watching random people play it.

Performance

One difficult task was also the performance. We did end up having some issues in the release build but we went through a lot of errors and fixes during the development.

We couldn’t use only the occlusion culling Unity gives as a solution because most of the issues came from the total marionettes the game has. Because of this, we ended up with a custom solution where depending on the current room the player is in, it will draw only marionettes that are visible. This worked pretty well though it isn’t perfect.

Baking the occlusion culling

Another problem we had was with pathfinding. Not only it was difficult to set it up when we tried to run it, it just froze the screen for seconds each time the monster had to go to a new destination. Given this, we had to send it to another thread and test out was the right amount of advanced iteration for each frame given the fact that we couldn’t reduce the node quantity because that would mean less quality in the path and manually reconnecting a bunch of nodes again.

Finally, we had to reduce a lot of the ambiance lighting we had to optimize the build. We couldn’t afford too much light baking so Hugo did great work by setting a new configuration for the lighting of the scene in order to keep the high quality it had but with a huge boost in performance. Given that it was a horror game, we couldn’t lower the quality of it.

Scope reduction

There were a bunch of things we planned to add to the game that was removed from the final product, mostly because of time issues.

I think one of the first things we removed was a mechanic where the player could see what the AI was seeing but with the risk that the AI would see what the player is seeing. This would mean you would need to be careful with what you were pointing at. We decided to remove this because we weren’t sure about how much it would take, the art side was already overpacked with tasks, and from the game design point, we still didn’t know if it was going to work out for the player.

The crowbar and the bolt cutter were placed randomly each time the player respawned

Another thing we removed was the animations for taking objects. In a moment we planned to have custom animations where you would see your hands grabbing or moving stuff in the first person but that was quickly left because we couldn’t afford that extra work time.

These weren’t the only things we removed from our scope, a lot of small details were removed during the 10 days of the game jam. Though it would have been nice to have this kind of stuff, I think we did well on removing these contents before trying to make it and don’t have something solid for the deadline.

Designing a horror experience

First of all, as I said at the start, none of us did a horror game so this was a huge new experience for the whole team. Some of us did play horror games before and some others, or only me maybe, tried to avoid them all their life. A lot of improvising, learning, and trying to find what would work in order to give a horror experience went through the game jam. I even forced myself to watch some horror movies and horror gameplays in order to learn more about the genre.

Given all these starting points, we did watch together gameplays and brainstormed about what could work in the game. We also wrote down all the ideas and the general concept of the game. We thought about a few pillars to aim at what we wanted for the experience and we always thought about how to enforce them. I think this last point worked really well.

Even the player is able to hide, if he stays too much hidden he may be seen

For example, we wanted the player to never feel safe. This gave the idea of having a lot of mannequins around but you never knew which one was able to attack you. Of course, nothing of these things came for free, a lot of testing and balancing came for the mannequins as also for other things, but I think we did a fair job regarding the game design aspect and watching gameplays I think people enjoyed.

For last, one of my favorite things we added was the custom events. There are random events that can happen or not based on some conditions and they may or not repeat. Watching streamers play it and get scared because of random events was pretty fun and I think they worked out really well.

Audience reception

One of the best things about the reception was watching people play the game. Never did a horror game before as I said but I have to say that is a lot more fun to watch people play this horror game than one of my other games. It was so fun to see their reactions and see how the custom events worked.

One of my favorite videos is in Spanish and you can watch it here but if you don’t know Spanish, here is another fun video in my opinion:

We even got videos from Japanese streamers which, since I am learning Japanese and had fun trying to understand what they were saying.

Wrapping up

I had a lot of fun making this game and watching YouTubers uploading their reactions to playing the game. I definitely would like to make a horror game once again in the future though I think I am not ready to make another one right now.

Even we had a lot of difficulties and the game finished with a few bugs. I would have loved to catch up the falling from the map bug or the weird feeling the doors give when they open because those would probably had been easy fixes but still, I am proud of the game we did and how it turned out

If you haven’t played it yet and you came this far, please consider playing it now 🙂

Thank you for reading!