Niels Derderian

Junior Game Designer


Welcome to my portfolio, you'll find my best projects!

I am looking for a position where I can combine my technical skills and my game design knowledge in a team project.

Looking for mainly a Technical Design opportunity, I also have a generalist profile: I like to touch to everything in game development.


Socials

About meContact me
Back

Spiritrender

Team Size: 35 ⏱️ 2 weeks 🎭 Engineer

Game Jam in collaboration with many people around the world. Not having the same Time Zone was a challenge in order to not break the working flow.

  1. Team Size: 35
  2. Role: Engineer, Unreal HTML Consultant
  3. Duration: 2 weeks (4h/days)
  4. Theme: Balance

Game Overview

In this game, you play as Alaric the Spiritrender, a monster hunter tracking supernatural entities across Kelonia. You investigate the swamps of Darkmoor, gathering clues to identify the spirit you're hunting.

Managing your sanity is crucial, spending too long in the dark can make you vulnerable to being hunter. If that happens, you must evade or hide to survive.

Once you've collected enough evidence, you must identify the spirit in your journal. Guess wrong, and face serious consequences.

Tool I used:

UE iconUE icon

HTML5 with Unreal Consultant

I was recruited for my expertise in Unreal Engine 4 and HTML5, with a focus on delivering high-performance experiences optimized for web platforms.

  1. Provided technical and artistic feedback to the art team, ensuring assets were optimized for performance and compatibility with web deployment
  2. In charge of the integration of key assets: including 3D Models, animations, textures, and sound into the engine, with the help of other engineers, maintaining both visual quality and runtime efficiency.
  3. Collaborated closely with cross-functional teams to maintain a balance between aesthetic fidelity and real-time performance.

Html5 Art Good Practices sent to the Team


I. AI Scripting

Based on the AI Behaviour made by the Game Designer, I had to create the Monsters AI: "Mini" and "Main" Monsters.


Behaviour - Mini Monster

  1. Patrol on a predefined path if nothing is detected
  2. When detecting a light: Check Range between the source and him & try to reach it
  3. When reach a light source, check if it's a Player:
    1. If it's a player, chase him and try to hit him
    2. If not a player, destroy the light source
  4. Fly away when having a successful hit on Player

Behaviour - Main Monster

  1. Randomly appear when the Player's Sanity Under 50%
  2. Always see the Player, check its distance and tries to reach him
  3. Is stunned while crossing a salt circle
  4. When reach the Player, a successful hit ends the game

To make the behaviour tree easier to read and functional the way needed, I've created custom task (Patrol, Roaming), services (Check Ranges) and conditions (Check Player's Conditions).


Navigation

In a Gym Level, I've set up the Navigation Mesh and the Navigation Filters, to creates Safe Zone and Hiding Spot Volumes for the Player.

It was also used to test the AI behaviours.


Spawner & Patrol Path

I've created two actor for the Level Designer: Monster Spawner and the AI Patrol Path:

  1. The spawner contains the logic of respawn for each mini monster, and control their population count.
  2. The Patrol Path was used by the Level Designer to define points inside the level that the Mini Monsters would use in one of their state.

II. Gameplay Functions (In Blueprint)

Light System

I've setup a Dynamic Light Manager, that automatically attach to any light source in the level a Sphere Collision, that notify is the player is in the Dark or Not.
This is used by the Sanity System.

The Sphere Collision takes the Light Attenuation Range value as radius.


Sanity Blueprint Component

The Sanity System is attached to the player, and is used by Game Designer & Other Programmer to define the Sanity Variables of the Player, and contains every Operation, and Function needed for the Gameplay.

The System:

  1. Manage the Main Monster Spawn based on Sanity
  2. Broadcast Events to other system when Sanity Change

Example: While being in the dark, the player will loose 1 Sanity Point Every 20s (0.05 Points per Seconds)


End Game Sequence

I've been working with the Animator to create an End Game sequence when the Main Monster hits the player.

When the monster hits the Player, the sequence is created at the Player Location, by moving the root of the Sequence Data to play it as intended.


Flying Sound Tool

For the Level Designer, I've setup a "Flying Sound Cue" Tool, to play sound that are moving at runtime along a spline loop: Here it is used for Crow and Owl, to give more life to the environment.