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
- Full particle system from the ground up
- 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