Parallel is a game which was developed for my University Dissertation project. The game was developed using Unity and C#. The title of the Dissertation project is “Developing Expressive Games and Agents with Personality”. Expressive games are games which allow the player to express their personality, playing style, or creativity. Following research and analysis of this area, and games such as Skyrim, Deus Ex, and GTA, the game Parallel was design and developed. For the second area of the project, game AI techniques were researched to understand how to create an AI with personality driven behaviour. Games such as Middle Earth Shadow of Mordor and Pac-Man were used as inspiration.
The game features:
- Adventure mode which features puzzles in the environment for the player to complete
- Creative mode which allows the player to set the size of the generated world, and gives the player unlimited resource to build and express creativity
- Mechanics to build and destroy blocks in the environment, allowing the player to build structures, use blocks in order to traverse the environment, and use blocks to complete puzzles
- Avatar customisation which allows the player to change functional and cosmetic attributes of their avatar
- Agent mode to spectate on personality driven AI characters. This features several personality types that the player can choose from, which will impact the activities the agent engages in.
- A* Pathfinding
- Needs System
- A personality model featuring values for traits such as Creativity, Logical, Explorer is used to dictate how quickly the needs of the agent grow. Several needs have been created for the needs based system which allows needs to grow, and then decrease when the agent engages in activity which satisfies the need. A FuzzyStateMachine has been created which utilises the needs of the agent to drive which state is activated. Similar to The Sims, the agent will engage in a state once the need reaches a high point, and then the agent will disengage with the state once the need is lowered. A* Pathfinding is used for the movement of the agent.