Parklife

Details
Role: Gameplay Designer & Programmer
Duration: 6 Weeks
Team Size: 1
Engine: Unity [C#]
About
This project was developed during my studies at University of Staffordshire. Developed through using 6 sets of sprints, with each lasting a week, and being with the parameters of “telling a story” as the overarching theme.
Introduction
The theme for this project allowed me a blank canvas to build upon and gave me lots of
opportunity to explore systems I had yet to perfect in previous projects.
Whilst previous projects were been smaller in scale, I found it imperative that I pushed
myself to learn optimal techniques within coding. Along those parameters I also
wanted to revisit C# events and their usages within games.
Furthermore, I wanted to experiment with creating unique combat systems for projects, in order to
give players and antagonists a different combative approach than justy simply shooting, or directly
running into the player to provide a more unique experience.
C# Events
In previous projects I had experimented with implementing C# events, using them to create a robust
player input controller. From both personal motivation and encouragement from lecturers, I decided to
research into using C# events within my games. In prior projects I had been using references to connect code,
which did have its uses within my code but the use of C# events allowed for me to decouple
my code and follow the single dependency, enhancing my games. For this project
I used C# events for health related events, such as taking damage or dying. This
script didn’t need to share its functions publicly but it could be used to send the necessary data
to any of the “subscribers”, in this case the antagonists and player characters.
Code - Health
Custom Box Physics
The central mechanic to this game was the players ability to push objects and antagonists.
Whilst interaction with antagonists was simple to include, creating an interactive object took more effort.
I used Unity’s collision system so that once a player
attempted to push the object, a ray cast would be sent out in the opposite direction to find a
piece within the level. It would then move towards the found target and would cast a circle perimeter
which scanned for antagonists to collide with.

Code - Pushable Box
What was Learnt
Originally I had imagined a different game concept that followed
'a walk through the park, focusing on a story aspect in which the world around the player
changed. The original idea was to have it move through the seasons as you progressed through the park.
Whilst it was a compelling idea, I only had a short time frame to develop this prototype, and the
idea felt like it would be unachievable to its full potential if used in prototyping. This change
of concepts initally caused disruptions throughout the project, but in
employing the use of agile sprints, I took a step back and reshaped the
idea to fit into the even smaller development window which had lessened from the shifting of concepts.
I instead reused the park
concept to tell a story in which the plkayer had to save a park from an infestation of bugs.
This experience taught me the importance of being able to adapt to unforseen circumstances. Whether
that be self-evaluted changes or changes within a team, software development is never a
straight line. The use of sprints allowed for the progress of this project to be broken into
sections that could be evaluted at the start of each iteration. Agile sprints perfectly encapsulated my
work flow in allowing me to weigh up the importance of getting certain sections done whilst still
leaving room for experimentation and learning to allow the game to thrive.
Project Repository