There are so many things being tracked all the time in the game for puzzles and the power arm. Yet despites literally tracking sunshadows for some puzzle completion for example it runs almost smoothly with (in my 170h) no crashes. On a 6 yo portable console??
Botw was already impressive but I could grasp it with the shaders and also there weren’t that much physics puzzle. Objects were more static, there wasn’t the two other maps, enemy diversity was limited, same for weapons. There was less of everything overall but I thought it was the limit of the console and the possible engineering around it.
Is there any resources on how they managed to pull this off? White papers, behind the scenes, charts, …?
Digital Foundry has a great video on the subject
Just a lot of visual tricks and sacrifices that people won’t notice due to the great artstyle. The textures are really low quality, the game is often foggy to hide how low quality objects in the distance are, etc.
It’s really a shame to me that more people don’t experience it fogless at 1440p+/60+FPS. It’s BEAUTIFUL.
The best way to play any switch game is via emulation. It’s pretty funny IMO.
It’s wild. SMRPG came out and i immediately checked if I could play it BETTER, and day one? Yep absolutely. TotK took some time but through the tireless efforts of an awesome dude, certain mods and settings had it running amazingly after a few weeks. A few months later it’s 60+ smooth with no drops.
Console games developed at the end of the console lifecycle often includes various optimizations learned by the dev community to squeeze as much performance as possible. Just look at how good gtav and mgsv on ps3 for example.
MGS V’s performance is a freaking work of art. It ran incredibly smoothly on my PC, and was gorgeous to boot. Then I loaded a few other games and had to turn down settings to hit 60fps.
Can confirm, I still remember how impressed I was to see MGS:V running smoothly on my old dual-core Intel CPU with integrated graphics. It could never handle Sleeping Dogs or Deus Ex: Human Revolution yet this massive and beautiful open-world sandbox ran on it like a champ.
fox engine was well developed and iirc was used for PES, sad it didnt get much other uses though due i konami functionality pulling out of game development.
Institutional knowledge at Nintendo is pretty good since they don’t do routine layoffs and most people work there their whole lives.
You should go read up on the small optimizations that developers do to seemingly surpass the limits of earlier hardware. Stuff like swapping palettes in between scanlines to give the impression of more available colors, or reusing palette swapped cloud sprites in place of bushes to save on limited ram. Good engineers are really, really good. They seem to find a solution for everything.
When I was extracting sounds from the sound banks from the Nintendo 64 game F-Zero X I simply couldn’t find certain sound effects. It turns out that some effects are created during runtime by taking a sound sample and applying certain effects or filters, for instance pitch shifting the sample and looping it in rapid succession.
It’s a clever way to save on memory and the player doesn’t notice if it’s well done. The original Pokémon Red/Blue on the gameboy is an example where it’s not so well done in some places. If you pay attention you’ll notice that some Pokémon’s battle cries are simple pitch shifts of other ones and they didn’t apply any other effects to obfuscate this.
Shout out to Retro Video Game Mechanics Explained for his explanation of the entire construction of the cries.
I mean, pokemon needed 151 different battle cries. There is bound to be some overlap.
Pokemon is very optimised. In order to have the feature to give your pokemon nicknames, they had to scrap the other 105 pokemon just so they had enough space to write the code.
Sure, it’s a marvel how they managed to achieve a game of such scope within the constraints of a single cartridge. Still for the cries they could have managed to simply arrange them a bit smarter. For instance if you’re going to have pitch shifts the best place to use them would have been within evolutionary lines (grown up version simply has a lower pitch). So you could probably simply rearrange the existing sounds to make more sense without needing extra storage.
I don’t know if there are any for the switch specifically, but Modern Vintage Gamer on YouTube does a really good deep dive series he calls “impossible ports” where he covers the technicals of how a port of a game was made for a console and why it’s crazy that it works at all. Portal on the N64 and halflife on the PS2 are the example that first come to mind.
Sorry, can’t give you references, but the examples I used were from one of the early Mario games. I was around when the euro demo scene was still hot, so there were loads of tips and tricks they used to game the 8086-x386 hardware to create dazzling effects in real time, prior to the introduction of acceleration and dedicated graphics chipsets. It was a truly glorious time, and a great source of wonder growing up in the 90s watching the industry evolve around me.
Still blows my mind (though not in a good way) to hear a simple app or http framework nowadays needs several gigabytess just to install. Everything I mentioned used to happen in 32k-8mb of RAM.
The demo scene still exists and they still produce mind blowing stuff.
I still remember “playing” .kkrieger
, a 3d shooter fitting in a fucking 64kb exe. It did use quite a bit of RAM though.
Check out this rather extreme example: REVS on the BBC micro https://youtu.be/p5s-zbXtDoo?si=5UWDROP2HtGQSiut
I’m not sure what your experience levels are with code, but breath of the wild source code is decompiled and available online. it was truly eye opening how that game is designed, everything is very modular and parameter based to work within just a few generalized shared systems. I’d guess TOTK took those same systems and expanded the parameter data that can be applied, and added a whole lot more modules using them.
I am happy to read that there are still game devs around that give a fuck about optimizing their code. I am so sick of that whole “hardware is cheap” excuse for wasting resources.
Thinking about it… it’s probably more prevalent in game dev in general than in application software dev. But I digress.
I am so sick of that whole “hardware is cheap” excuse for wasting resources.
When you’re developing a flagship AAA game for the Switch you can’t use that excuse since you’re stuck with 6 year old mobile hardware.
The console was released almost 7 years ago, the chip used is even older at almost 9 years old
Game devs are overworked and underpaid af, so all those layers upon layers of abstractions just handed to you by game engines, at the cost of a ton of performance in order to save brainpower and time, look VERY enticing. Sure, you could spend more time and also spend more money in order to keep devs from leaving your company (because if you don’t keep giving your devs lucrative deals, they WILL jump ship as soon as they can get a better deal, that’s every job in tech) so you can maintain modular, decoupled, high-performance low-level code, but why do that when it’s just as profitable, even more profitable actually, not to?
But Nintendo, despite treating their consumers like shit, is EXTREMELY good with workers (especially in the context of Japan which is probably one of the worst countries on this planet for workers). They make good games because their employees aren’t overworked and underpaid as hell. They don’t have high turnover, they keep their employees over decades because they keep enough funding and effort into their current employees, rather than pumping all of that into hiring like most companies do. That’s why they can even exist despite the Switch being kind of garbage, why they can succeed where Sony and Microsoft are failing, because they attract and keep experienced, quality employees, so they can make quality games.
Game development & design can be one of the hardest jobs in the software engineering industry, and it’s the biggest entertainment industry on Earth by far, yet game devs have some of the worst conditions of any software engineers, dare I say the worst… So by buying shit games from shit companies, people are just affirming their shit practices.
This made me think we need an independent 3rd party to certify games that are “ethically sourced” , so to speak, like they do with cacao and palm oil.
I’d be more likely to buy games where the workers are treated well as opposed to ones from developers that are meat grinders.