Skip to content
@P-E-R-R-Y

PERRY

Project Engine Runtime Robust For You

🌟 P-E-R-R-Y

A C++ development kit to build games and applications from scratch, without Unity/Unreal.
Provides core libraries, interfaces, and implementations so you can focus on building your app instead of plumbing. Build & Tested on macos M2, and tested with ci on ubuntu (even graphical lib XD).


✨ Overview

P-E-R-R-Y DevKit is a modular C++ devkit that provides:

  • Static libraries for core systems:

  • Interface modules (IModule, IGraphicModule, IAppModule) to abstract platform and library dependencies.

    • imodule
    • igraphic
    • iapp
  • Concrete implementations for graphics (Raylib, SFML), apps, and optional network modules.

    • raygraphic
    • sfmlgraphic
    • sdlgraphic (need rework from P-E-R-R-Y/PERRY)
    • openglgraphic
  • Testing tools

    • CXX17+ GoogleTest. usualy CXX20 (the belovel version)
    • CXX17- HandMades. usualy CXX11 (the legacy version)
  • Flexible module system to swap components dynamically.

Think of it as a C++ game/app starter kit: you get the essentials pre-built, but everything is modular and customizable.


🏗️ How It Works

1️⃣ Static Libraries

These are ready-to-use C++ libraries that don’t depend on any runtime frameworks:

  • System – Platform abstraction (file, time, logging).
  • Maths – Vector, matrix, random utilities.
  • ECS – Entity Component System for game objects and logic.
  • i18n – Internationalization library for multi-language support.
2️⃣ Interface Modules

Define abstract interfaces so your code doesn’t depend on specific libraries:

  • IModule – Base module interface.
  • IGraphic – Abstract graphics interface. Supports multiple backends (Raylib, SFML, SDL).
  • IApp – Abstract application interface for windowing and lifecycle.
  • INetwork – Abstract networking (foreseen).

This allows you to write generic code without binding to Raylib, SFML, or any other library.

3️⃣ Implementations

Concrete modules implement the interfaces:

  • RayGraphic – Uses Raylib for graphics.
  • SfmlGraphic – Uses SFML for graphics.
  • SfmlGraphic – Uses SFML for graphics. (need rework from P-E-R-R-Y/Perry)
  • HunterApp – Example application.
  • AsioNetwork – Networking with Asio (foreseen).
4️⃣ Module Registry

The ModuleRegistry keeps track of all modules and lets you switch implementations at runtime:

Game -> IGraphicModule -> RayGraphicModule -> Raylib
                          -> SfmlGraphicModule -> SFML

Popular repositories Loading

  1. PERRY PERRY Public

    Project Engine Runtime Reliability Yaml

    C++ 1

  2. igraphic igraphic Public

    C++ 1

  3. sfmlgraphic sfmlgraphic Public

    C++ 1

  4. raygraphic raygraphic Public

    C++ 1

  5. ecs ecs Public

    C++ 1 1

  6. i18n i18n Public

    [c++11 | c++20] [static] [type_safe] Internationalisation inspired from flutter_i18n.

    C++ 1 1

Repositories

Showing 10 of 24 repositories

Top languages

Loading…

Most used topics

Loading…