# boomingtech/piccolo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/boomingtech-piccolo).**

6,638 stars · 1,976 forks · C++ · MIT

## Links

- GitHub: https://github.com/BoomingTech/Piccolo
- awesome-repositories: https://awesome-repositories.com/repository/boomingtech-piccolo.md

## Topics

`cplusplus` `cpp` `game-development` `game-engine` `imgui` `physics` `rendering` `vulkan`

## Description

Piccolo is a mini game engine designed for building small-scale games with cross-platform support. It compiles and runs on Windows, macOS, and Linux from a unified codebase, and includes an editor integration for live editing and debugging.

The engine uses a component-based entity system with data-oriented design, storing component data in contiguous arrays for cache-friendly iteration. It features a fixed timestep game loop that decouples simulation updates from rendering frame rate, and provides a physics debug overlay that renders visual shapes from simulation data synchronized with the editor camera.

Piccolo also generates a `compile_commands.json` file for accurate code intelligence in editors, and uses CMake to automate cross-platform builds. The engine bridges the editor and game runtime through a shared data layer for live editing and debugging.

## Tags

### Game Development

- [Game Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines.md) — Compiles and links engine source code into executable binaries for Windows, macOS, and Linux platforms. ([source](https://cdn.jsdelivr.net/gh/boomingtech/piccolo@main/README.md))
- [Entity Component Systems](https://awesome-repositories.com/f/game-development/engine-architecture/entity-component-systems.md) — Organises game objects as entities with attachable components for modular behaviour and data management.
- [Cross-Platform Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/cross-platform-engines.md) — Compiles and runs on Windows, macOS, and Linux with a unified codebase.
- [Runtime-Editor Synchronization](https://awesome-repositories.com/f/game-development/engine-architecture/game-loops/editor-integrated-loops/runtime-editor-synchronization.md) — Bridges the editor and game runtime through a shared data layer for live editing and debugging.

### Part of an Awesome List

- [Game Engine Development](https://awesome-repositories.com/f/awesome-lists/devtools/game-engine-development.md) — Builds and iterates on a cross-platform game engine from source code with support for Windows, macOS, and Linux.

### Development Tools & Productivity

- [Cross-Platform Build Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-engines/cross-platform-build-systems.md) — Uses CMake to generate platform-specific project files and compile engine code for Windows, macOS, and Linux.

### Software Engineering & Architecture

- [Data-Oriented Component Storage](https://awesome-repositories.com/f/software-engineering-architecture/data-oriented-component-storage.md) — Optimises memory access patterns by storing component data in contiguous arrays for cache-friendly iteration.
- [Fixed-Timestep Loops](https://awesome-repositories.com/f/software-engineering-architecture/reactive-update-scheduling/update-cycle-controllers/update-application-timing/animation-frame-synchronization/game-loop-updates/fixed-timestep-loops.md) — Decouples simulation updates from rendering frame rate using a fixed time step for deterministic physics.

### Graphics & Multimedia

- [Physics Debug Rendering](https://awesome-repositories.com/f/graphics-multimedia/physics-debug-rendering.md) — Renders visual debug shapes from physics simulation data, synchronised with the editor camera view.
