Sébastien de Graffenried
banner
sebdegraff.bsky.social
Sébastien de Graffenried
@sebdegraff.bsky.social
Game dev, working on Terraformers terraformers-game.com
Game jams, homemade game engine dev.
Sometimes streaming on youtube:
🔴 https://www.youtube.com/@seb_degraff/streams
Also on mastodon:
🐘 http://mastodon.gamedev.place/@seb_degraff
reimporting the project, it's been stuck on this for 30 mins. Took me a while to realize that it's processing the same atlas in a loop. Trying to kill and restart 😒
October 9, 2025 at 10:30 AM
"Just patch the game" they said. "It will be easy" they said.
October 9, 2025 at 9:43 AM
Added a histogram. It accumulates the durations of all zones that have the same name as the selected one
October 8, 2025 at 12:35 PM
-Wundef where have you been all my life?
September 29, 2025 at 12:24 PM
🔴 Livestreaming in 30 min:

Adding items that entities can drop when they die or are destroyed. This is yet another project – a game we're prototyping with my studio, Asteroid Lab.

Made in a custom engine, in C. #indiedev

www.youtube.com/watch?v=Y0Q5...
September 19, 2025 at 10:48 AM
proof of concept of polling for thread state to show approx. when they are running vs suspended.
Here you can see that for during "currentDrawable" the thread is sleeping.
September 17, 2025 at 10:07 AM
Went with adding a scrollbar to the scrubber for now, and made it automatically scroll "page by page" so it's not constantly moving.
Added some time controls, the ability to enable/disable recording, and the ability to toggle "sticking" to the last recorded frame.
September 13, 2025 at 7:37 PM
Added scrubbing through the recorded frames.

But what should I do when the number of recorded frames is bigger than I can fit in the scrubber? I could add another scrubber for the scrubber, but...

Any ideas for something more elegant?
September 13, 2025 at 3:13 PM
And here are the (potentially more interesting) exposed data structures from the profiler. The profiler window reads this directly to display the zones.

I'm wondering if I should transform the raw events into "zones" when flushing a thread. There are some other considerations, see 2nd screenshot.
September 13, 2025 at 12:27 PM
Here's how the api looks like so far. Pretty clean I think!
Each thread has a thread local pointer to a buffer it records events into, and must flush every so often.
September 13, 2025 at 12:17 PM
I'm rewriting my profiler to support multithreading and it's starting to work! You can see the audio thread chugging along the main thread here:
September 13, 2025 at 12:01 PM
There is something magical when snapshotting the game state starts working.

I wish I'd done it sooner, it's going to be so useful during development.

Rewind and replay coming up next!

#indiedev #gamedev #c
September 11, 2025 at 3:40 PM
Automatically adding metadata to struct members upon saving!

This works on top of a custom build system that watches for file changes, then parses the structs in the file to generate reflection data.

Now it also inserts code in the source file. Feels kind of forbidden, but also feels nice!
September 10, 2025 at 10:15 AM
All good!

By running with the chrome profiler, I noticed there was a lot of time spend in _glGetError. I tried defining _SG_GL_CHECK_ERROR to nothing, and that made it buttery smooth!

Perhaps there should be less calls to _SG_GL_CHECK_ERROR when SOKOL_DEBUG is off? Or a faster alternative?
August 31, 2025 at 10:14 AM
hey @flohofwoe.bsky.social, I'm investigating poor perf on the web for my game that uses sokol_gfx.h, and it seems a lot of time is spent in sg_apply_bindings.
Digging deeper, but perhaps you have pointers for me?
August 31, 2025 at 10:02 AM
Here's an SFX mixing tool I made yesterday. Pretty happy how it turned out!

I can't wait to get it into the hands of a real sfx designer

#indiedev #gamedev #c
August 25, 2025 at 2:08 PM
Going for "grab" as a synonym of draw for now. Actually not too bad!

As long as there's no actually grabbing in the game I should be good!
August 15, 2025 at 2:04 PM
Hey card game programmers, I have a dumb naming question:
How do you differentiate between a function that draws a card _from a deck_ and one that draw a card _on the screen_?
Is my best naming option really "draw_monster_from_deck"?
August 15, 2025 at 1:48 PM
Engine dev: added a command palette with some sort of autocomplete.

Here the "load" command suggests filenames to load, and the "save" command suggests filenames to override.

I intend the command palette to be pretty flexible and customizable, and ultimately replace the traditional in-game console
July 17, 2025 at 1:36 PM
Finally managed to implement volumetric fog!

Done with sokol_gfx.h, which recently got compute shader support. Thanks @flohofwoe.bsky.social!
June 26, 2025 at 2:42 PM
I love stumbling on comments my past self wrote while pondering api design decision!
Sometimes I append an update to the comment, leaving the original comment so it's possible to understand the reasoning that led to a particular decision
June 16, 2025 at 4:15 PM
alright, I think this is pretty cool.
April 22, 2025 at 5:44 PM
1 min 24s in C. I need to improve these typing skills!
April 21, 2025 at 7:41 AM
Made a lil tool to quickly place walls.
Ignore the trees, I was to lazy to disable them being placed on mouse down
March 27, 2025 at 4:16 PM
Continuing the discussion and engine tryout with Eike, live on youtube in a few minutes youtube.com/live/oCFVXJc...
February 28, 2025 at 9:13 AM