Birb2D is a simple 2D game engine written in C++
Go to file
Toasterbirb 141d30448a Added missing #pragma once 2022-02-14 23:06:35 +02:00
doxygen-awesome-css@9380569e8a Added a nice doxygen theme 2022-01-17 21:14:41 +02:00
include Added missing #pragma once 2022-02-14 23:06:35 +02:00
res Initial commit (commit history cleanup) 2021-12-10 08:31:09 +02:00
src Timestep tweaks and increased text rendering quality 2022-02-14 17:29:17 +02:00
.gitignore Added compiled docs back to gitignore 2022-01-17 19:54:29 +02:00
.gitmodules Added a nice doxygen theme 2022-01-17 21:14:41 +02:00
LICENSE Moved license and readme back to the root directory 2022-01-01 03:36:28 +02:00
Makefile Maths and testing for those said maths 2022-01-25 19:31:28 +02:00
README.md Some more minor README tweaks 2022-01-24 21:21:29 +02:00
compile_flags.txt Initial commit (commit history cleanup) 2021-12-10 08:31:09 +02:00
doxygen_config A small namespace rework 2022-01-18 13:32:01 +02:00
testfile.txt Test commit 2022-02-01 18:17:29 +02:00

README.md

Birb2D

Birb2D is a small and delicate 2D game engine made as a learning project.

Birb2D is not meant to be production quality, but there's a chance it can be used to make some games. Expect segfaults and all that usual stuff that come with newbie hobbyist C++ projects. If anyone ever picks this thing up and actually does something with it, definitely send it my way. I'd love to see it happen. Also any ideas or suggestions are welcome. Just know the scope, I'm not remaking Unity or Unreal Engine.

Projects made with Birb2D

External libraries

  • SDL2
  • SDL2_image
  • SDL2_ttf
  • SDL2_mixer
  • SDL2_gfx
  • doctest (included as a headerfile)

Building

Generate documentation

doxygen doxygen_config

Shared library

make -j$(nproc) engine_lib

Pong

make -j$(nproc) pong

Run tests

make -j$(nproc) run_tests

Installation

Simply compile the shared library and copy the headerfiles with

make -j$(nproc) install

to uninstall, run the following

make uninstall

Roadmap

  • Sprite rendering
  • Timestep
  • Basic input handling (currently at cave man stage)
  • Entity system (Partially functional currently)
  • Basic UI functionality
    • Buttons
    • Text
    • Dropdown menu
    • Slider
    • Input box
    • Resizable UI
      • Resolution independent UI scaling
      • Anchors
  • Sound
  • Animation (sprite based animations supported)
  • Physics
  • To be continued...