over the course of my career it only becomes more astounding to me how unsuitable all programming languages are for games. industry of clowns


i should have realized something was wrong when it took me like 10 minutes to explain to a junior dev how a C# array is allocated

@dankwraith is it just memory models for game state, or have you found PL lacking for the rendering pipeline as well?

@transclosure rendering is mostly fine because i just set up state objects and it's assumed that the graphics API owns the memory, for game logic everything is miserable because you either have a massive legacy runtime with 10 million useless bloated features that runs like molasses and has tons of hidden behavior that juniors dont understand or you hand out footguns to your entire dev team

@dankwraith seems like this an issue with concurrent modification of game state, while programming with mutation side effects. I am yet again confused why functional reactive programming for games is not a thing.

@transclosure big studios are married to their legacy garbage, small studios have no idea what they are doing and get predated on by crap ware like unity

@dankwraith I've never really understood why all parts of a game engine are Turing complete... Like sure rendering and event handling has to be, but the world itself is just a glorified relational database with complex transactions, no?

@dankwraith have you been reflecting on this stuff again because of ANATHEMA? I would love to try to solve this problem someday, just not alone :)

@transclosure yeah i'm actually working on a language right now. nothing too fancy conceptually, i mostly just want control

@dankwraith this post makes me realize that i don't know how c# arrays are allocated. i guess i assumed they were just on the heap and the reference is a safe wrapper around a pointer to that address?

@alys nope! they are objects so it's way more fucked up than that

@dankwraith an object that's a safe interface to a regular heap-allocated array i could understand, but i assume that's not what you mean?

@alys so yeah, on one level it is basically just a safe object interface but what i have to explain to devs is how much hidden overhead there is here and how easy it is to trigger garbage collection if you're not careful. the conceptual model is so far removed from anything that actually happens on the computer that it's basically useless

@dankwraith yeah, it seems like there's a lot more going on than simple allocation and bounds-checking

Sign in to participate in the conversation

monads.online is a place for friends