Learning Graphics programming - The elusive SDL3 GPU API
03/05/2026
SDL3 GPU API offers what I've been looking for this whole time - a graphics library that lets me develop for Linux, MacOS, Windows, Switch, XBox and PS5. It's dreamy, but.. out of reach.
I don't think I've written a single line of code today, because I was so preoccupied with looking for learning resources for SDL3_GPU. The ones I did find were either overwhelming or very lacking. Here's the best I found:
-
Foster Framework (by Noel Berry, co-creator of Celeste)
While this is written in C#, it could be a good reference for how to use the SDL3 GPU API.
-
Cute Framework (by Randy Gaul)
The author provides a pretty good overview of the renderer. Note that some framework code is written with Claude.
-
SDL_gpu_examples (by TheSpydog, developer of FNA)
Very useful set of basic and advanced examples.
-
SDL3 Tutorials (by Glusoft)
A set of minimalistic SDL3 tutorials, including a sprite batching tutorial>.
-
moonside.games (by Evan “cosmonaut” Hemsley, co-maintainer of FNA, principal designer of SDL GPU API)
The blog includes a sprite batcher tutorial and a SDL GPU API concepts article.
-
SDL 3 GPU tutorial with C++23 and Modern CMake (by Codotaku)
This is what I used to get started and it got me off to a good start, right up until index buffers.
-
SDL_gpu: it begins with a triangle. (by Hamdy Elzanqali)
Looks like a good comprehensive starter, haven't gone through it though.
While these resources are great and I still need to go through some of them, I do wish there was a more comprehensive 2D tutorial series I could follow as someone totally new to graphics programming. I had many moments today when I considered just using OpenGL as it has a ton of learning resources, but I'd really prefer something more future proof.
As for next steps, I think I'll dive into the Cute Framework. I'll also check out Foster Framework - after all, Noel pretty much set me off this journey after I watched how he effortlessly works with the engine he made for City of None. Also, his blog post encouraging folks to Make Video Games in 2025 (without an engine) definitely planted the idea in my mind for a while now.
Learning Graphics programming - Getting started
02/05/2026
I woke up late today. Had my coffee close to noon and felt a bit
gloomy. Half the day already gone and my motivation to do
anything productive gone with it.
I opened Discord and stumbled into the Krita server. Pretty art,
way prettier than I could ever make. What am I even doing trying
to learn digital art? It'll take me years to make anything half-decent
for my game. Back to pixel art?
More and more, it feels like every program I use to make art is
not giving me the tools I need to be creative. Maybe it's me
being too lazy to learn another medium. Brushes, filters, etc.
are great, but I feel like there's gotta be more than that.
Feeling frustrated, I came up with a very naive, but novel, idea.
What if made my own 2D game engine? Not just for making games,
but making art for it as well - right in the engine. Or what about
writing? I always wanted to have a writing program that lets me use variables for things like names and pronouns. I really just need something that lets me be creative - I have so
much pent-up creativity and nowhere to put it.
Okay that was a pretty generic description, what do I actually
need? I set out to make a 2D MMORPG-like game (of course I did),
and that requires a ton of work, but the main thing that keeps
pulling me back is art. I really want a workflow that lets me
preview scenes live and edit them in real-time. I want to be
able to reuse smaller pieces of art on bigger pieces. Modular
art. I want to be able to provide "size" parameter to a "box"
art piece and have it dynamically change - not simply scaling
it, but having the art use that parameter intentionally in the
definition of the vectors. Or if I want to avoid vector art
(though vector-based pixel art sounds pretty cool), at
least an integrated option to use variables in art to hide or
display different layers or show different version of them.
Alternatively it could be a standalone (vector?) pixel art program. Similar to FMOD, letting artists export their art in a way that lets
devs use an SDK to interact with it in a parameterized way. I know nothing about art so this is probably a bad idea, but maybe it could be useful, even if just for me.
So yeah, I did start working on a game engine in C++, built on top of SDL3's GPU API.
Got as far as implementing a vertex buffer, and for someone who this morning had no idea what a graphics pipeline is, I'd say I did a pretty good job.
Anyway it's 2AM so I'm gonna check out. Hopefully I'll keep doing this blog thing - it's kind of nice.