Blossom
Blossom is a relaxing game where you play as a bee, with the goal to collect
pollen to deliver back to your hive and revitalize the environment.
This school project started off as a graphics focused custom engine project
for the first two months in collaboration with 4 other programmers.
For the other two months, we worked together with artists and designers in a team
of 11 people to use this custom engine to create the game Blossom.
Graphics Programmer
Tools programmer
5-11 people
4 months
Windows
PlayStation 5
Custom Engine
ENTT
OpenGL
FastNoise2
For our project, we got given the brief to create a custom engine for a nature simulator game. Since most
of our team's main interest and skills were in graphics programming and we had limited capacity, we wanted to
spend most of our resources on graphical features and we very quickly decided to take a procedural approach
to the level editor.
To achieve this editor, I worked on integrating an existing noise editor into our custom engine. Together with
the drag and drop level editor GUI another team member made, this noise editor allowed us to create noise maps with ease
directly in our engine's editor, save them and drag and drop them into the level editor for quick iterations on our level.
These noise maps were used to for example elevate the terrain or as a density map for placing vegetation and other props.
The noise editor itself was only ported into our engine, but was not written by me and can be found on the GitHub repository
linked below.
Bloom
Throughout this project, I mainly worked on post processing effects for both platforms PC and PS5. One of
these effects I implemented was Bloom.
For this implementation I threshold the main render pass' output to get the highest brightness values.
These are written into another render target and in the blur pass blurred using a 5x5 gaussian kernel.
This pass I first implemented using vertex and fragment shaders on PC. Later when I learned how to
implement compute shaders, I implemented the gaussian blur pass using a compute shader pass instead on PS5.
The pseudo code for this pass can be found below.