Arbor is a game framework written entirely in C#. It is designed to have multiple layers of API, from the low-level rendering and audio to the high-level game logic. It is designed to be as simple as possible to use, while still being powerful enough to create complex games. Arbor currently uses Veldrid for rendering, but it does not support any audio API yet.
Arbor is designed around an Entity-Component-System architecture, which has been proven to be very powerful and flexible for game development. It is specifically designed for 2D games, and as such 3D support is not planned.
Arbor is still in early development, and as such it is not recommended to use it for any serious projects yet.
- .NET 7.0
- Rider or Visual Studio (optional)
It is very easy to get started with Arbor, and you can get a basic game up and running in just a few minutes.
To install Arbor into your project, you can use the dotnet CLI or use your NuGet package manager of choice.
dotnet add package Arbor
Arbor is designed around an Entity-Component-System architecture. This means that you will be creating entities within a scene, and adding components to them to give functionality. You can also create your own components to add custom functionality to your game.
WIP
We welcome all contributions, but keep in mind that we are still in early development. If you wish to work on a new feature, please open an issue and we will discuss it further from there, to avoid any wasted effort.
If you're unsure of what you can help with, check out the list of open issues. (especially those with the "good first issue" label).
Please see contributing.md for information about the code standards we will expect from pull requests. While we have standards set in place, nothing is set in stone. If you have an issue with the way code is structured; with any libraries we are using; with any process involved with contributing, please bring it up. We welcome all feedback so we can make contributing to this project as pain-free as possible.
Arbor is licensed under the MIT License. For more information, refer to the license file regarding what is permitted or disallowed in the use of this software.