Dataflow

Description

Dataflow is a tower defense game made in a custom game engine with a total of 7 programmers and 1 Visual artist. The project's lifetime span was 24 weeks in which tight coordination and specialization played a larger role.

Team: 7 programmers and 1 artist.
Platforms: Windows (Itch.io) and Nintendo switch (not published).
Span: February 2021 – June 2021
API/Engine: Custom - OpenGL, Switch API, GLFW, FMOD
Software/Tools: Blender, Houdini (exporting), Visual studio 2019, Perforce, Jira, Swarm, Jenkins.

Contributions as Graphics programmer

- Contributed to the world hierarchy abstraction and model loading API allowing the gameplay programmers to load and render 3D model data.
- Contributed to the data-driven design of the graphics backend- which allowed the graphics backend to integrate with the ECS library the engine and game used.
- Contributed to the PBR shading model implementation, which allowed for metallic-like surfaces to be rendered with the freedom the artist(s) desired.
- Responsible for the bloom implementation, which created the neon-like effect of a night-like city.
- Contributed to the art export pipeline as the model data had to be exported from Houdini to Blender to the engine. This ensured no strange imported models and streamlined the art pipeline and workflow.
- Multiple performance investigations on the Nintendo Switch, as to boost the performance of the game. These investigations resulted in a roughly 40% performance increase.

Contributions as scrum master

- Designing and integrating the Jira workflow, through time logging by the team, watching and managing team velocity; grooming the backlog with the product owner.
- Organizing the standups and keeping track of everyone's work.
- Planning sprint goals with the product owner, setting up sprints in a scrum environment and communicating this to the team through Jira to ensure deadline feasibility.


Evaluation

- I've come to realize how important 3rd party dependencies are. Halfway during development the team made the decision to switch the ECS library the engine used, which resulted in more stability in the engine and game.
- Deadlines take priority over all- especially if they can be achieved, this was the first project in which I had to sacrifice quality to deliver result in places in the codebase.
- I've learned a lot about photo realistic rendering within rasterized techniques and the differences between fundamental lighting techniques, which provided a lot of artistic freedom to the visual artist(s) involved.
- An asset importer/validator would've been a valuable tool to have during the development of this project as we had a few performance issues we were unaware of until profiling and noticing that certain meshes went way over budget with the shader the engine used.