JENNA TOIVONEN

VFX & SHADER ARTIST // ASPIRING TECHNICAL ARTIST // INDIE DEVELOPER


- PORTFOLIO -


- GAME JAM LIBRARY -


- HIGHLIGHTED EXPERIENCE -

PROJECT INFORMATION:
- A survival horror game with exploration and puzzle elements, set in Edo-period Japan
- Imitating early PlayStation game aesthetics and gameplay with modernized quality of life features
- Developed by a team of 12 students and recent graduates
- Estimated playtime is currently 3-4 hours
- The game is expected to be completed in Q3 2025

RESPONSIBILITIES:
- Leading a diverse team of 12 people together with the team's creative director
- Established a volunteer-based, fully remote working environment
- Conducting team meetings, scheduling and monitoring project milestones, assigning tasks and responsibilities as well as addressing issues to keep the project on track
- Creating and updating documentation based on the design decisions of the creative director and the rest of the team
- Overseeing general production and optimizing progression efficiency.


- HELLO0 IT'S ME -

I'm a recent Game Design graduate from the South-Eastern Finland University of Applied Sciences. I graduated in December 2024 as a Bachelor of Culture and Arts.I'm aiming to specialize in shaders and VFX but I have also been diving into the world of procedural modeling every now and then. I'm aspiring to one day become a technical artist. I love to work directly in the game engine to have a more "hands-on" feel in the game development and I'm always eager to learn as much as I can. Good communication and teamwork are my main priorities when working with a team of any shape or size and I have experience as a Game Producer in a team of 12 people.Feel free to contact me!


- SOFTWARE & TOOLS -

Art Software

Blender

4 years of experience
Very confident


Autodesk 3Ds Max

~1 year of experience
Know my way around


Affinity Photo 2

~2 years of experience
Confident


Substance Painter

3 years of experience
Confident


Substance Designer

~2 years of experience
Know my way around


Adobe Photoshop

~1 year of experience
Know my way around


SideFX Houdini

1 year of experience
Know my way around


Game Engines

Unity

4 years of experience
Very confident


Unreal Engine

1 year of experience
Know my way around


Godot

Less than a year of experience
Confident


PICO-8

Less than a year of experience
Confident


Version Control

GitHub

3 years of experience
Very confident


Plastic SCM

1 year of experience
Confident


Perforce

1 year of experience
Know my way around


Production & Planning

Notion

2 years of experience
Very confident


Figma

3 year of experience
Very confident


Miro

1 year of experience
Confident


PureRef

3 years of experience
Very confident



- ASSOCIATIONS AND GAME DEV STUFF -

IGDA Kymenlaakso Hub

Vice Hub Lead // 05/2024 - 12/2024
Volunteer // 10/2023 →
Supporting the local hub and helping students get closer to the industry

Sieniluola

Co-founder // 05/2024 →
A very small game collective run by two indie developers

Finnish Game Jam

Vice President // 11/2024 →
Deputy Board Member // 11/2023 - 11/2024
Helping to build the community around game jams in Finland


The cold night is closing in at the forge and foul creatures are lurking in the shadows waiting for the correct moment to strike. Your only companion is the comforting light of the fireplace in front of you but it's growing weaker and weaker. Eventually, it'll go out unless you do something to prevent it.Hämmeri was developed by a team of two people for the XAMK Game Jam 2023 and was then later continued and finished. The whole production together took 7 work days.Genre: Action, puzzle, horror elements
Platform: PC (Windows)
Engine: Unity
Role: 3D artist, VFX artist, UI artist
Team size: 2
Development Duration: 1 week
Completed: May 2023


Credits and contributions

Kuutti Paartola - General programming and game design talent


Embark on a haunting journey as a young woman uncovers her past, answering the call of a tormented soul. Explore an isolated shrine in Japan and be transported back to the Edo period. Navigate through the mysteries and terrors of a fateful night in this spine-chilling horror survival gameNorowareta: The Three Treasures started as a school assignment but after half a year of development, it turned into a larger student game project with a team of twelve members specializing in different roles.Genre: Survival horror, puzzle, action
Platform: PC (Windows)
Engine: Unity
Role: Game Producer, Level Assembler, 3D Artist, VFX Artist
Team size: 12
Development Duration: 2 years on/off
Expected completion: Q3 2025


Credits and contributions

Christopher Solis - Creative Director, 3D Animator
Mauri Rahkila - Art Director, 2D Concept Artist
Suvi-Kukka Kanerva - 3D Artist
Antti Keinänen - 3D Artist, Level Assembler, Level Designer
Kuutti Paartola - Programmer, Level Designer
Toni Tiilikainen - Programmer, Level Designer
Ida Rask - Programmer
Noora Hovatov - Narrative Designer
Ufuk Özden - Game Script Writer
Alise Hirvonen - 2D Cutscene Artist
Miriam Lucenius - 2D Concept Artist
Henri Brandt - Audio Composer and Producer

This procedural temple tool allows the user to generate different historically relevant ancient Greek temple variants. As this is my first project using Houdini and first time creating a procedural tool, the goal was to aim for usability and functionality over complex visual details. The tool features a couple of powerful controls to keep a user-friendly and understandable interface.This project was a part of the first block of my student exchange here at BUAS. The tool itself is created in Houdini and turntables and beauty renders are done in Unreal Engine.Project focus: Tool development, procedural modeling
Software used: SideFX Houdini, Unreal Engine (rendering)
Development Duration: 8 weeks
Completed: 09/2023

The interactive snow system features deformable snow that iinteracts with the player and adjust based on their movement. Additionally, the system changes the player's movement speed and animation based on snow depth and makes the snow stick to the player when walking in snow.The snow system was built as a part of the bachelor's thesis in culture and arts at South-Eastern Finland University of Applied Sciences. It was utilized as the practical implementation of the research outcomes and theory.Project focus: Shader-player interactivity, shader pipelines and production methods
Software used: Godot
Development Duration: 2 months
Completed: 11/2024


Credits and contributions

Kuutti Paartola - Background Music "Lumimusa"
Christopher Solis - 3D Character Animation "Walk in snow"
TRP - Ambient Sounds
LakeWoodSound - Ambient Sounds
GDQuest - 3D Character "Godot"
Free Stylized - Ground Material 02, Snow Material 01, Skybox 05, Rocks Asset Pack
Bajko - SFX Snow Footsteps
Konow3D - Stylized Fence
Alec Pike - Super Mario 64 Penguin


- BEHIND THE SCENES -

HÄMMERI

As the team for Hämmeri consisted of only two people, designing and creating the entire visual look of the game was on my list of tasks. For the VFX and shaders, my main responsibility was to design and make effects that fit the game's atmosphere and enhance the gameplay experience.Through this project, I deepened my understanding of designing effects that feel like they are part of the gameplay and also work as visual guidance for the player. My favorite effect from this batch is the ball of light with the trail that flies to the fireplace whenever the player completes a board. I learned about how to work with curves and how to layer different elements such as VFX graphs, particle systems and ribbons together to create nice and appealing results in an efficient way.


This page has a lot of GIF files which may take a while to load,
thank you for your patience!



- VFX & SHADERS -

Trails

One of the more interesting effects in Hämmeri is the ball of light accompanied by a trail. This effect appears whenever a pattern is completed to indicate success and the connection between the board and the fire creature.The effect is composed of two separate particle systems, the ball of light and a smaller sprite emitter. Additionally, two trails are created from the origin point, adding color variation and layers to the trail.The flying path of the effect is created with a visual bezier curve plugin for Unity. The selected path is randomized out of the three created options.


Fire Shader

The fireplace houses the friendly fire that helps to keep the foul creatures at bay.The fire effect is done with a simple shader graph which utilizes distortion and dissolving effects based on different noise textures.The parameters of the effect are exposed to the inspector to allow for easy editing .


Impact

The sense of impact is considered to be very important as the game is about hammering tiles after all. Hämmeri has a couple of different effects to imply collisions and impacts.Whenever the hammer hits the tiles on the board a set of sparks is released. The spark effect is done with a simple particle system. Due to it being a frequently appearing effect, all the values are randomized in every instance to make it appear unique.Aside from collision based effects, there is a light shine effect that appears on the correctly placed tiles whenever the player comples a pattern. The effect is also done with a particle system with streched sprites having zero velocity on spawn.


- BEHIND THE SCENES -

INTERACTIVE SNOW SHADER

The snow shader project was a part of my thesis titled Creating a dynamic snow shader aseet with shader-player interactions: industry pipelines in shader production for the bachelor's degree in game design. It was utilized as a practical demonstration of shader-player interactivity and as a showcase of the result outcomes.Throughout the thesis project I had the opportunity to learn shader programming as I didn't have any prior knowledge in shading languages when starting this project. Additionally, I also started learning Godot while working on the shader. I learned so much about the limitations of shaders and design complexities that often appear in shader production. On top of that, I had to utilize my problem solving skills to overcome all the issues I faced when working with the shader as well as the systems surrouding it.


This page has a lot of GIF files which may take a while to load,
thank you for your patience!



- FEATURES -

Deformable Snow

The main functionality of the snow shader is the displacement of the snow based on the player interactions. The snow is displaced in the locations where the player has walked.

Snow affecting player movement

The snow also affects the player movement as the player can walk with ease in the areas where the snow has been pressed down. In areas with deep snow, the player will struggle to walk and moves slower than normal.

Snow sticking to the player

The character shader is also tied to the whole snow system. The snow sticks to the character when walking in deeper snow but soon fades away when the player moves to cleared areas with less snow.


- SHADER SYSTEM BREAKDOWN -

Displacement Mask

The snow system heavily revolves around a displacement mask created based on the player's path. Multiple components of the system receive information through this texture.The path is drawn through a sub-viewport that places a custom made sprite to the player's location when the player is moving. The viewport texture isn't cleared to ensure that the previous sprites are not erased. The viewport texture or the drawing sprites are not visible in the rendering camera.The opacity of the drawing sprite is adjusted so that all the snow won't be pushed down instanty.


Snow Shader

The snow material is divided into two "layers". The surface snow and the snow that appears beneath as the player walks over it. The surface snow works with a PBR material with some adjustable parameters. The bottom layer has the same snow material with a color tint and a dirt blend. This combination allows for more customizability as the amount and blend smoothness of dirt visible can be adjusted.The shader also defines the height and displacement as well as the blend power between the two snow textures based on the exposed parameters.


Player Controller

The player controller receives information from the displacement mask and player inputs to define the correct movement state. The controller fetches the opacity value of the pixel in the detector location. If the opacity crosses a certain threshold the movement state is switched.The player controller also communicates with other components like the player camera controller, the movement controller and the character shader. The player movement speed, animation playback speed and other parameters can be adjusted from the player controller making the system easily customisable.The player controller is also easy to edit to allow for additional movement states or features.


Character Shader

The character also has a custom shader defining the default texture as well as adding the sticking snow on top of the player texture.The snow effect on the player texture is created with an opacity mask defining what parts of the character the snow should appear to. The patches of snow are made with a noise mask using a smoothstep function to define the size and smoothness of the snow.The shader has exposed custom parameters to easily adjust the properties easily. The snow's opacity control receives information from the player controller defining whether the snow on the player should be visible or not.


- FUTURE ADDITIONS -

As the snow shader was done as a part of a thesis, the time for the project was limited as the majority of the time was spent on research. I have some ideas for future additions and features I would like to add sometime soon.

  • Adding snow interaction support for multiple characters and objects

  • Detection for multiple materials in the player controller allowing to add areas that are not snow and don't affect the player movement as everything except the player path is currently read as snow

  • A custom in-engine vertex paint tool to support the creation of different material areas

  • Support for more complex surfaces (currently only supports rectangular areas) like larger terrain and possibly even round planet-like areas

Sacred jam game ground

Everyone tells me that a portfolio should only feature your absolute best work. I want to ask you dear visitor, how about the journey of getting to the point where we are at?As a very new developer, I discovered game jams and instantly fell in love with the concept. Through jams, I have had the chance to experiment, learn, collaborate and most importantly make lasting memories with new and old friends. Jamming actively took me to being a part of one of the most meaningful associations in Finland: The Finnish Game Jam and now I'm spreading the word of game jams hoping that I can help inspire people to create and collaborate as I was once inspired.