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
For more complex cases like returning a dynamic array from a function, arenas are a simple and easy to use solution. That said you do have to put in the effort to make yourself a nice codebase for C to become enjoyable, which is both a curse and a blessing
November 14, 2025 at 11:46 AM
C# for sure improved a lot with regard to memory management. I would still challenge the "almost always less work than using an unmanaged language" part though.

For this (arguably simple) example, it would look basically the same in C:
November 14, 2025 at 11:46 AM
Oh, I think I like the 1st one because you can clearly see the dispenser and the belt where the crates should be put. So you instinctively understand that the bot should transport crates from A to B, and that’s already compelling to me
November 13, 2025 at 10:25 AM
I think I prefer the first one, but not entirely sure why. Perhaps because it shows better the grid based nature of the game, and has visually interesting props?
The idea of making the bot bigger and focusing on fewer things is good though, I’d say
November 13, 2025 at 10:23 AM
I see. Never used rust or Julia. Used C# where references (ref keyword) work like ref arguments in cpp, and are not allowed in struct or classes.
Using C these days and appreciate the simplicity!
November 11, 2025 at 9:05 AM
For me the point of ZII is to make things simpler and more straightforward. No need to think about constructors. "Initialize" a whole array at once to a valid state with just = {} or memset to 0.

Works well when composing data structures too, eg node structs can have pointers, null by default
November 11, 2025 at 8:58 AM
Ah, we’re talking about cpp! Just learned that references in structs are a thing. I was thinking about references in the C pointer sense.
Then indeed they seem incompatible to ZII in this context
November 11, 2025 at 8:54 AM
I didn’t know you could have class members that store references in cpp, interesting.
Also it seems you can’t assign them first in the constructor (makes sense, you could call other things from in there at which point the non-null guarantees would not hold).
November 11, 2025 at 8:50 AM
I don’t get your point: you certainly can initialize a reference to zero, then assign it something else later. Is it that you want to avoid null refs at all time?
November 11, 2025 at 8:26 AM
So you can shift instructions down? Hadn’t noticed, and was doing it manually
November 8, 2025 at 11:14 AM
How can I test the e clipboard thing?
November 8, 2025 at 11:13 AM
It works for me too, on iOS 🙌🏻
November 8, 2025 at 11:12 AM
Safari indeed :(
November 8, 2025 at 8:12 AM
Plays well even on a small iphone!
For the feedback system, the big feedback button in the menu does nothing when I press it though
November 7, 2025 at 11:44 PM
How rude!
November 2, 2025 at 1:33 PM
There’s got to be a bach.js lib somewhere
October 18, 2025 at 12:17 PM
Crazy cool!
October 17, 2025 at 1:21 PM
Oh no! Resist the urge!
Just hardcode the rotation of the clock handles
October 16, 2025 at 6:57 PM
Wonder if it would make sense to always have a scope following defer, e.g.
open_file()
defer close_file() {

} // close file executes at that point
October 14, 2025 at 5:26 PM
That’s a good point. Thinking about it, there’s another construct that breaks linearity: the for loop with its increment expression. I think it’s less shocking because of the attached scope and the closing brace.
October 14, 2025 at 5:25 PM