Skip to content

benreid24/BLIB

Repository files navigation

BLIB

BLIB started as a collection of code from various projects over the years suited for reuse. Since then it has been expanded into a large collection of code, both new and reused, that I intend to use as a small game engine for personal projects. Some of the key features include:

  • Engine interface with state management and a configurable main game loop
  • Framework for implementing game systems that are parallelized by default
  • Entity Component System with entity parenting and dependencies supported out of the box
  • A Vulkan-based renderer backed by the ECS
  • Classical GUI framework and a Menu system suitable for controllers
  • 2D Animations, an animation editor, and a collection of custom renderable shapes
  • Utilities for encoding and decoding formatted binary data and JSON
  • A robust logging system
  • A custom script interpreter and a generic, reusable shift-reduce parser
  • Thread safe resource management with automatic cleanup based on time since last used
  • A collection of specialized containers and data structures useful for games
  • Support for asynchronous resource loading with progress callbacks
  • An event bus capable of efficiently dispatching any type of event struct across listeners
  • A collection of other utilities such as signals, random number generation, a thread pool, and more

Visit the project page for future feature development plans.

Documentation

Showcase

Build Status

Windows macOS Linux

About

Small organized collection of common code I have accumulated over the years that has amassed into a proper 2d game engine

Resources

Stars

Watchers

Forks

Languages