Project Overview |
Demonstration Video |
|
Project Summary
- Single player, two-dimensional, stealth-based puzzle game for the PC.
- Made using Unity 4 with a team of 6 people.
- Play as Robin Raccoon and traverse Prince Peter Pig III's castle to gather food and feed the raccoon family, while avoiding pig guards and solving puzzles.
Roles and Responsibilities
- Implemented character movement and actions, including activating levers and navigating between floors.
- Developed stealth mechanics, such as enemy eyesight and player stealth states for being in light or shadow.
- Created AI and logic for guards interactions and movement.
Gallery
Development and Strategy
Player Movement
An important aspect to the game was the implementation of the player movement component. Since the game is a puzzle game, the movement needed to be fairly limited, so that the player would need to think before making their next action. Players are able to move left or right, and can switch between floors at the thin, wooden platforms using up or down. When switching between floors, the player is locked into the center of the nearest wooden tile, to avoid instances of the character seemingly going through the floor itself. The player can also activate levers by pressing either the action button or up on the controller. These levers activate gates that rise or lower, depending on their state.
|
|
Lit and Unlit States
The player takes on either a "Lit" or "Unlit" state depending on where they are standing. The player is unlit if the character is semi-transparent, and is in darkness. In this state, the player can sneak past the enemies, and they cannot see the character. Each pig uses a raycast in the direction they are facing, and if the player is currently lit, then the enemy will charge at them to try and catch the player. The player's state is toggled by an unseen trigger box underneath each lamp prefab.
|
|
Enemy AI
The patrol pigs have three basic movement patterns to them, which level designers can choose from when placing them into the levels. There is one pig that is stationary and looks in one direction, another where they stand and look left to right at set intervals, and one where they patrol a certain area by walking back and forth between two points. When the pig sees the player, they will run towards them. If the pig runs for a certain time interval without seeing the player again or capturing them, then they will return back to their previous patrol.
|
|
Postmortem
What Went Well
- The team had great chemistry and team culture, which made things easy development-wise. Everyone got along, worked hard, and without any drama.
- Open communication with the other team members allowed team members to quickly confirm requirements and features, which avoided a lot of rework.
- Work Ethic. Dedication to the quality of the tasks and the completion of those tasks.
- Task Estimation/Planning
Challenges
- Nagging technical issues with Unity and Perforce were a constant problem throughout development.
- Minor bugs kept creeping up, which led to a few late nights spent fixing them.
- Unfamiliarity with the engine and language led to a slow start in the beginning, as well as several features that could have been implemented better.
- Updating documentation. Did not update ADB as we created new assets. Did not update GDD each milestone due to task prioritization.
What Was Learned
- Going into a larger project requires a comprehensive plan and framework like the Game Design Document. Documentation like this helped us better define what the game was.
- Team dynamics can make or break a project.
- I learned how to better communicate with my team, and what I can do to empower their development.
- Learned to listen to tester responses and decide whether to accept or reject their feedback.
- We can make a game for a certain target audience but it is difficult to reach that goal. People’s preferences are so varied.
Code Samples
AIControllerPatrolPig
This is the AI controller for the patrol pig logic. The patrol pigs consist of different patrol states, and reacts differently based on if they can see the player, and how long it has been since they've seen the player last. Each pig also has a patrol mode that they start with. They can either be walking back and forth, standing in place, or standing and flipping every few seconds. All of these properties are exposed to designers in engine.
This is the AI controller for the patrol pig logic. The patrol pigs consist of different patrol states, and reacts differently based on if they can see the player, and how long it has been since they've seen the player last. Each pig also has a patrol mode that they start with. They can either be walking back and forth, standing in place, or standing and flipping every few seconds. All of these properties are exposed to designers in engine.
AIControllerPatrolPig.cs