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.
- dotnet 9.0 and C# 13
- SDL3 is the only external dependency, which is built and dynamically included by the 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 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.
- 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.