Velos is a lightweight, modular 2D game engine built in C++20 with SDL3. It provides a simple framework for creating games with entities, shapes, input handling, events, and a camera system.
Velos started as a personal project to explore engine architecture, learn modern C++ patterns and build something minimal yet extensible.
- Modern C++ API: Memory-safe entity management using smart pointers.
- Built-in Physics System: Custom collision detection and resolution with manifold generation and event callbacks.
- Advanced Input Handling: An action-driven input system supporting states like Press, Hold, Release and HoldCompleted.
- Camera System: Viewport manipulation,
worldToScreencoordinate mapping, and smooth automated entity tracking (CameraFollowMode::Smooth). - Scene Graph & Transforms: A hierarchical coordinate system where moving an entity automatically calculates the world matrices of all attached shapes and colliders.
flowchart LR
A([▶ Start]) --> B[Init<br/>Window] --> C[Init<br/>Physics] --> D{Loop}
D --> E[Poll<br/>Events] --> F[Process<br/>Input] --> G[Update<br/>Entities] --> H[Physics<br/>Step] --> I[Render<br/>Frame] --> J[Sweep<br/>Destroyed] --> D
D -->|stop| K([⏹ Stop])
style A fill:#238636,color:#fff,stroke:none
style K fill:#da3633,color:#fff,stroke:none
style D fill:#1f6feb,color:#fff,stroke:none
flowchart LR
subgraph Loop [" Game Loop "]
direction LR
I[Input] --> U[Update] --> P[Physics] --> R[Render]
end
subgraph Entity [" Entity "]
direction TB
T[Transform]
S[Shapes]
C[Colliders]
end
U --> Entity
P --> C
R --> S
Explore the documentation to start building your game:
- Installation Guide
- Quick Start and Usage
- Engine Architecture and Systems
- API Reference
- Contributing Guidelines
This project was developed with assistance from AI tools acting as an architectural and technical advisor. AI was used to help design system architectures, understand complex mathematical formulas, and generate utility structures.