프로젝트 소개

Foster는 C#으로 작성된 작고 크로스 플랫폼을 지원하는 게임 프레임워크로, 2D 게임에 초점을 맞추고 있습니다. README에서는 이 프로젝트가 매우 작업 진행 중(very work in progress)이라고 명시하며, 잦은 호환성 깨지는 변경(breaking change)이 발생할 가능성이 크고 사용자의 책임하에 사용해야 한다고 경고합니다. 설치 방법은 간단합니다. NuGet 패키지(FosterFramework)를 참조로 추가하거나, 저장소를 복제한 뒤 Foster/Framework/Foster.Framework.csproj를 직접 참조하면 됩니다. 별도의 Samples 저장소에서 데모와 예제를 제공해 새로운 사용자가 시작할 수 있도록 돕고 있으며, 프로젝트는 커뮤니티 참여를 위해 GitHub Discussions와 Discord 서버를 안내합니다. 의존성으로는 .NET 10.0과 C# 14, 그리고 SDL3가 포함됩니다. SDL3는 GitHub Actions를 통해 여러 플랫폼용으로 미리 빌드된 바이너리가 제공됩니다. 렌더링은 SDL_GPU로 구현됩니다. 셰이더는 SDL_GPU 셰이더 리소스 요구 사항을 따라야 하며, 사용자는 애플리케이션을 실행할 때 어떤 그래픽 장치를 사용할지 선택할 수 있습니다. 셰이더는 대상 렌더러에 맞게 제공해야 합니다. 예를 들어 Vulkan용이라면 SPIR-V가 필요합니다. 내장 셰이더가 2D 렌더링을 담당하므로, 이는 커스텀 셰이더를 작성할 때만 중요합니다. README는 다른 프레임워크와 API, 특히 FNA에서 영감을 받았다고 밝힙니다. 또한 이 라이브러리가 두 번째 반복 버전이며 첫 번째 버전은 별도 저장소에서 확인할 수 있다고 설명합니다. 기여는 환영하지만, 외부 의존성을 추가하거나 빌드 과정을 복잡하게 만드는 변경은 받아들여지지 않습니다.