Live data from Hacker News

Many games are held together by duct tape

polygon.com

41–50 of 155 posts

Re: Many games are held together by duct tape

#41
post #21

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…

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 time that two lines are duplicated sometimes one will certainly end up with, perhaps, not so much the wrong abstraction as an overly convoluted one. This acticle is the excuse for programmers everywhere not to fix their messes. It is 100% opposite to what programmers need to hear.

Re: Many games are held together by duct tape

#42
This I what made the 1990s era games so full of non-critical bugs AKA "glitches".

The 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

#43

Nit: 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.

That's probably selection bias due to the circles you're part of. Most of the people I know have at least a master's degree but we can agree that I can't extrapolate based on that data.

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

#44

Watching 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…

For anyone interested in speed runs, you should check out Games Done Quick - https://gamesdonequick.com/. And it's all done for a great cause too.

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

#45

Watching 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…

Playing the meta is part of the game. If you're not loading in other code or using 3rd party assistance, it's fair.

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

#47

Nit: 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.

Sounds like they were mislead as to what their career prerequisites were.

Or we're just churning out too many Phds

Re: Many games are held together by duct tape

#48

Nit: 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…

The field is called computer "science" and maybe that creates expectations.

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

#49
post #41

Earlier 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…

> It is 100% opposite to what programmers need to hear.

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

#50
post #7

Earlier 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.

Honestly I think the bugs _helped_ Minecraft—bugs in the terrain generation made for interesting scenery that was popular to share, and bugs in the multiplayer code helped build the community as people shared how to get things like minecart tracks to work.
Post reply on HN