top of page

Kurat VFX - Contract Work
Technical Artist Portfolio

Bonfire effect and lighting

Introduction

Here are the visual effects created during the contract work for the game Kurat. Kurat is a game revolving around Estonian folk mythology involving physics based melee combat. It is being created using a mix of pixel art and 3D models. There was a loose task list set out by the team for creating the visual effects for Kurat.

This list included:

  • Pixel art and Unity's Shuriken Particle System for most effects, (to fit the character art style). 

  • Loading of the main game level, (a rumble effect with added lighting).

  • Effects for summoning the player. 

  • Effects for summoning each enemy, (with inspector controls for level designers to use).

  • Bonfire effect, using Unity's Visual Effect Graph for a more realistic result.

  • Frog enemy dust cloud effect for its attack landing. 

  • Blood splatter effect for when characters and enemies are hit in combat.

Design Brief

  • Effects should be quick and clean.

  • A mixture of pixel art style effects and more realistic effects, (created using Unity's Visual Effect Graph).

  • Effect should be ready to be combined with sound effects and designed with sound effects in mind. 

  • All effects should be built in their own scene within Unity and tested thoroughly before pull requests are made, to pull VFX branch into the main branch on GitHub.

  •  Use GitHub for source control management. Communicate clearly at all times, regarding updates to branches and any merging of branches into the VFX branch.

Blood splatter effect on enemy

Script to provide custom inspector controls for summoning effects. This allows designers to edit effect easier and efficiently without having to gain a detailed understanding of the particle system. 

Each module is also bound to ranges to prevent unwanted results in the effect. This makes editing the effect stress-free. 

Summon 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.

Dust cloud effect for frog enemy

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 int 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. 

Level loading effect with camera shake animation

The summon effect controls include:

  • Slot for inserting a custom rune sprite to float above the effect.

  • 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 for animating the rising runes.

  • Slider for controlling the speed of the rising runes animation.

Custom inspector controls for summon effect

Future controls:

  • Randomise toggle to create random coloured effects.

  • Button to play the effect for testing.

  • Slots for added custom sprites to the floor ring effects.

  • Multiple colour options for customising each element of the effect separately. 

  • Button to return the effect to a set of preset default values.

Summon effect for enemies

Personal Reflection & Future Personal Development

This project was challenging both technically and organisationally. There was a tight deadline to get all the work finished by and the quality of the work needed to be of a high technical standard. The design brief was detailed and contained clear instructions as to which visual effects needed to be developed as well as the art style of each effect. There were strict constraints on how much memory each effect could take up and it was important that each effect was optimised for the game build in order to avoid slowing down the frame rate. 

As a developer it was possible to work in a focused manner on a specific set of skills for the duration of the contract. Using Unity's Shuriken system and Visual Effects Graph allowed for a wide range of effects to be produced for the project, that would fit the varying art styles outlined in the brief. While a good understanding of the Shuriken system was already in place at the start of the project, it was important to further develop these skills and begin to implement Visual Effects Graph effects into the game. 

Getting large amounts of critical feedback from the team was useful in developing each effect further and making positive progress throughout the contract. Without this feedback it would not have been possible to make the changes necessary to bring the work to the finished standard. Play-testing and feedback gave clear insights into what needed to be changed and why. This also allowed for more detailed knowledge of the effect systems inside Unity and for exploration of multiple paths for creating effects in new and interesting ways, to achieve the desired results. 

Over the next few years there will be an increased focus on the Visual Effects Graph in Unity as it is capable of producing incredible results and handling enormous numbers of particles. This is due to the use of the computer's graphics card to process vast amounts of positional data, as opposed to the old system which uses the CPU. Unfortunately, one limitation of the new system is that it is not optimised for real-time lighting. This means that there is still a strong reason to use the old system in certain instances. Development of custom inspector control elements for each effect was one of the goals of this contract, in order to enable the design team to easily edit the effects at anytime. Further development of these scripting skills and tool development will be essential in the future. 

Communication between all the team members during this contract was excellent and weekly team meetings helped to keep the project on track. Good use of source control, (GitHub) and project management software, (HacknPlan) was also essential to managing the project. As the contract period draws to an end, a team meeting to discuss the possibility of an extension has been arranged. It would be brilliant to be given the opportunity to continue working on this project as the game is looking fantastic and helping to take it to release would be a great experience. Easily the best team experience so far, as a developer. 

bottom of page