Home
Softono
Foster

Foster

Open source MIT C#
830
Stars
62
Forks
2
Issues
13
Watchers
2 weeks
Last Commit

About Foster

Foster is a small, cross-platform 2D-focused game framework written in C. It targets .NET 10 with C 14 and uses SDL3 and SDLGPU for low-level rendering and platform access, with prebuilt SDL binaries available through GitHub Actions. The framework is available as a NuGet package or can be used by referencing its project directly, and a separate Samples repository provides demos and examples to help new users get started. Rendering is handled through SDLGPU, allowing developers to select their preferred graphics device at runtime. Shaders must follow SDLGPU resource requirements, and users writing custom shaders must provide shader binaries compatible with their chosen backend, such as SPIR-V for Vulkan. Built-in shaders are provided for standard 2D rendering workflows. Foster is currently in an early, work-in-progress state with frequent breaking changes, and is recommended for experimental use at your own risk. It draws significant inspiration from FNA and represents the second iteration of the library. Cont

Platforms

Web Self-hosted Windows

Languages

C#

Links

Foster logo

Foster

Foster is a small cross-platform 2D-focused game framework in C#.

★ very work in progress! likely to have frequent, breaking changes! please use at your own risk! ★

To use the framework either

  • add a refence to the NuGet package,
  • or clone this repository and add a reference to Foster/Framework/Foster.Framework.csproj.

There is a Samples repo which contains various demos and examples that can help you get started.

Check out Discussons or Discord to get involved.

Dependencies

  • dotnet 10.0 and C# 14
  • SDL3, which has prebuilt binaries for various platforms through Github Actions.

Rendering

  • Rendering is implemented using SDL_GPU.
  • Shaders must follow the SDL_GPU shader resource requirements.
  • You can specify which Graphics Device to use when you run your Application.
  • You must provide shaders for the resulting Renderer (ex. SPIR-V for Vulkan, etc). There are built-in shaders for 2D rendering so this only matters if you write custom shaders.

Notes

  • Taken a lot of inspiration from other Frameworks and APIs, namely FNA.
  • This is the second iteration of this library. The first can be found here.
  • Contributions are welcome! However, anything that adds external dependencies or complicates the build process will not be accepted.