Live data from Hacker News

A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

arstechnica.com

21–30 of 80 posts

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#21

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

Archival is an adjective. I will die on this hill.

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#22

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

IIRC from developer stories from this era, things had to be done "creatively" to save space, and ensure optimal runtime execution. Certain platforms may well have had undocumented bugs and platform-specific optimizations that you simply had to adapt to.

Archiving wasn't a consideration - launching a playable game that would pay the salaries and lead to future projects was.

We take for granted that websites but in 95 are still more or less viewable in their original format today, but that's because things are designed that way. Gaming platforms were more or less abandoned entirely and rewritten - I might be wrong here but games from PlayStation 1 are not playable on PlayStation 4 are they?

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#23

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

IIRC from developer stories from this era, things had to be done "creatively" to save space, and ensure optimal runtime execution. Certain platforms may well have had undocumented bugs and platform-specific optimizations that you simply had to adapt to. Archiving wasn't a consideration - launching a playable game that would pay the salaries and lead to future projects was. We take for granted that websites but in 95…

Yes and no. I don't really have a justification for saying this because I was never working in that environment, but I don't think the industry spent enough time thinking about how their games would be played in the future and I suspect that a lot of the "well, the platforms required us to do this" is an excuse.

Yes, there are platform-specific quirks and bugs and stuff to work around, but say you're taking advantage of a console specific hack -- well, is that hack encapsulated? Is that hack mentioned anywhere in your internal documentation? Do you have internal documentation? I think you're mostly right that the thought was, "why would we care about building a game that runs on PS2, we'll just make a new game for that console."

You can do a lot with even really bad source code if the other stuff is good -- if you still have uncompressed assets, or your build process isn't completely reliant on some weird third-party proprietary dev kit. Bear in mind that with this project, they didn't even have access to the source code, and they had to manually decode 3D mesh data. So platform-specific logic was the least of their problems.

I suspect that part of that is that the games industry is just really young. And maybe some people were yelling about archival back then, but there weren't any real tangible consequences. Now that remasters are a big thing, you've got situations like this, where companies want to leverage old IPs and are suddenly realizing that doing that is twice as complicated as it should be.

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#24

Obligatory link to this series on the making of the original (written by one of the developers): https://all-things-andy-gavin.com/2011/02/02/making-crash-ba...

This was insanely interesting. Thanks for the link.

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#25

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

> even with that amount of work this recreation ended up having problems with collision detection that changed the entire feel of the game.

You know, I did 100% minus (non-required) relics on all three games, and I didn't really feel like it was any different. Sure I didn't compare them side-by-side, and sure I did explicitly ignore the speedrunning part of the games where minor differences would be easier to notice.

But it felt like the same games to me...

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#26

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

Crash Bandicoot was written mainly in GOOL, a custom to Naughty Dog lisp variant.

The game would have had to be rewritten anyway almost certainly.

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#27

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

> even with that amount of work this recreation ended up having problems with collision detection that changed the entire feel of the game. You know, I did 100% minus (non-required) relics on all three games, and I didn't really feel like it was any different. Sure I didn't compare them side-by-side, and sure I did explicitly ignore the speedrunning part of the games where minor differences would be easier to notice.…

https://www.eurogamer.net/articles/2017-07-04-fans-may-know-...

I'm curious if they ever patched this. It's certainly subtle enough that it got past their testing, so I'll give you that "changed the entire feel of the game" is probably an over-exaggeration.

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#28

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

Crash Bandicoot was written mainly in GOOL, a custom to Naughty Dog lisp variant. The game would have had to be rewritten anyway almost certainly.

I would think the lesson from this is, "don't build an in-house custom Lisp variant for all of your games unless you're willing to distribute the documentation, compiler, and dev tools with your source code."

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#29

The games industry is so stinking bad at archival that it hurts. Very little consideration is paid to using architectures and build tools that can be replicated later. Source code becomes unavailable (as was the case here). Game logic is written using highly platform-specific code that's difficult to emulate. Source textures and other raw resources get thrown out. And not to diminish from the accomplishment of the te…

Crash Bandicoot was written mainly in GOOL, a custom to Naughty Dog lisp variant. The game would have had to be rewritten anyway almost certainly.

I'm not convinced it'd be impossible to use the GOOL code though. It should in theory have been plausible to port a GOOL interpreter, and then simply use the original code in the new interpreter. That said, there are some possible complications with the approach, depending on how tightly integrated the old GOOL system was with the rest of Naughty Dog's very custom engine.

Of course they'd need to actually have the GOOL code to start with. It sounds like all they got from the original games was the original meshes and some other non-code assets, which ... I mean, that's some incredible reverse engineering work. I'm much, much more forgiving of the tiny little inconsistencies here and there given that context; the team did a fantastic job if they were primarily going off reference footage.

Re: A remaster with no old code: Crash Bandicoot was rebuilt nearly from scratch

#30

Earlier quoted context omitted.

Crash Bandicoot was written mainly in GOOL, a custom to Naughty Dog lisp variant. The game would have had to be rewritten anyway almost certainly.

I would think the lesson from this is, "don't build an in-house custom Lisp variant for all of your games unless you're willing to distribute the documentation, compiler, and dev tools with your source code."

If it's intrinsically doing any code modification (which as I understand it does in order to dynamically load and link code), even with all of that they might be up shit creek. Some of these platforms don't allow anyone, even the kernel, to make pages executable without providing signatures.
Post reply on HN