Obsidian Edge
Course Instructor
Pramod Gupta
Abstract
Obsidian Edge is a custom-built game engine developed to support rapid creation of 2D card games while deepening familiarity with rendering systems, low-level architecture, and modular engine design. Implemented in C++, the engine features a custom 2D renderer built with GLFW (an open source, multi-platform library for OpenGL development), a high-performance UI system powered by Dear ImGui, audio playback via the Miniaudio library, and fully handmade digital visual assets. The system supports essential card-game operations including, dealing, shuffling, and discarding. This provides a streamlined foundation for prototyping and implementing card-based mechanics.
Its lightweight, modular architecture enables efficient iteration and allows individual subsystems to be extended or replaced with minimal friction. This work also highlights the challenges and design considerations encountered while constructing an engine from the ground up, including rendering performance constraints, asset-management strategies, component organization,and coding for modularity and scalability or for scenarios that could exist. Future development will focus on integrating 3D rendering capabilities, expanding multi-platform support, and introducing scripting through additional programming languages. These improvements aim to increase flexibility and improve usability for larger or more complex projects.
Obsidian Edge
Obsidian Edge is a custom-built game engine developed to support rapid creation of 2D card games while deepening familiarity with rendering systems, low-level architecture, and modular engine design. Implemented in C++, the engine features a custom 2D renderer built with GLFW (an open source, multi-platform library for OpenGL development), a high-performance UI system powered by Dear ImGui, audio playback via the Miniaudio library, and fully handmade digital visual assets. The system supports essential card-game operations including, dealing, shuffling, and discarding. This provides a streamlined foundation for prototyping and implementing card-based mechanics.
Its lightweight, modular architecture enables efficient iteration and allows individual subsystems to be extended or replaced with minimal friction. This work also highlights the challenges and design considerations encountered while constructing an engine from the ground up, including rendering performance constraints, asset-management strategies, component organization,and coding for modularity and scalability or for scenarios that could exist. Future development will focus on integrating 3D rendering capabilities, expanding multi-platform support, and introducing scripting through additional programming languages. These improvements aim to increase flexibility and improve usability for larger or more complex projects.