David Pol
banner
davidpol.bsky.social
David Pol
@davidpol.bsky.social
Handcrafted game programming and custom game engines.

https://innercomputing.com
Just finished implementing asset hot-reloading and dynamic texture atlasing in the engine.

#gamedev #c #sdl
August 21, 2025 at 6:35 PM
I just upgraded my C99 codebase to C11. It improves a few things here and there:

• I use forward declarations a lot. But it turns out redeclaring typedefs in the same scope, which is just fine in C++, is not legal in C99. I only learned about this when compiling with -pedantic for the first time.
August 7, 2025 at 1:29 PM
A recent Fedora upgrade turned into a "Linux ecosystem: X11 and Wayland" crash course for me, so I wrote some quick notes about it in case they might be helpful. Or, in other words, why SDL 3 might still pick X11 over Wayland even on a Wayland-based distro.

www.innercomputing.com/blog/x11-way...
X11/Wayland in SDL 3
On why SDL 3 picks X11 over Wayland on some Wayland-based Linux distros.
www.innercomputing.com
June 14, 2025 at 2:21 PM
Some nice improvements for C/C++ programming coming in GCC 15.

developers.redhat.com/articles/202...
6 usability improvements in GCC 15 | Red Hat Developer
GCC 15 brings better error messages and diagnostics for your code, including prettier execution paths and easier-to-read compiler errors for C++ templates
developers.redhat.com
April 11, 2025 at 9:04 AM
C has an official website now!

www.c-language.org
C language
The homepage of the C programming language
www.c-language.org
March 19, 2025 at 10:23 AM
Every time I encounter a void*-based collection implementation in C, my heart sinks. 💔

So I wrote some notes on writing generic collection code, as it turns out you can go pretty far without sacrificing type safety in the process.

#c #gamedev #indiedev

www.innercomputing.com/blog/generic...
Generic collections in C
An overview of different approaches for emulating generics in C.
www.innercomputing.com
March 2, 2025 at 2:09 PM
Some #gamedesign notes by LocalThunk (of Balatro fame). It is very interesting to contrast the 'evergreen, comforting and low-stakes' type of experience the author intended with the way many players are interacting with the game.

localthunk.com/blog/solitaire
Solitaire — LocalThunk
I have cited a few games as inspiration for Balatro in the past, but I wanted to talk about one in particular that hasn’t been mentioned much that arguably is the most important. I think if I had som...
localthunk.com
February 28, 2025 at 11:33 AM
Running DOOM on TypeScript types might just be the endgame of the "Can it run DOOM?" subject matter.

www.youtube.com/watch?v=0mCs...
TypeScript types can run DOOM
YouTube video by Michigan TypeScript
www.youtube.com
February 27, 2025 at 7:09 AM
Just finished with the implementation of the 2D sprite renderer for my course. It uses the new GPU API in SDL 3, which is very nicely done.

Now moving on to writing how it all works! ✍️

#gamedev #c #sdl
February 23, 2025 at 3:15 PM
Putting the final touches on the entity systems chapter of the course. It covers data-oriented programming and the implementation of an ECS in C, which is a very interesting exercise in terms of design decisions and data structures.

#gamedev #indiedev #gameengine #c #sdl
February 5, 2025 at 11:50 AM
SDL 3.2.0 is out! This is the first stable release of SDL 3, containing many notable changes and improvements. A particular highlight of mine is the new, compute-ready GPU API.

#gamedev #indiedev #gameengine #c #sdl

github.com/libsdl-org/S...
Release 3.2.0 · libsdl-org/SDL
Announcing the SDL 3 official release! SDL 3.0 is finally here! We have many many people to thank on the road to get here, but I'd like to call out special thanks to: @slouken and @icculus, lead d...
github.com
January 22, 2025 at 9:13 AM
I wrote some more detailed notes on single translation unit builds in C that might be useful if you are interested in keeping a simple workflow. Sometimes, the best build system is having no build system in the first place.

#c #gamedev #indiedev

www.innercomputing.com/blog/single-...
Single translation unit builds
Because, sometimes, the best build system is having no build system.
www.innercomputing.com
January 19, 2025 at 11:59 AM
Designated initializers and compound literals are awesome features of C99 that almost turn C into a new language, so I wrote a small blog post explaining how they work in order to spread the word.

#c #gamedev #indiedev

www.innercomputing.com/blog/designa...
Designated initializers and compound literals in C
A better way to initialize structs in modern C code.
www.innercomputing.com
January 11, 2025 at 11:40 AM
SDL 3.1.8 is out! This pre-release version adds many goodies:

• Asynchronous I/O
• Main thread dispatching
• Desktop tray API
• Support for format strings in debug text rendering

#gamedev #indiedev #gameengine #c #sdl

github.com/libsdl-org/S...
Release 3.1.8 · libsdl-org/SDL
This is an update to the SDL Stable ABI Preview. As promised, this update maintains ABI compatibility with 3.1.3, and has lots of bug fixes as we head towards 3.2.0 release. In addition, this updat...
github.com
January 8, 2025 at 2:03 PM
I wrote some notes on how to get started with C programming. The process can be a bit overwhelming if trying to learn it all at once, and I have found that focusing your efforts on a smaller and more modern subset can be really helpful.

#c #gamedev #indiedev

www.innercomputing.com/blog/how-to-...
How to get started with C programming
Some notes on making your learning journey a bit less daunting.
www.innercomputing.com
January 4, 2025 at 10:02 AM
Today I realized my Linux machine had been stuck with an older kernel version ever since I did the upgrade from Fedora 40 to 41.

'Manually messing with the kernels' rite of passage is now complete.

#framework #linux #fedora
December 31, 2024 at 8:30 AM
I am really enjoying writing the chapter on memory management; it has become its own little mini-course within the main course. It goes from explaining the very basics of what memory is to writing your own custom memory allocators from scratch.

#gamedev #indiedev #gameengine #c #sdl
December 29, 2024 at 4:29 PM
Christmas time is an opportunity to read great books. This year, I am revisiting 'The Rules of Programming' by Chris Zimmerman. It contains excellent advice from the trenches, with many useful examples drawn from the Ghost of Tsushima codebase.

#gamedev #indiedev #gameengine
December 9, 2024 at 12:15 PM
Code hot-reloading for Linux is in. I also unified my Neovim configuration so that switching between platforms is more seamless. The thing I am missing the most so far when working in Linux is having access to the RAD Debugger (but an official port is on their roadmap).

#gamedev #c #sdl #linux
November 28, 2024 at 7:20 PM
Hot-reloading of code for Windows is in. I have also set up a few custom commands to build, launch the RAD Debugger and reload directly from Neovim, which is a really nice workflow. Next step is Linux!

#gamedev #c #sdl
November 27, 2024 at 7:22 PM
Just finished writing the chapters on SDL fundamentals, so I thought it would be cool to add a bonus lesson where we "port" Doom to SDL 3. It is not an actual, full port of the game (it uses doomgeneric), but serves as a practical and fun way to put everything together.

#gamedev #c #sdl
November 22, 2024 at 6:34 PM
I have been daily driving a Framework 13 laptop as a Linux-only machine for a few days. My main goal here was to make sure all my code works well on Linux but, not having used the OS for the past 20 years or so, I have to say... it is actually getting there?

#gamedev #c #sdl #linux #framework
November 13, 2024 at 12:05 PM
Having so much fun at the moment as I prepare the upcoming lessons of my game programming course. Writing about the basics of animation seemed like the perfect excuse to pay homage to the Fire demo originally programmed by @thejare.bsky.social in 1993 and recreate it with SDL 3.

#gamedev #c #sdl
November 9, 2024 at 9:03 AM