Unwelcome is a turn-based tower defense game where you play as a witch who has moved to the suburbs for some peace and quiet. Unfortunately, you’re quickly disturbed by frequent, unprompted visits by your overly-friendly neighbors. The only solution to this is to summon your faithful demons from other realms to get those pesky neighbors out of your house, and enjoy some much-deserved peace and quiet.
UNWelcome was developed for mobile phones and tablets using Unity 5, over the course of 3 months. On our five person team, I was the only software developer. During this time we developed using an AGILE methodology, and performed playtests with industry professionals and blind playtesters.
As the only software developer on the team, I developed all of the major systems in the game, including the grid-based levels, enemy AI, demon mechanics, and the user interface. I also worked to develop tools for teammates so that they could quickly prototype levels in the game. I enjoyed iterating and improving the game's systems throughout the course of the project, so that I could respond quickly to the needs of my teammates.
Demons are summoned by the player at in between turns, and are used to move neighbors out of the house. Each demon has a unique effect, and the combination of these mechanics make up the core experience of the game. It was very important that each individual mechanic was reliable and predictable, so that players could combine them and create interesting solutions to each puzzle.
Demons all follow a common structure: They have an array of activation tiles (tiles that they can fire on), and a tile that they push to. These variables are determined upon placement/rotation, depending on the specific type of demon. When a demon fires, all neighbors in the range are set to move to the target tile, and given special flags to determine how they are moving. After a demon fires, it will go on cooldown for some number of "steps" that the neighbors take, dependent on the type of demon. I chose to structure demons this way to give me the most flexibility in terms of demon mechanics, and to give my level designers some flexibility in balancing ranges and cooldowns by exposing these variables.
Baphomet - Push Demon
Baphomet pushes all neighbors on the tile in front of their sigil in a straight line, up to 5 tiles. Baphomet is the most basic demon, and is used simply to move neighbors across the room. If there is any furniture in baphomet's path, neighbors will be stop on the tile before the obstacle.
- Range: 5 tiles
- Activation range: 1 tile
- Cooldown: 4 steps
Maalik - Spring Demon
Maalik springs all neighbors on the tile in front of his sigil over a 1-tile-wide obstacle in front of him. Maalik can be used to move neighbors over furniture, giving the player more space to set up combinations. Maalik has a very short range, and is used best in combination with other demons.
- Range: 3 tiles
- Activation range: 1 tile
- Cooldown: 6 steps
Tamamanomae - Attraction Demon
Tamamanomae attracts all neighbors in her range to the tile her sigil is on. Tamamanomae is used to pull neighbors off their path, or to cluster groups of neighbors onto the same tile, which can be used to set up combinations with the Maalik and Baphomet. Tamanomae can not pull through furniture, but if placed on top of furniture will pull neighbors as close as she can.
- Range: 4 tiles
- Cooldown: 9 steps
Back To Top
UNWelcome is all about solving puzzles in unique ways, so it was very important that the demon mechanics be able to combine and give users flexibility in their solutions. When fired through the activation area of another demon, neighbors will trigger that demon, and be put on a new path. This allows for elaborate combinations to be used to eliminate many neighbors at once.
In code, when a demon fires, it first checks for a demon in its range that can be activated, and pushes to that tile instead of it’s ‘intended’ destination. It was important for this to work as the player might intuit – if a demon in the path is on cooldown and can't fire, it should have no effect on the neighbor's movement.
Back To Top
As with any tower defense game, it was important to us that players be able to understand how to summon demons intuitively. Players can tap on the tile they want to interact with, and a menu surrounding the tile will appear. On an empty tile, players can choose to summon 3 different demons, and on an existing demon, players can choose to rotate or sell the demon. It was also important to us that players not be punished for accidental taps – the UI is easy to exit either by tapping away from the UI, or clicking the exit button. We wanted the process of summoning to be fairly simple and straightforward – the player should not have to navigate complicated UI. They only have to tap on the tile, tap on the demon they wish to build, and choose the demons orientation.
Due to the top-down view of the map, we wanted to make sure that the character of each demon and neighbor would be conveyed, and decided to include our character designs in the side panel. When a demon is about to be built or tapped on, information about the demon will appear in the side panel, along with a portrait of the demon being summoned. This adds a lot of personality to the game, and provides players with information about they need about the different demons.
Back To Top
In order to adequately prepare players for our game, we needed to be able to guide them through a level in a very verbose way. Level designers needed a reliable way to communicate information to the players, so I provided the opportunity to place text, tap graphics, arrows, and flashing tiles on each step of the tutorial. I had to ensure that the tutorial was as forgiving as possible - there should be no way for the player to get stuck on a step or accidentally skip a step if they tapped the wrong area. Dividing the core loop of our game into small, critical steps was a unique challenge, but allowed us to better teach players the ins and outs of UNWelcome.