About Experio
Experio is an early-stage custom C++/OpenGL game engine for Windows. Written using OpenGL, imgui, Runtime-Compiled C++, and Microsoft's Win32 API.
Technical Details
16 months
Sole developer
Custom Game Engine
Postmortem
My Responsibilities
Build the engine systems, including:
Rendering, including mesh, texture, particle, billboard, and UI rendering
Hybrid Entity Component system for scripting
Serialization and Deserialization of scenes/objects
Editor interface, including various development and profiling tools
Build tools to turn game projects into executable applications
What Went Right
Learned a significant amount about software development, graphics programming, and game engine architecture
Consistent daily work schedules allowed the project to maintain momentum
Good internal documentation allowed the project to persist long term
New file formats were designed to be easily extended, allowing new file sections to be added easily
What Went Wrong
Editor features were prioritized over creating a full game with the engine.
“Spaghetti” code made adding and removing features time consuming.
Custom written code was often chosen over external libraries, leading to wasted time and avoidable bugs
Lessons Learned
Maintain a consistent daily work schedule for long term projects to prevent momentum loss
When creating custom file formats, design for scalability and extendibility
Prioritize game creation over cool features to keep development focused
Use techniques such as design patterns and decoupled event systems to reduce spaghetti code and maintain clean architecture
Use external libraries liberally to reduce development time and bugs