CsTilenginePure is an alternative C# binding for Tilengine. It is a direct 1:1 API translation of the original C library, so it is used and works exactly as its C counterpart. The naming schemes for this library will match those of the C library, with little-to-no concern for the standard C# style. Everything else will be as close to the C version as technically possible.
- The
src/directory contains the singleTilengine.csmodule with the binding itself.
You will need to install the Tilengine native shared library separately. You can find instructions on how to do so at https://github.com/megamarc/Tilengine.
.NET Framework 2.0 or later must be installed
Mono tools and runtime must be installed. In Debian-based distros please execute the following command:
sudo apt-get install mono-mcs
The C# binding for SDL2 is required. This binding is included as a submodule for this repository.
You have to make sure that SDL2.cs and Tilengine.cs are accessible from within your own project. This could be done by creating a submodule of this repository for your project with the recursive parameter set to true.
Alternatively, you could add the project in this repository as a reference to your project.
The samples for this binding have been moved to its own repository to prevent multiple Main methods from interfering when using this binding as a submodule.
These samples are now located at https://github.com/vonhoff/CsTilenginePure.Samples.
The following program requires assets from the Platfomer sample. You need to include this directory in your binary folder to get the desired result.
The program does the following actions:
- Initializes the engine with a resolution of 400x240, one layer, no sprites, and 20 animation slots.
- Sets the loading path to the assets folder.
- Loads a tilemap, which is an asset that contains background layer data.
- Attaches the loaded tilemap to the allocated background layer.
- Creates a display window with default parameters: windowed, auto scale, and CRT effect enabled.
- Runs the window loop, updating the display at each iteration until the window is closed.
Source code:
using static Tilengine.TLN;
public class Test
{
public static void Main(string[] args)
{
TLN_Init(400, 240, 2, 1, 1);
TLN_SetLoadPath("assets");
var foreground = TLN_LoadTilemap("Sonic_md_fg1.tmx", null);
TLN_SetLayerTilemap(0, foreground);
TLN_CreateWindow(null, TLN_CreateWindowFlags.CWF_VSYNC);
while (TLN_ProcessWindow())
{
TLN_DrawFrame(0);
}
}
}Resulting output:
- Copyright © 2022 Simon Vonhoff & Contributors - Provided under the permissive MIT License.

