Remix.run Logo
bena a day ago

To be fair, there's another adage that comes into play here: Build one to throw away, you will anyhow.

His second attempt, no matter how he made it, was made with the context of his earlier mistakes.

RAII doesn't lead to spaghetti code necessarily. If anything, "unity builds" would more encourage spaghetti as it's easier to reference anything else in your build.

tialaramex 19 hours ago | parent [-]

I think the mess you'll get with too much "Handmade" / Casey style ZII is actually slightly worse than if you lean too hard on RAII but it may well be less visible and so you don't notice.

For video games you can get things pretty badly wrong on the technical front these days and deliver an excellent game, that's one of the things Blue Prince demonstrates really well, a lot of the guts of Blue Prince are a trash fire, but the player will not ordinarily notice so who cares? Rebecca (of Rebecca's Pixel Quest) noticed, hundreds of hours in, that if she has two of certain special items the game gets confused. That's the sort of bug a better engineer wouldn't have, but she'd been playing the game for over a year when she noticed.

bena 4 hours ago | parent [-]

Yeah, that's why I can't take game developers too seriously when they harp on overall software quality.

They write a specific type of software that is very forgiving of bad architecture. Hell, some games are very forgiving of slow software as well.

For example, since we're talking about Muratori, The Witness does not have any of the concerns something as banal as Word has. The Witness gets to run for a single user as the sole application, without regard for anything else, and doesn't persist anything notable to the system.

There are entire universes of bugs and issues you just never even have to know exist. Hell, even Call of Duty supports multiplayer, which the Witness does not have to do.

Not to mention, sometimes your choice is between good performance or good architecture. Yes, functions cost, abstractions cost, all of this stuff costs. But some applications don't have the luxury of being replaced every Christmas. Some applications never get to "feature complete", they are living entities.