←back to thread

1371 points yett | 8 comments | | HN request time: 1.422s | source | bottom
Show context
db48x ◴[] No.43772686[source]
[flagged]
replies(8): >>43772700 #>>43772801 #>>43772908 #>>43773054 #>>43773261 #>>43774132 #>>43774982 #>>43777757 #
mschuster91 ◴[] No.43772801[source]
To u/db48x whose post got flagged and doesn't reappear despite me vouching for it as I think they have a point (at least for modern games): GTA San Andreas was released in 2004. Back then, YAML was in its infancy (2001) and JSON was only standardized informally in 2006, and XML wasn't something widely used outside of the Java world.

On top of that, the hardware requirements (256MB of system RAM, and the PlayStation 2 only had 32MB) made it enough of a challenge to get the game running at all. Throwing in a heavyweight parsing library for either of these three languages was out of the question.

replies(11): >>43772845 #>>43772895 #>>43773040 #>>43773086 #>>43773123 #>>43773186 #>>43773306 #>>43773332 #>>43773461 #>>43774704 #>>43775548 #
1. kevin_thibedeau ◴[] No.43773123[source]
The flaw isn't the language. The issue is a 0.5x programmer not knowing to avoid sscanf() and failing to default and validate the results. This could be handled competently with strtok() parsing the lines without needing a more complicated file format.
replies(2): >>43773433 #>>43773984 #
2. butlike ◴[] No.43773433[source]
Worked fine on the target machines and the "0.5x programmer" got to see their family for winter holiday. Or are you saying they should have defensively programmed around a bug manifesting 21 years later and skip seeing their family during crunch time?

To be honest, I just don't like how you disparaged the programmer out-of-context. Talk is cheap.

replies(1): >>43773548 #
3. db48x ◴[] No.43773548[source]
Using a well–written third–party library would not increase the development time; it would in fact reduce it. No risk of missing Christmas there.
replies(1): >>43773635 #
4. trinix912 ◴[] No.43773635{3}[source]
Well-written 3rd party serialization libraries weren't exactly easy to come by 20 years ago, at least from what I can recall. Your best bet was using an XML library, but XML parsing was quite resource heavy. Many that seemed well designed turned out to be a security nightmare (Java serialization).
replies(1): >>43773811 #
5. db48x ◴[] No.43773811{4}[source]
I disagree. JSON is 25 years old, and SAX parsers are 22. A SAX parser is the opposite of “resource heavy”, since it is event driven. The parser does not maintain complex state, although you might have to manage some state in order to correctly extract your objects from the XML. Granted, it wouldn’t have integrated nicely with C to generate the parser code from your struct definition back then, but the basics were there.

But it is even more important for today’s game studios to see and understand the mistakes that yesterday’s studios made. That’s the only way to avoid making them all over again.

replies(1): >>43775816 #
6. danbolt ◴[] No.43773984[source]
I’ll be the first to defend the greybeards I’ve befriended and learned from in AAA, but having seen codebases of that age and earlier, the “meta” around game development was different back then. I think the internet really changed things for the better.

Your average hire for the time might have been self-taught with the occasional C89 tutorial book and two years of Digipen. Today’s graduates going into games have fallen asleep to YouTube lectures of Scott Meyers and memorized all the literature on a fixed timestep.

replies(1): >>43774926 #
7. fragmede ◴[] No.43774926[source]
Otoh, the Internet has meant that nothing is ever finished, there's always an update to download.
replies(1): >>43775996 #
8. khedoros1 ◴[] No.43775816{5}[source]
> JSON is 25 years old

And in 2004, didn't have a published specification, or much use outside of webdev (which hadn't eaten the world yet).

> and SAX parsers are 22

And, especially at the time, pretty much exclusive to Java, right?

Put another way, which are the high-quality open-source implementations of those formats that the developers should've considered while working on SA in 2003 and 2004? Or for that matter, in the 2001-2002 timeframe, when the parsing code was probably actually written for use in VC?