6 ms·
Disassembling Jak and Daxter (2017)
- dang 5y agoOne thread from when the article came out: Disassembling Jak and Daxter - https://news.ycombinator.com/item?id=13385687 https://news.ycombinator.com/item?id=13385687 - Jan 2017 (32 comments) A few related threads - others? How Crash Bandicoot hacked the original Playstation [video] - https://news.ycombinator.com/item?id=22439752 https://news.ycombinator.com/item?id=22439752 - Feb 2020 (77 comments) Lisp in Jak and Daxter - https://news.ycombinator.com/item?id=17133557 https://news.ycombinator.com/item?id=17133557 - May 2018 (25 comments) Parallelizing the Naughty Dog Engine Using Fibers [video] - https://news.ycombinator.com/item?id=9309665 https://news.ycombinator.com/item?id=9309665 - April 2015 (11 comments) Naughty Dog still uses Lisp in its videogames - https://news.ycombinator.com/item?id=1194873 https://news.ycombinator.com/item?id=1194873 - March 2010 (5 comments)
- TeMPOraL 5y agoAlso: Game Oriented Assembly Lisp - https://news.ycombinator.com/item?id=2090554 https://news.ycombinator.com/item?id=2090554 - January 2011 (7 comments) Some comment threads on Naughty Dog and Lisp: - https://news.ycombinator.com/item?id=1998321 https://news.ycombinator.com/item?id=1998321 - December 2010 - in which Andy Gavin himself talks about GOOL and GOAL. - https://news.ycombinator.com/item?id=9815011 https://news.ycombinator.com/item?id=9815011 - July 2015 - in which it is reported that Naughty Dog switched from GOOL/GOAL to Scheme, as they switched from C to C++ during PS2 -> PS3 transition.
- msk-lywenn 5y agoThere's also OpenGOAL which aims at rebuilding the whole GOAL architecture and disassembling jak & daxter to GOAL code so that it can be ported to more platforms and more easily modded. https://github.com/water111/jak-project https://github.com/water111/jak-project The announcement blog post is interesting: https://blog.jakspeedruns.com/opengoal-project-update-september-2020/ https://blog.jakspeedruns.com/opengoal-project-update-septem...
- jkrubin 5y agoSo I just read this article and it is bananas. Highly recommend the full read.
- JabavuAdams 5y agoAre you Jason Rubin?
- dbetteridge 5y agoJak and Daxter is a fantastic series, the fact that you can get it on PS Vita makes it all the better. Along with Ratchet and Clank, some of favourite teenage memories
- phant0mas 5y agoYeah, but on the Vita they run around 20 frames, which is not the way they were supposed to be experienced. It's 60 everywhere else.
- ace2358 5y agoWhat? I was just thinking I’ll have to pick it up. Why is this the case?
- dbetteridge 5y agoI don't remember this happening to me, but maybe its rose tinted glasses
- nsbk 5y agoSame here! I wish they continued with the IP creating some new stories rather than just releasing remasters
- codetrotter 5y agoSpeaking of the Vita, I think many people may not know of the version of the PS Vita device that is known as PSTV. It’s a PS Vita that you connect to your TV and use with wireless PS3 and PS4 controllers. I have one of these that I bought because I wanted to jailbreak it as well as to buy some official games and run. Following a guide online, I was use able to jailbreak my PSTV using the Henkaku homebrew enabler. Anyway, I personally like the PSTV and bought it rather than the regular Vita because I wanted to play Vita games but wanted to play them on a TV and using my PS4 controller. The PSTV can play most Vita games, but some Vita games were blacklisted from being possible to play on the PSTV. That’s another place where, in addition to being able to run homebrew, jailbreaking your PSTV is useful. With my jailbroaken PSTV I can play Vita games that I paid for but which Sony blacklisted from being played on PSTV. The reason Sony blacklisted most of the games they did is mostly because the portable Vita has some things like touch sensitivity on the back side, which some games Rey on. But I was able to emulate that feature with my PS4 controller. Don’t remember if that was a feature of vanilla PSTV or if it was enabled by the jailbreaking. So yeah, check out PSTV if you are interested in Vita. I seem to recall that I paid about $50 for mine on eBay new in box. It came with a PS3 controller but I used it with the PS4 controller that I had instead because I like the PS4 controller better than the PS3 controller.
- phant0mas 5y agoAnd keep in mind the jak and daxter games run on 60fps on the ps2. The ps3 remaster and the ps4 emulated version also run at 60.
- JabavuAdams 5y agoWonderful! I remember being obsessed with this game and the technology surrounding it. I think this + PG is what got me into Lisp and Scheme for a while. Still have this for PS2, and got the kids playing it about a year ago. Will have to remind them it's there.
- JabavuAdams 5y agoMaybe I should code my Sticks 'N Steel sequel in a custom language, instead of using Unity. makes crazy eyes
- wombat23 5y agoWhen I read stories like this about cool technology from the past that people can still enjoy today, I think it's a pity that the source code is locked away and lost as people and companies move on to new things. IMO, there should be some kind of archive that conserves and publishes them after some time has passed, so that they could be ported to new hardware and kept accessible. and somehow documented for future historians.
- phendrenad2 5y agoPerhaps a crowdsourced bounty system, which pays the rights holders if they open-source it.
- sumtechguy 5y agoNot all of them even have it. Once everyone moves on from a project unless the company has an archivist that stuff tends to get thrown away or forgotten about in some dusty drawer in some box of DAT tapes that everyone forgot about. I would say it would be around the very late 90s that companies started realizing they should hold onto that stuff. Even then...
- phendrenad2 5y agoTrue, maybe the idea will make more sense in 10+ years.
- city41 5y agoRe-releasing old games on new systems is pretty common. Crash Bandicoot got re-released on the PS4 for example. So companies are going to hold onto their assets in hopes of being able to cash in on them again.
- phire 5y agoSo this project provides a disassembler for GOAL. I wonder if you can go a step further and make a decompiler that outputs something close to the original GOAL syntax. Once you have that, I guess you can then recreate the compiler and REPL tooling.
- msk-lywenn 5y agoIt's on the way: https://github.com/water111/jak-project https://github.com/water111/jak-project
- plasma 5y agoIf you like this stuff, I recommend the Coding Secrets YouTube channel, where a developer shows off his past work and secrets to how a game came about, Eg https://youtu.be/Z0S92Fs5gOg https://youtu.be/Z0S92Fs5gOg and https://youtu.be/iEQLbbyToxw https://youtu.be/iEQLbbyToxw
- daitangio 5y ago> To create your own programming language, from scratch, and then write the entire game engine in it. I don't know of any other games out there that do that. scummVM is a "gameVM" written by LucasArts. "Another World" did something similar. So it was pretty common on old days (near '90).
- jayd16 5y agoIts still pretty common to create a scripting language, especially when you need loop holes around AOT compiles. Although its not the only language and usually not from scratch. For a while "some kind of LUA" was pretty popular.
- city41 5y agoSierra games of the era also did this, very similar to how scummVM works.
- kayamon 5y agoScumm etc are only writing the game in their own language, not the entire engine. The engine remains in C/asm/whatever.
- oppositelock 5y agoJak and Daxter's engine was freaking amazing on PS2. The PS2 has a terrible CPU. Given the way the instruction cache works, you can hit a theoretical max icache hit rate of 7/8. Nothing hits that except synthetic demos that have no real application. Furthermore, you have a manually managed scratchpad memory (think manual L2 cache), and you have to be really clever to avoid stalling the CPU. Your typical, hand-tuned C/C++ game on PS2 will be lucky to hit, perhaps, 50% cpu utilization. Jak and Daxter hits something in the upper 60% range, which is simply incredible. This means it's managing both its code and data exceedingly well. A naively written "simple" application, like the stuff you learn in software engineering class, will probably hit less than 20% CPU utilization, you have to work really hard for 50%. I was once a game engine lead developer in the era of the Wii and PS2, and that game blew my socks off, since my incredibly "clever" code didn't even come close to their engine, I was proud to hit 50%.