A graphic framework and set of toolkits for making basic UI application and 2D game (right now) target to support as many platforms as possible. Backed by .NET.
Use our template to quickly create a new project
dotnet new install Sakura.Framework.Templates
dotnet new sakura -n MyAwesomeGameSee sample app repository for example.
Some incomplete documentation is in wiki, or the API reference you can check the API reference site.
- .NET 10.0 SDK
- We recommend to use IDE like Visual Studio, Rider or VS Code for development with this framework
On Windows ARM64, the BASS audio library (bass.dll) requires the Visual C++ Redistributable for ARM64. Without it you will see:
Unable to load DLL 'bass' or one of its dependencies: The specified module could not be found. (0x8007007E)
So we fix these problem by pack vcruntime140.dll in our native library package. But if the problem still occured please install the VC++ Redistributable for ARM64 https://aka.ms/vs/17/release/vc_redist.arm64.exe
On release, running as x64 (via Windows ARM64's x64 emulation layer) avoids this issue entirely since the x64 bass.dll does not depend on the VC++ Redistributable. Most shipped games/apps targeting Windows ARM64 use this approach.
git clone https://github.com/HelloYeew/sakura
cd sakura
dotnet restore
# Run visual test
cd Sakura.Framework.Tests
dotnet runIf you need to rebuild a native library :
FFmpeg:
# macOS
bash Sakura.Framework.NativeLibraries/script/ffmpeg/build-macos.sh
# Android (requires ANDROID_NDK_ROOT set)
bash Sakura.Framework.NativeLibraries/script/ffmpeg/build-android.sh
# iOS (requires gas-preprocessor)
bash Sakura.Framework.NativeLibraries/script/ffmpeg/build-iOS.shContributing via pull requests, suggestions, or bug reports via issues is welcome.
Some part of this framework generated by source generator to reduce boilerplate code.
See wiki for more detail.
For reference on the generated code, see the generated source repository.
This project is licensed under the MIT license. Please see the license file for more information. tl;dr you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source.
The fonts used as the default font in this framework are licensed under SIL Open Font License 1.1.