Earlier quoted context omitted.
Sounds more like too little care rather than too much. Of course it also depends on how much maintenance is going to occur on that code. I think in production code one should already look for an abstraction if something is done twice. The goal is not to create a work of art or an abstraction that stands the test of time. It is just to remove some duplication, distribute code a little better over functions, give thing…
I used to think that if something is done twice, it should be abstracted. Now, I'm a bit more careful. There's a pretty famous quote by Sandi Mentz: "Duplication is far cheaper than the wrong abstraction." https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti... Make sure that you're picking the write way to think about the task at hand, rather than blindly following DRY. There are times when even a single ins…
Many games are held together by duct tape
41–50 of 155 posts
Re: Many games are held together by duct tape
#42The ceiling of complexity was raised waaaay over that of the previous generation of tech, but the techniques used by developers didn't advance nearly as far.
So you have a lot of if this value == this number, load this scene (OoT) or if this value is greater than this limit, cycle it back to the lowest possible value of the range (Civ, Nuclear Ghandi)
Now, bugs in big games tend to be critical crashes because the tooling and techniques have standardized and caught up to the complexity ceiling
Re: Many games are held together by duct tape
#43Nit: I wish people wouldn’t mention programming and computer science in the same essay, unless it’s something very technical such as discussing synchronization algorithms. Most programming isn’t science. Most programming isn’t even engineering. Most programming is contracting or DIY tinkering. We use ridiculous metaphors like constructing an airport, when most programmers are tradespeople working on renovations. Have…
Nit: Actually most programmers I know are vastly intellectually overqualified for their jobs. We are talking like science PhDs. It's not "tradespeople working on renovations" it's more like rocket surgeons making mud huts.
I'm sure only a small minority of the official ~25.000.000 programmers in the world are science PhDs and rocket surgeons (I expect the unofficial number of programmers is even bigger). I have my doubts that those dime-a-dozen mobile apps or websites are all made by scientists.
Re: Many games are held together by duct tape
#44Watching speed runners play through games is a great way to visualise not only this aspect (that games are flimsy at best), but to visualise the same practice in any software - if you don't code defensively, often a simple mis-input breaks the game. A common pattern in many speed runs is finding some glitch through a door, and then the game logic kicks in and says "you are past this door, so you must have got the key…
I recently watched the fallout anthology run and some of the things the speed run community have discovered are amazing.
Re: Many games are held together by duct tape
#45Watching speed runners play through games is a great way to visualise not only this aspect (that games are flimsy at best), but to visualise the same practice in any software - if you don't code defensively, often a simple mis-input breaks the game. A common pattern in many speed runs is finding some glitch through a door, and then the game logic kicks in and says "you are past this door, so you must have got the key…
Thanks to Breath of the Wild, I've recently enjoyed watching a few speedruns and it's amazing to see the number of glitches in BoTW. Check this out https://www.youtube.com/watch?v=JEtHpCfi_DE I also don't understand how anyone can accept speedrunning through glitches as a world record, but I guess if everyone does the same run with similar or the same glitches then it's fair? Seems like it just becomes a race to know…
Understanding the buy strategy in CSGO doesn't make you a "cheater", in means you understand how to stretch the game to it's limits.
Mike Vrabel taking penalties to burn the clock might seen unfair, but he was just leveraging the rules as written to improve his chances of winning.
Re: Many games are held together by duct tape
#46Re: Many games are held together by duct tape
#47Nit: I wish people wouldn’t mention programming and computer science in the same essay, unless it’s something very technical such as discussing synchronization algorithms. Most programming isn’t science. Most programming isn’t even engineering. Most programming is contracting or DIY tinkering. We use ridiculous metaphors like constructing an airport, when most programmers are tradespeople working on renovations. Have…
Nit: Actually most programmers I know are vastly intellectually overqualified for their jobs. We are talking like science PhDs. It's not "tradespeople working on renovations" it's more like rocket surgeons making mud huts.
Or we're just churning out too many Phds
Re: Many games are held together by duct tape
#48Nit: I wish people wouldn’t mention programming and computer science in the same essay, unless it’s something very technical such as discussing synchronization algorithms. Most programming isn’t science. Most programming isn’t even engineering. Most programming is contracting or DIY tinkering. We use ridiculous metaphors like constructing an airport, when most programmers are tradespeople working on renovations. Have…
But from experience I know that almost all engineering professions put on their pants one leg at a time.
There is certainly a large difference between theoretical and applied physicists and computer science lacks this discrimination, but engineering is often about cutting corners where nobody takes a closer look.
If a colleague of mine calculates some optics, he puts some numbers in a special software and waits a few hours.
There is a lot of mundane work until there is a problem where you can apply computer science. Programming beside the very basics isn't explicitly taught as part of the curriculum. I think it is just a matter of experience and having understood the fundamentals at least at one point in your life.
And being surprised about the lacking code quality in "professional" environments is certainly be a regular experience.
That aside, nearly any modern game is a fairly complex construct.
I know some self-taught programmers that certainly eclipsed the "hobby" phase.
Re: Many games are held together by duct tape
#49Earlier quoted context omitted.
I used to think that if something is done twice, it should be abstracted. Now, I'm a bit more careful. There's a pretty famous quote by Sandi Mentz: "Duplication is far cheaper than the wrong abstraction." https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstracti... Make sure that you're picking the write way to think about the task at hand, rather than blindly following DRY. There are times when even a single ins…
If there is any article that I absolutely hate it is 'Duplication is far cheaper than the wrong abstraction'. A somewhat minimal abstraction has very little chance of being wrong. And if it is wrong, is it really that difficult to know? It has a chance of needing some improvement, but what code does not have a chance of needing some improvement? If one goes the full monty and introduces three design patterns every ti…
Maybe you know very different programmers than I have known, but if I had to compare what has been a bigger source of problems—missed abstractions, or abstractions that make things more difficult for no benefit, it's definitely bad abstractions almost every time.
Re: Many games are held together by duct tape
#50Earlier quoted context omitted.
> There is less need for long term support as games are expected to meet its twilight much sooner. I think this is true for the majority of games. But I wonder if it remains true for the most successful. e.g. GTA V released in 2013. Apparently as of 2018 it saw $6B in revenue. Though, surely a lot of this has to do with the new content they introduce to incentivize microtransactions. Fortnite was a paid early-access…
I'm not sure about the others but Minecraft's code was notoriously bad for years, but it didn't seem to hold it back.