A modern, high-performance game engine designed for flexibility and performance. Built with C++17 and featuring SIMD-optimized math, advanced rendering, and comprehensive development tools.
- SIMD-Accelerated: SSE/AVX optimized vector and matrix operations with runtime CPU detection
- Complete 3D Math: Vec2, Vec3, Vec4, Mat3, Mat4, Quaternion with full operator support
- Cache-Friendly: 16-byte aligned structures optimized for modern CPUs
- Batch Processing: Efficient processing of arrays for optimal SIMD utilization
- Modern OpenGL: 3.3-4.6 support with clean abstraction layer
- Command Buffer System: Efficient GPU command submission and batching
- Render Passes: Organized rendering stages (forward, deferred, post-processing)
- PBR Materials: Physically-based rendering with metallic-roughness workflow
- Advanced Camera: Perspective/orthographic projections with frustum culling
- Octree Spatial Partitioning: O(log n) object queries with configurable depth
- Multiple Query Types: Point, sphere, box, ray, and frustum-based object lookup
- Performance Monitoring: Real-time statistics and optimization feedback
- Memory Efficient: Smart pointer-based RAII resource management
- Complete Format Support: TGA, BMP, PNG (custom DEFLATE), JPEG (baseline DCT)
- Self-Contained: No external dependencies, production-ready implementations
- Optimized Loading: Direct GPU texture creation with efficient memory usage
- Thread-Safe: Mutex-protected concurrent logging operations
- Multiple Outputs: Console and file logging with independent level control
- File Rotation: Automatic log rotation with size limits and file count management
- Structured Data: Key-value pair logging for analytics and debugging
- C++17 Standard: Modern language features with RAII principles
- Cross-Platform Ready: Clean platform abstraction layer
- Extensible Design: Plugin-ready architecture for future expansion
- OS: Windows 10/11 (64-bit)
- CPU: x64 with SSE2 support (AVX recommended for optimal SIMD performance)
- GPU: OpenGL 3.3+ compatible graphics card
- RAM: 8GB minimum, 16GB recommended
- Visual Studio 2022 (Community/Professional/Enterprise)
- CMake 3.16+ (3.20+ recommended)
- Git for version control
git clone https://github.com/yourusername/Pyramid-Engine.git
cd Pyramid-Engine
# Generate build files
cmake -B build -S . -DPYRAMID_BUILD_EXAMPLES=ON
# Build the engine
cmake --build build --config Debug
- Open Visual Studio 2022
- Select "Open a local folder"
- Choose the
Pyramid-Engine
directory - Wait for CMake configuration
- Build โ Build All (Ctrl+Shift+B)
cd build\bin\Debug
BasicGame.exe # Basic game with 3D scene
BasicRendering.exe # Advanced rendering showcase
๐ก Need help? See our Build Guide for detailed setup instructions.
Create a simple game in just a few lines:
#include <Pyramid/Core/Game.hpp>
class MyGame : public Pyramid::Game {
public:
void onCreate() override {
// Initialize your game
PYRAMID_LOG_INFO("Game starting up!");
}
void onUpdate(float deltaTime) override {
// Update game logic
}
void onRender() override {
// Render your scene
auto* device = GetGraphicsDevice();
device->Clear(Pyramid::Color(0.2f, 0.3f, 0.4f, 1.0f));
}
};
int main() {
MyGame game;
game.run();
return 0;
}
#include <Pyramid/Math/Math.hpp>
using namespace Pyramid::Math;
// Automatic SIMD acceleration
Vec3 position(1.0f, 2.0f, 3.0f);
Vec3 velocity = Vec3::Forward * speed;
Vec3 newPosition = position + velocity * deltaTime;
// 3x faster than standard math libraries
Mat4 mvp = projection * view * model;
#include <Pyramid/Graphics/Scene/SceneManager.hpp>
// Octree spatial partitioning for massive worlds
auto sceneManager = SceneUtils::CreateSceneManager();
sceneManager->EnableSpatialPartitioning(true);
// Lightning-fast spatial queries
auto nearbyEnemies = sceneManager->GetObjectsInRadius(playerPos, 10.0f);
auto visibleObjects = sceneManager->GetVisibleObjects(camera);
#include <Pyramid/Util/Log.hpp>
// Thread-safe, high-performance logging
PYRAMID_LOG_INFO("Player scored: ", score, " points!");
PYRAMID_LOG_ERROR("Failed to load texture: ", filename);
// Structured logging for analytics
PYRAMID_LOG_STRUCTURED(LogLevel::Info, "Level completed", {
{"level", "forest_1"}, {"time", "120.5"}, {"score", "1500"}
});
- New to game engines? โ Start with Getting Started
- Ready to build? โ Follow the Build Guide
- Want to contribute? โ Read Contributing Guidelines
- Need API docs? โ Browse API Reference
- Looking for examples? โ Check Examples & Tutorials
Pyramid-Engine/
โโโ ๐ฎ Engine/ # Core engine library
โ โโโ Core/ # Game loop and foundation
โ โโโ Graphics/ # Rendering and visual systems
โ โ โโโ Scene/ # Scene management with octrees
โ โ โโโ Renderer/ # Command buffers and render passes
โ โ โโโ OpenGL/ # OpenGL 3.3-4.6 implementation
โ โโโ Math/ # SIMD-optimized mathematics
โ โโโ Platform/ # Cross-platform abstractions
โ โโโ Utils/ # Logging and image loading
โ โโโ Audio/ # 3D spatial audio (planned)
โ โโโ Physics/ # Rigid body dynamics (planned)
โ โโโ Input/ # Multi-device input (planned)
โโโ ๐ฏ Examples/ # Learning examples
โ โโโ BasicGame/ # Your first game
โ โโโ BasicRendering/ # Advanced graphics showcase
โโโ ๐ docs/ # Comprehensive documentation
โโโ ๐ ๏ธ vendor/ # Third-party dependencies
โโโ ๐ง CMake build system # Multi-platform builds
Module | Status | Documentation | Examples |
---|---|---|---|
๐ฎ Core Engine | โ Complete | โ | โ |
๐จ Graphics System | โ Complete | โ | โ |
๐งฎ Math Library | โ Complete | โ | โ |
๐ผ๏ธ Image Loading | โ Complete | โ | โ |
๐ Logging System | โ Complete | โ | โ |
๐ง Platform Layer | โ Complete | โ | โ |
๐ต Audio System | ๐ In Progress | โ | โณ |
โก Physics Engine | ๐ In Progress | โ | โณ |
๐ฎ Input System | ๐ In Progress | โ | โณ |
We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, your help makes Pyramid Engine better for everyone.
- ๐ Report bugs and suggest features via GitHub Issues
- ๐ป Submit code improvements and new features
- ๐ Improve documentation and write tutorials
- ๐ฎ Create examples to help other developers learn
Ready to contribute? Read our Contributing Guide for detailed instructions.
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License - Free for commercial and non-commercial use
โ
Use in commercial projects โ
Modify and redistribute
โ
Private use โ
Include copyright notice
- GLAD - OpenGL function loading
- Microsoft - Visual Studio and Windows API
- CMake - Cross-platform build system
- Community contributors - Bug reports, features, and feedback
โญ Star this repo if you find it useful! โญ
Report Bug ยท Request Feature ยท Documentation ยท Examples
Built with โค๏ธ for the game development community