This is a school project I did in my second year with 4 others in my second year. Superbia is a 3D FPS action game set in a space station. The player have a gravity gun to disposal and uses that to manipulate objects with the purpose of either killing enemies or solving puzzles.
My role was engineer.
My responsibilities as engineer was:
Creating an FPS charactercontroller
Creating an eventsystem
Creating a save system
Unity, Visual Studio, Github, Trello, Google Drive
The former enemies was just regular human beings. They had no relation to the protagonist and no motivation for trying to catch it. Given that our game have a story and cutscenes, I thought it was important that the antagonist of the game are more connected to the main character. The game as it was did not feel like unified where all the parts are connected. So I both wanted to redesign the mechanics and systems and what the enemy actually was.
Children that testet the game complained that the enemy looked too scary. So, I changed the concept to a cat vs dogs theme and made the enemies the dogs. However, because of limitations such as time constraint and the difficulties making animal characters I decided that the dogs should take a humanoid form. Because our target audience is kids, I thought it could be a good theme that the player plays a tiny character that has to overcome these much larger characters by being sneaky and smart.
I also needed to redesign the AI system for the enemy. The enemies from the old version were too boring, dumb and also sometimes hard to understand what they were doing. In the new version I needed to make it simple enough so that kids can understand but complex enough to keep the gameplay interesting and fun. I also needed the enemies to be intimidating and smart but not in a way that breaks the cartoony and playful style of the game. By letting the player know what the enemy is thinking, seeing, hearing we make it easier for the player to make decisions. In practice this means that every state and the transitions between them needs distinct animations, color, sounds and UIs. We can therefore create a more complex AI system with more intelligent behavior. Our goal is not to make the player fail a lot. It is important that the player never feels that the punishment for a mistake is too harsh, the game is unfair or that it is impossible to succeed. Practically this means that the enemies will not react immediately upon seeing the player. They will also give the player a head starts when found before chasing.
When designing the AI, I worked closely with a programmer and tried to come up with a statemachine and a flowchart representing the statemachine. Because I have a background as a programmer it became a lot easier to communicate and translate between design and code.
A common pattern in stealth gameplay in other games is the ability to kill or disable the enemy somehow. This is often very violent, which goes against our main pillar. The original plan was to not let the player take out an enemy in any way. However, by observing others playing the game and playing myself, I felt that the stealth section became too one dimensional. The player was always trying to stay as far away as possible, because there is never a reason to get close. There is also a problem with the level design, because you cannot the defeat the enemy the player always has to watch the back, even though the player managed to pass the enemy. This could be fine if there was a lot of other enemies and gameplay in the game. But the stealth is the core gameplay of this game, and therefore I think it needs to be more complex to keep the player engage for the whole game.
So I came up with the idea that the primary enemies should be robots. The background story is that the dogs are producing these AI robots. AI has been a trend lately, but I have not seen it a lot in children game. Usually it is more cartoon and old style, so I figure it could be refreshing with a more modern/futuristic style with cool dog robots with AI. All robots has turn off button the the player can reach. This gives the ability to actually disable the enemy, and do it without any violence.
Like I mention earlier, an important pillar for the enemy was the enemy system should be transparent for the player. The original living dogs had a transparent system, but it looked kinda weird. By having robots instead the transparent system looks more natural.
Reusing the models
Because of our limited resources, it was important to me that we could reuse as much as possible. The robot dogs model was made from the original real dogs. So I can both use the living version and the robot and create two different enemy types.
Creating an emergent system
Because we have so few enemy types, it was importan for me that I could design them to be as emergent as possible. We have 3 enemy types, the robot Guard dog, the lab chihuahua, and the surveillance camera. I want these enemy types also can interact with eachother in different ways. I decided that I have to come up with 1 rule of how each enemy type interact with other enemy types.
surveillance camera -> Robot AI
The camera will always scan the object it sees regardles if it the enemy or the player. So it starts a scanning process and tries to identify what it sees. If it is an enemy it approves it and resets. The player can use this to bait the dogs into the vision of the camera, and then try to run past the vision while the camera is scanning the dog.
Robot AI -> Robot AI
If a robot sees another robot that is turned off, it will turn it on again. This creates a more dynamic gameplay when there is many robots in an area. This also forces the player to think more about where and when to turn off the robot.
Scientist -> robot
Turn on the robot.
Robot AI -> Scientist
The robot is flawed, it is programmed to recognize small things that moves. Therefore it sometimes start to chase the scientist when in vision field.
The cat itself being a gadget
It is common in spy stories that the agent get gadgets to aid them on the mission. This was something we considered adding, however, I thought it would be interesting to use the cat small size and agility to overcome the obstacles instead. This is done a lot through level design by letting the player hide in places a human cannot, like under furniture, up on bookshelves. I also made it so the way the player distract the enemies is by the cat meowing.