YoshiEnthusiast / Carpet

2D game framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Carpet

2D game framework with an emphasis on lighting made with OpenTK.

Main features

Graphics

  1. OpenGL as backend.
  2. Ray Marched lighting with an option to use displacement textures, which set a particular starting rotation to the rays emitted.
RayMarching.mp4
  1. GPU and CPU Ray Casting. Individual lights have configurable width, angle, angular and shadow falloff and volume. There is also bloom — light that is not affected by any occluders. Occluders can have any shape.
RayCasting.mp4
  1. Sprite batching.
  2. Sprite atlas generation.
  3. Limited palettes.
  4. Font Rendering. Bitmap fonts are generated via Hiero. The output .fnt file is converted to .xml using this script

Pixel perfect pyhsics

Platforming.mp4

Audio

Audio using OpenAL that offers both short sound playback and music streaming.

Misc

  1. Particle system.
  2. Debug console.
Console.mp4
  1. Coroutines.
  2. Pseudo-ECS.

NuGet packages used

Running examples

git clone https://github.com/YoshiEnthusiast/Carpet.git
cd Carpet
dotnet run --project ./Examples/[Project name] --configuration Release

Lessons learnt

"Make games, not engines".
Extensive abstractions increase complexity and limit functionality.

About

2D game framework


Languages

Language:C# 97.2%Language:GLSL 2.8%