When the concept for “Shadow Puppeteer” was developed in the spring of 2010, we were already planning to have both co-op and single player. Because of great feedback from other developers, warning us not to spread the concept too thin, we decided to focus mainly on the co-op experience. Since Shadow Puppeteer was intended as a co-op game, that should be our main priority and we should make sure, first and foremost, to make that a great experience.
As we attended gaming conferences like Gamescom, NGC and GDC, showing off the game, people kept asking: «So, the game will have a single player mode too, right?».
When we realized, a year ago, how expensive and difficult it would be to get online co-op we had to reconsider the importance of single player mode. As developers we needed to respect that not everyone have the opportunity to play locally with friends. Did we want to exclude them entirely from the Shadow Puppeteer experience? Our answer was ‘No’.
We started looking into the different options that were available, and it came down to three options:
- We could have the player switch between characters. Alternating between the two as he moved them forward, like in the game «Paul and Percy».
- We could let one player control both characters simultaneously.
- We could do like the Lego games, let players control one character and have the other follow with a simple AI. The possibility of switching would still be there, so the player could perform more complex character specific tasks along the way.
The first option would be simple to implement. But by letting the player be in charge of both characters we would alter the flow drastically. It would also render any levels with a timed elements impossible (like bosses!) So if we chose this option we would have to either a) change these levels, or b) remove them. Choosing a) would cost us more precious time (we are always short on time), but b) would be a shame and seriously limit the gaming experience.
The second option was similar to the controls we already had for the keyboard. But even though we were able to play both characters at the same time, we were unsure how hard a time our players would have. After all, we had spent A LOT of time playing and testing the game, and were unsure of how long it had taken us to become adjusted to the setup. Could we afford to make them this amount of time learning the controls, and would they become too frustrated with this sense of schizophrenia?
The third option would be similar to the first, but would counter the expected flow issue. If one of the characters were AI controlled. If the AI could jump across gaps and over obstacles we would be able to keep the boss levels without having to change them.
We opted to examine and try the third option, enabling players to switch between characters with a simple AI taking control of the the other. AIs are common and we knew that we could buy Unity compatible scripts to help us set it up.
We had recently developed pathing tools for 2D characters, and we expected that armed with this knowledge they would have a good starting point to figure out an AI solution.
It fit well, time-wise, to examine this now, as the co-op gameplay was solidified enough for the level designers to keep going on their own working and adjusting the levels. But we did encounter some challenges.
The game hadn’t been planned and designed for implementation of AI in the first place, meaning we had to make it function on the already designed levels. We made a functioning prototype for the first levels that worked to a certain degree, though with limitations in movement/functionality.
What would be problematic was how to make the AI work to a certain standard in the levels with more fast-paced action and dependability on the other character. Bugs were bound to happen if you switched between the players and the AI had to recalculate a difficult path. So we could either redesign the levels to make enough room for ‘safe paths’, or we could spend countless hours trying to tweak and perfect the AI.
We were forced to reconsider our choice. We knew that an «idiot AI» would ruin the entire gaming experience. On the other hand we didn’t want to have to remove or change levels drastically to make things work. We didn’t have the time, and we didn’t know how long it could take in a worst case scenario.
We went back to our original list of options, and this time chose alternative 2.
The confidence to move ahead with the previously discarded alternative came from seeing the newly released game Bothers: A tale of two sons. In that game you control two characters at the same time; one older brother and one younger, and the implementation of that mechanic worked out great for that game.
The control setup was simple, and you only used a few buttons per character. But it indicated that players would be able to wrap their heads around playing two characters at once, which had been our primary concern earlier.
For us, the control setup would be more complicated than in «Brothers» since we had the stencil feature to consider. But remapping the controls was a simple procedure, so we went ahead and decided to try it out.
We went from this:
The pros of choosing this solution were both that it would solve the time/budget issue we needed for AI implementation, and it was basically bug-free.
Once implemented our level designers tested out the controls. The programmers had decided to map the boy to the left side of the controller. It fit with him being on the same side as the d-pad which was a natural choice for stencil selection. This presented an interesting change for the level designers. If you examine the keyboard setup you will see that the characters had switched side, the boy moving from the right hand to the left. But was this the only reason the setup felt strange? Was there some other reason why the characters should have the original left/right placement? We were unsure, but made a note to implement the option of switching the setup in the menu.
Recently we spent a day playing through the game and testing the controls, but we need more people to help us. This is where YOU come in! At least, if you are in the geographical vicinity of Hamar. Our doors are open to testers, so if you want to help us please drop us a note at: https://www.facebook.com/groups/1454095064825377/
We’re excited to see how others will experience the controls. It has been interesting to work and examine the various options, but we feel that if not fully there yet, we are at least one step closer to a final single player solution.