Blightspire

Fps arena shooter made in a custom engine

Trailer


Project overview

This project is open source, Click here to take a look!

You can also get the game on steam!

Scope:

Blightspire is an FPS arena shooter made in a custom engine over the course of 32 weeks. Our team included 11 people of which 10 were programmers and 1 designer.

Tech Stack & Workflow:
  • Languages & APIs: C++, Vulkan, Wren

  • External dependencies: SteamSDK, EnTT, WrenBind17, FMod, ImGui, stbImage, SDL(windowing and platform abstraction only).

  • Shaders: GLSL

  • Build & Tools: Clion & Cmake, GitHub and Perforce(version control), Codecks (collaboration), and Tracy for profiling.


My Role, contributions, and responsibilities

  • Architected, implemented and maintained the core UI system (including layout) for our custom engine.

  • Developed key UI elements, including the HUD and Main Menu.

  • Enhanced the engine's resource loading pipeline for improved robustness and integration with the rest of our engine.

  • Collaborated across disciplines, contributing to level design, Being responsible for UI design later in the project, and creating our animations.

  • Developing key gameplay systems, including large chunks of the weapon system and movement system.

  • Proactively identified and resolved technical challenges and design conflicts through effective communication and problem-solving.


  • UI system (Lead & Almost sole Implementer)

Resource Loading Pipeline Enhancement

I made significant contributions to improving the engine's resource-loading pipeline, focusing on enhancing its reliability and integration with the overall architecture. Specific areas of focus included:

  • Better separation of concerns: changed the resource loader to output intermediate data which can be transformed into the wanted form by other engine systems.

  • GPU Resource Creation: Implemented systems for creating GPU resources from this intermediate data(textures, meshes, models, and materials).

  • Integration & Robustness: Worked to ensure the loading process was less prone to errors and integrated smoothly with other engine systems that rely on loaded assets. This resulted in increased developer velocity later on in the project in multiple areas including but not limited to:

    • GLTF animation parsing

    • NavMesh creation from imported meshes

    • Creating collision data from imported meshes

Cross-Disciplinary Contributions

Beyond core programming tasks, I actively participated in other areas of development, including contributing ideas and efforts towards level design and creating animations. This provided valuable context and a broader understanding of the game development process.