Sock Engine
A lightweight 3D game engine made with C++
Overview
Sock Engine is a custom 3D game engine made with C++. The engine is primarily a learning project focused on understanding game engine architecture and graphics programming fundamentals. Currently, the engine is mostly just a glorified renderer with some UI controls for the scene, but I work on the engine whenever I'm not making games and it gets closer to the intended experience with every update.
Technical Stack
- Language: C++
- Graphics API: OpenGL
- ECS: EnTT
- Math: GLM
- Models: Assimp
- Textures: SOIL2
- Windowing: GLFW
- UI: Dear ImGui
- Build System: Premake5
Features
Rendering
- OpenGL forward renderer
- Shadow mapping with PCF filtering
- Blinn-Phong lighting model with directional lights
- Model loading via Assimp
- Multi-texture support
- Skybox rendering
- Debug visualization modes
Scene Management
- Entity-Component-System using EnTT
- Hierarchical transforms with parent-child relationships
- Component-based architecture
- Runtime scene graph management
Editor
- Level editor powered by Dear ImGui
- Scene hierarchy with drag-and-drop
- Property inspector for components
- Real-time viewport rendering
- Debug panels and performance metrics
Core Systems
- Event-driven input handling
- Asset management pipeline
- Shader compilation system
- Skeletal animation system
- Lua-based build system with Premake5
What's Next?
- Improved asset management with file system
- Scene and asset serialization with a custom, JSON-based file format
- Physics integration with Jolt Physics
- Audio system with SoLoud
- Lua scripting with sol2