BaobabEngine.Baobab 0.2.1

dotnet add package BaobabEngine.Baobab --version 0.2.1
                    
NuGet\Install-Package BaobabEngine.Baobab -Version 0.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BaobabEngine.Baobab" Version="0.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BaobabEngine.Baobab" Version="0.2.1" />
                    
Directory.Packages.props
<PackageReference Include="BaobabEngine.Baobab" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BaobabEngine.Baobab --version 0.2.1
                    
#r "nuget: BaobabEngine.Baobab, 0.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BaobabEngine.Baobab@0.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BaobabEngine.Baobab&version=0.2.1
                    
Install as a Cake Addin
#tool nuget:?package=BaobabEngine.Baobab&version=0.2.1
                    
Install as a Cake Tool

Baobâb

Baobab is a custom engine made with C# to merge the control of frameworks with the features of a proper game engine. This project is currently in early development, but a usable, initial build has been published to Nuget. You can use it by running dotnet package add BaobabEngine.Baobab in your project.

What is Baobab

Baobab is a C# class library built off the Foster framework. Many classes and methods are provided to help developers build games on their own.

Baobab is distributed as a Nuget package for several reasons. The most notable benefit is that the engine does not become reliant on a built-in GUI editor. Developers don't have to learn another editor, and can just use the environment they are comfortable with. As a result, context switching is minimized due to the ability to use a common code editor like VS Code where all work can be kept central and organized. Nuget packages are typically lightweight. Using Nuget minimizes friction to install the engine and doesn't require formal installation. Developers who just want to try Baobab don't have to worry about a long or complicated installation process.

Being built off Foster, Baobab tools are interchangeable with their already present structure. Developers can pick and choose between Foster features and engine features freely. In addition, developers can branch or modify Baobab features to tune the system to their likings.

With a code-first design, developers are able to freely decide how they want to build their systems. The engine does not force a rigid structure for implementations like sprite creation, asset loading, audio playing, etc. Developers are also capable of building their own sub-engines or libraries to provide extra features or template the tools they use the most.

Baobab is completely free and open source. You will NEVER have to pay any fees to use this engine. Baobab is licensed under the MIT license, which allows community members to continue to improve provided features, regardless of whether the engine is actively maintained or not.

Baobab is designed for developers who love control and freedom, without sacrificing quality of life.

How to use Baobab

Currently, no abstractions are provided for the Foster game loop. You can view Foster's "Shape" example to get an understanding of how Foster's game loop works. Essentially, the setup for a Foster game is to implement a class that inherits from the Foster.Framework.App class. This class then requires the implementation of the following methods:

  1. Startup - Ran when the program starts.
  2. Shutdown - Run before the program ends.
  3. Update - Ran every frame to update game data.
  4. Render - Ran every frame after the Update method to actually draw sprites.

Note that these methods require overrides, and don't have default functionality. More features are being planned to make the game loop more convenient.

Once you have a game class setup, you will create an instance of the class and use the .Run() method to start the game.

Roadmap

These are the next features that are planned for Baobab:

  1. GUI library
  2. Audio support
  3. More quality of life features

The primary source for feature ideas will be requests. Feature requests can be submitted as described under the Contributions section.

Contributions

This is a list of very appreciated contributions:

  • Code help
  • Documentation support
  • Feature requests

If you want to suggest any code or documentation adjustments, you can submit a pull request to the GitHub repository.

Feature requests can be submitted as an issue to the repository.

Any major changes must first be discussed and approved. Note that not all features may be merged.

Thank you to all who choose to contribute!

License and Credit

Baobab is produced under the MIT license.

Be sure to checkout the Foster framework. This project wouldn't be possible without the amazing team working on this framework.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.1 87 9/20/2026
0.2.0 118 7/23/2026
0.1.0 119 6/30/2026
0.0.0 114 6/24/2026