Birb2D/README.md

69 lines
1.7 KiB
Markdown

# 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](https://github.com/Toasterbirb) 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
- [Flappy Birb](https://github.com/Toasterbirb/Flappy-Birb)
- [Pong](https://github.com/Toasterbirb/Pong)
- [SeedSplit](https://github.com/Toasterbirb/SeedSplit)
- [Breakout](https://github.com/Toasterbirb/Breakout)
## External libraries
- SDL2
- SDL2_image
- SDL2_ttf
- SDL2_mixer
- SDL2_gfx
- [doctest](https://github.com/doctest/doctest) (included as a headerfile)
## Building
### Generate documentation
```sh
doxygen doxygen_config
```
### Shared library
```sh
make -j$(nproc) engine_lib
```
### Pong
```sh
make -j$(nproc) pong
```
### Run tests
```sh
make -j$(nproc) run_tests
```
### Installation
Simply compile the shared library and copy the headerfiles with
```sh
make -j$(nproc) install
```
to uninstall, run the following
```sh
make uninstall
```
## Roadmap
- [x] Sprite rendering
- [x] Timestep
- [x] Basic input handling (currently at cave man stage)
- [x] Entity system (Partially functional currently)
- [ ] Basic UI functionality
- [x] Buttons
- [x] Text
- [ ] Dropdown menu
- [ ] Slider
- [ ] Input box
- [x] Resizable UI
- [ ] Resolution independent UI scaling
- [ ] Anchors
- [x] Sound
- [x] Animation (sprite based animations supported)
- [ ] Physics
- [ ] To be continued...