Spite: Ashes Of Ephtael

Game project #5

  • Reference game: Diablo 3
  • Time: 14 weeks (half-time)
  • Team: 20 developers
  • Engine: LAMP Engine (project group’s custom built engine in C++ DX11), with Unreal Engine 5 as level editor

Contributions

This was the project where we built an entire game engine from scratch, LAMP Engine. I was responsible for most of the initial setup, including integrating our graphics engine, configuring Premake, setting up the necessary project files and libraries and building engine systems.

Further contributions:

  • Graphics Engine
    • Full particle system from the ground up
      • 2D particles, mesh particles, soft particles, ribbon particles
    • 3D projected decals
    • Sprite rendering
    • Cascaded shadow mapping
    • Instanced rendering for performance optimization
    • Frustum culling for meshes, particle systems and animations
  • Tools & Pipeline
    • Pipeline connecting the Unreal Engine level editor to our custom engine, including a “Play From Here” capability that enables instant in engine game startup from any editor selected position
    • Pipeline for Unreal landscape integrated into our engine, with material blending using splatmaps and heightmaps
    • Pipeline for creating and applying custom shaders in Unreal to our custom engine
    • UI Maker Tool for our custom engine using Dear ImGui
  • UI & Player Experience
    • UI systems, menus and extensive HUD
  • Engine & Systems
    • Engine setup and core system architecture, including game loop handling and scene management
    • Debug features such as fps counter, frame time graph, collider visualizer, navmesh visualizer, debug drawer,  drawcalls counter and a graphics debugger
    • Asset registry system with FBX serialization to binary format
    • Navmesh functionality, including raycasting from screen coordinates
    • Achievement system with UI

My Visual Highlights

3D projected decals

Built 3D projected decals from scratch in our graphics engine using a box volume and local-space transformations in its pixel shader. Used for VFX such as ground effects, blood splatter, poison areas and environmental effects. 

Particle system

Created full particle system integrated into our DX11 graphics engine. Supports 2D particles, mesh particles, soft particles and ribbon particles, along with advanced movement features such as custom curve-based distributions and attaching to skeleton mesh joints. Worked in close collaboration with Technical Artists to support what they needed. 

UI Maker Tool

In-engine UI creation tool built with Dear ImGui. Features include interactive sprite manipulation (Gizmo for position, rotation, scale), multi-select, duplication, undo/redo, JSON serialization, render layers and custom shader support.

Blended materials with variable heightmaps

Shader and pipeline for terrain material blending using splatmaps painted in Unreal combined with weighted heightmaps. Supports dynamic blending based on height variation for more natural transitions.

Action bar implementation

UI system including ability cooldowns, XP bar lerping, mana glow effects and responsive visual feedback depending on ability state.

Credits

Programmers

Brian Wannstam
Camilo Chavez Torres
Christian Le
Jonas Anders
Linus Rodhammar
Wiktor Ciechonski

Artists

Dante Norling Eklöf
Linus Bergström
Oliver Andersson
Oliver Lincke

Audio

Kimberly Faith Palsäter
Björn Djurnamn

Technical Artists

Markus Norén
Marinó Fannar Bjarnason
Nora Komphe

Animators

Lisa Martjin
Anders Nilsson
Viktoriia Shvydak

Level Designers

Nom Köhler
Love Lustig
Tiger Tjellsen