Skip to content

FosterFramework/Foster

Repository files navigation

Foster logo

Foster

Foster is a small cross-platform 2D 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 9.0 and C# 13
  • SDL3 is the only external dependency, which is built and dynamically included by the Platform library.

Platform Library

  • The Platform library is a C library that implements native methods required to run the application.
  • It is automatically built for 64-bit Linux, MacOS, and Windows through Github Actions.
  • To add support for other platforms you must build and include it in the csproj

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.