top of page

Chronos Leap
Self-directed Placement

Technical Artist Portfolio

Introduction

For the third year of the Computer Games Programming BSc at the University of Gloucestershire the option of undertaking a self-directed placement was available. 

This consisted of the opportunity to develop a game idea either solo or within a team. The idea of working solo appealed most and provided the opportunity to experiment with different specialties within the games industry, in order to better understand personal strengths, weaknesses and areas for improvement. 

The game idea that would form the basis for the placement revolved around a journey through space where the player would manage the systems on a space ship and communicate with a ship AI.

Sword summon attack effect

Design Brief

  • Develop a plan to produce a game / demo over the course of the self-directed placement.

  • Choose appropriate software and hardware to enable the completion of the project.

  •  

Applying effects to player and enemies in range

These effects make full use of Unity’s built in particle system to make the magic look as realistic and exciting as possible, while still maintaining a stylised aesthetic.

 

The example effects used in this demonstration can all be easily edited to use different custom sprites, sound effects and lighting.

Magic Effect Controller script

These effects have been created using a mixture of custom sprites, (made in Affinity Designer) and the default particles in Unity.

 

Changes are applied using constant values, random values between two constants and custom curves.

In addition, Perlin noise is added to some of the effects to accentuate movement, rotation and scale.

Custom inspector tools in action using the Ring effect

Changes to these effects  are made using a set of custom controls available in the inspector, in the Unity editor.

 

These controls have been specifically designed with custom sliders for float values, that have been locked to a range to fit the brief.

 

This makes it easy for artists or designers to make quick changes to the effects and immediately see the results in the editor during play mode, without accidentally breaking the effects. 

Custom inspector tools in action for grouped effects

The main effect controls include:

  • Slot for each effect prefab to instantiate

  • Slot for changing sprite used in particle system

  • Dropdown menu for choosing effect activation key

  • Colour selector for changing the base effect colour 

  • Slider for setting the alpha percentage of the effect, (min 10% - max 70% to avoid obscuring characters in the scene) 

  • Toggle button for controlling audio effects on / off

  • Button to play the effect in play mode, within the Unity editor

Custom Editor script & enemies range finding script

Additional controls include:

  • Slider for player attack range, (attached to the player character). This controls the range the player can attack within by adding enemies to a public list when they enter the player’s attack range and removing them from that list when they leave   

  • Button to reset effect to a set of default settings

Enemies range finding in action using Execute Always attribute to update the range sphere collider live while not in "Play Mode"

Reflections & Future Development

This brief contained specific requirements that have all been met. I worked on two version of the effect controllers, (one for individual effects and another for group effects). This meant that I had to transfer code between these scripts as the controls changed and new functions were added. In the future I will work on one version of the controller script until all the requirements have been met before expanding the functionality to a group effect controller. This will minimize repeating code and reduce time ensuring functionality is matched in both version. 

In the future I would like to add further controls to allow artists to extend the functionality of the controls and customise them through the Unity editor without having to ask for changes in the code base. It may also be useful to implement a series of checks on the type and resolution scale of sprites added to effects, so that effects can remain consistent. 

Further development would also include added reactions for each effect. This includes making each effect impact either the player character or the enemies in the scene. This could be applying damage or healing to characters, as well as applying status effects such as poison or bleed damage. 

Overall this project stretched my imagination and forced me to think outside the box when designing solutions to the problems that occurred during development. Making sure that effects were instantiated in the correct position and were set to follow the correct character was a challenge. Good use of tags in Unity helped to allow for identification of enemies in the scene, and also those that were in range of the player. Control over the individual modules of each particle system was also challenging. Good use of references, tags and for loops allowed for quick checks to be made and effects to be updated in the editor. 

bottom of page