C#. Low-level rendering APIs? Can do!

Since MonoGame in all its greatness and complexity - seriously, give it a shot if you're not me - couldn't cut it for my development needs and ideology*, I decided to write my own little 2D game framework.

I want to do that in pure C#

vdd, 02.03.2020 (dd-MM-yyyy). Non-colorized.

Little did I know that low-level rendering API bindings for C# are either non-elegant (e.g. SDL2-CS...), non-functional for .NET Standard just yet (e.g. OpenGL.NET, OpenTK...) or too limited (e.g. SdlSharp...). A few hours of searching and days of researching and I found my savior. My holy grail. SFML.NET. Bindings created for C bindings for the SFML library.

As my first attempt I created Iris 2D "framework". It sucks. I hate it. It's a resource hog. But it works. Someone gave enough fucks to make a raycasting engine on top of that shit. Commendable. I do admire your patience and perseverance. Now go get a job.

Learning from my mistakes of using C#-ized bindings that do unnecessary shit under the hood, I decided to use SDL2-CS whom I avoided so stubbornly before, created by the guy who made the FNA thing. It's as elegant as me right after waking up, but it's minimal and gets the job done. To get the cross-platform shader support I decided to pick SDL-gpu extension and expand the SDL2-CS by the additional class someone else was so kind to write before I had an idea to write my own framework. Thank you. Spared me days of work. The new project is called Chroma and it's well underway to superseding Iris.

Now it's just a matter of bringing it up to speed and porting my game to it. That's all I have for you today.

Until next time
- vdd

* My high-level development ideology: write once, compile everywhere with the same outcome without jumping through any more pointless hoops (e.g. compling shaders with MonoGame on Linux is a joke, for fuck's sake) than you actually need in order to make everything work.


vdd - March 16, 2020 • general