top of page

Spite : Absolution

About

Spite: Absolution is a top down ARPG inspired by Blizzards Diablo 3. The game was developed in an in house engine written in C++ with DirectX11. 

I worked on rendering, tools and pipelines for technical artists and animators. I also worked on making interfaces to help the other programmers on the team easily implement VFX, SFX and Animations for gameplay elements.

spite_1.gif
About

Main Responsibilites

Rendering

For the project I adapted the code from our graphics course into a custom rendering engine built upon DirectX11. 

For this project I added material functionality, where custom shaders, textures and more could be added to each individual model.

Spite_2.gif
Main Responsibilities
carbon (3).png

The rendering was optimized with two layers of culling to ensure that the game runs at 60 fps, even when multiple lights and shadows are drawn.
 

The first pass implemented was view frustum culling. Inspired by the talk "Culling the Battlefield" by Daniel Collin at Dice, culling was checked between the view frustum and bounding spheres, which left us with efficient and easily manageable code.

The second pass of culling was designed especially for Spite : Absolution. Since the game is set indoors, there were no places were we would have to look beyond a certain range. Thus we could simply cull all objects outside a certain range from the camera, which allowed us to keep performant without any further spatial partitioning.  

carbon (4).png

Shaders

This was our first game working together with technical artists. I worked closely with the technical artists to provide and implement their expected engine features.

For the shaders in Spite : Absolution I provided buffers with data required to do deffered and forward rendered animated shaders.

fe66e3e19721290dfb264e431239947a.gif

Sprites

GS_HLSL_Sprite_2.png

I implemented screenspace sprites utilizing geometry shaders. The sprites required to have multiple settings, such as texture rectangles, color and scale, which all could be handled by the geometry shader.

bottom of page