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.
Can you share your experience with how you got it to run so smoothly?
Sorry for the Reddit link but max has it DOWN
He also made a first person mod. He’s incredible.
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.
Well, Konami is back into game development, but the Fox Engine remains on mothballs. MGS3 remake will be on UE5 :/
And it scaled down to PS3, running just fine and looking pretty okay-ish.
Konami firing Kojima after he delivered that technical feat is incomprehensible. Idiot bastards, the lot of them.
MGS V in particular has an incredible color-grading setup, as detailed in that post. There’s a standard block of color samples. Artists can paste that onto any raw screenshot and fuck around with whatever hue / saturation / contrast tools they like. When the color block is copied back into the game, it acts as a color lookup table, and post-processing applies all those effects at once, basically for free.
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.
Need is such a strong word
I don’t think they needed a single one.
The game would be equally popular with, and without the screeches.
That’s exactly what I’m looking for ^^
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.Ah yes! Projecktt or something like that. Procedurally generated models and textures, and caused some controversy due to heavy reliance on the directx API. But technically astounding, nonetheless!
Produkkt
Check out this rather extreme example: REVS on the BBC micro https://youtu.be/p5s-zbXtDoo?si=5UWDROP2HtGQSiut
Hell yeah. I think it was Spyro – anyway, some psx game – that had to literally go through the source code and declare integers like
i
outside of loops, so they could be reused. All so the game would fit on disc.
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
The thing is, that it works.
Optimisation is what brought us Pokemon, an open world RPG with 151 different characters, each with their own stats, special abilities, strengths and weaknesses, on a freaking handheld that before only ran Tetris.
I’m just adding that info because it makes the feat even more impressive, I think.
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.
There was less of everything overall but I thought it was the limit of the console and the possible engineering around it.
This was indeed the case but not in the way you think it was. Remember that BoTW was developed for the WiiU. The WiiU was substantially less powerful than the Switch.
Nintendo ERD are no strangers to squeezing every last drop of performance for its target platform. They are absolute fucking wizards. BoTW was absolutely mind blowing as a WiiU game in the same vein that ToTK is mind-blowing as a Switch game. They used every possible facet of the target console’s abilities to get the results they did, and every new thing in ToTK is a result of the Devs having better specs to work with.
For example the fact that we weren’t using discs any more meant that the loading from the surface to the Depths could be relatively seamless, as card read speeds eclipse that of Blu Ray.
The boost from 1.5GB to 3GB of operating RAM meant that more things could be added to the world, including more enemy types and the sky islands.
The Switch also gets a considerable boost over the WiiU with regards to CPU and GPU power too, though it isn’t as dramatic. What it really has over the WiiU is access to more complex rendering modes, and these are used to address issues some had in BoTW like draw distance.
Nintendo ERD are no strangers to squeezing every last drop of performance for its target platform
BOTW is actually a horrible (or really good…) example of this.
BOTW’s development officially began in 2011. It came out in 2017 for the following console. I don’t remember how well it ran on the wii u, but it ran pretty horribly on the Switch and took a year or two of patches to get a stable framerate (Digital Foundry did a few great videos on this).
But if it were any other dev studio, it would have been nothing but “ugh, lazy devs” and all that stupidity. When the reality is just that optimization is hard (especially if you don’t get a devkit until fairly late in development) and it takes time to make a game run well.
Which… is the reality of how Nintendo or Naughty Dog or any other first/pseudo-first party studio can “squeeze every inch of performance”. It is less that those devs are fundamentally better than any others. It is that they have early access to the hardware and work in an environment where they can actually sit down and talk to the people writing the underlying graphics libraries/drivers for the platform.
youre kinda sideskirting the fact that the open world was only doable, not because of nintendo ERD, but because of Monolith Soft, who had far more experience developing open worlds and pushing a system to its limits than all other internal development studios.
hell on release, Xenoblade Chronicles X was essentially the largest console open world, and gave an optional 20 gigabyte download in order to speed up game loading assets. in a game where its only loading screen was teleporting, going into barracks, or a cutscene.
Because they’re not constantly tracking any of that stuff. It checks once at specific trigger points. If everything is satisfied for a thing to happen, the thing will happen.
Take the sun for instance. You just need to check if the time is at a certain time. It is literally just checking if a number is close enough to another number for the trigger.
Programming must be some arcane eldrich knowledge to some.
But to programmers, its a Thursday.
@OP The answer to your question is Object Oriented Programming.
Now I want to check if blocking the sun rays using contraptions will still allow to finish the puzzle. To see if our hypothesis is correct. They might have done it some other clever way.
The seamless interaction between objects is sublime. There are so many times where you’re like “I wonder if…” and the game handles your guess without any hiccups.
I don’t know, I wasn’t that wowed by TotK. I’m a huge Zelda fan, been playing all of their games at launch since A Link to the Past. But, TotK just felt like BotW with a clunky crafting system. It brought nothing new to the table outside of that. Additionally, the puzzles were often trivialized because of the crafting system being too overpowered.
While the open world aspect felt fresh in BotW, the fact that TotK was taking place in the same exact world felt stale. Sure, we got the depths and sky islands, but the former is pretty boring after the initial novelty wears off and the latter was pretty copy/paste feeling without much sense of exploration. The fact they they once again completely rely on your equipment constantly breaking in order to justify any reason to explore further reinforces the sense of forced purpose. In other words, there isn’t anything really to do in the open world besides finding stuff to replace stuff that will inevitably break.
I don’t know, maybe I’m just getting jaded or too old, but I’m just so tired of open world games. I missed the hand crafted feel of previous Zelda games, where the majority of your time was spent dungeon delving in places packed with secrets and puzzles that weren’t just physics minigames. I truly hope the next entry is something more along the lines of Twilight Princess or Ocarina of Time.
I missed the hand crafted feel of previous Zelda games, where the majority of your time was spent dungeon delving in places packed with secrets and puzzles that weren’t just physics minigames.
This so much.
Shrines are not a good replacement for real dungeons. The “dungeons” we get are so minimal and the upgrades you get are so meh. At best you get mobility or more ways to cheese combat encounters. Gone are the days of unique equipment and things that fundamentally change how you interact with the world, metroidvania style.
I think the open world aspect of zelda is it’s weakest link, it’s just too big of a sacrifice. Korok seeds are not real content for anyone who isn’t obsessed with the ‘gotta collect them all’ mindset, it’s just a copy paste idea like what we’ve seen in gta and assassin’s creed. There’s no real reward for excessive open world exploration, you’re constantly just trying to get from point A to point B with no reason to really delve into the landscape except for more koroks. Combat is a chore where you’re just fighting to get equipment to fight more.
Don’t get me wrong, there’s a lot of things going for the newer games, especially the controls. It’s just much less of what made the older titles great, and that’s fine. I keep having nostalgia for link to the past and that’s just not the kind of game this is.
Yes, you worded how I feel quite well. It’s a shame and I, too, long for another A Link to the Past styled Zelda (hell, Link Between Worlds was fantastic, please give us more of that while waiting for the next 3d entry).
Don’t get me wrong, I really did love BotW. I was floored when I first played it and truly appreciated the design concepts they were aiming for (especially since, as the name suggests, the wild is your main obstacle so it fits thematically). The open world tedium in that game didn’t feel, well, quite as tedious for some reason (I wager because it was fresh at the time). The dungeons were weak and disappointing, but the novelty of the shrines helped offset that. However, it no longer feels novel, to me at least.
I have plenty of nieces and nephews that got turned onto Zelda starting with BotW, so it’s all they’ve ever known. They absolutely love TotK and think it’s the greatest game ever (I’m happy for them and I do enjoy seeing the whacky contraptions they make). The game sold like hot cakes and received near universal acclaim. So, that’s why I am beginning to wonder if I’m just “too old” and no longer the target demographic. The lead designer did say they have no plans of ever going back to older Zelda formats, as they much prefer the current style of design and gameplay. If that’s truly the case, I just need to retire my investiture into the franchise and move on.
Additionally, the puzzles were often trivialized because of the crafting system being too overpowered
If they offered you puzzles and you ignored those puzzles via the crafting system, that sounds like a choice not to engage with the puzzles you claim to want.
I agree with OP. If there’s a puzzle in a game that’s clearly some kind of water puzzle, but I can make a boat to solve it in 15 seconds and bypass the obvious intent of the puzzle, maybe I feel a bit clever. But if I can solve every puzzle with effectively the same boat… what’s the point of doing the puzzles? I guess because I wanted puzzles? But on the other hand, if I know I can solve every puzzle with a 15 second boat, it feels kinda weird to pretend I don’t have an answer and struggle through anyway. Like, the victory is hollow when I know I could have solved it faster the dumb way.
The number of times in that game I thought “oh, maybe I have to jump up through the floor here to get through this door” and then I peeked through the floor and was like “oh, nope. It’s the damn final boss room again. Not supposed to be here yet, better go back through the floor and try another way to open this door” felt like I was babysitting the game so as to not entirely ruin the experience… and it kinda ruined the experience…
I suggest you take a good look at Tunic if you haven’t yet. That’s really excellent at doing zelda 1 type stuff.
literally tracking sunshadows for some puzzle completion for example
I’m guessing the way they do this is much simpler than you’re imagining. They don’t have to track the whole shadow. They just have to see if the targets are being hit by sunlight or not during daytime hours.
Even easier, they can probably check the game clock and see if the event occured and objects were in place within a given time frame (ie, when the shadow would be cast)
Most likely this.
There’s also a nifty optimization detail that was included originally in Breath of the Wild to deal with memory constraints, and eventually weaved as both a core part of the plot and a balance mechanic: the Red Moon phenomenon, that resets the state of the overworld at regular intervals. The developers originally explained that at the first stages of development, they had to deal with the fact that the game would eventually run out of RAM while tracking the status of every single enemy, so they decided to add a way to clear the slate, and settled for one of the best ways to integrate it in the lore of the game - explaining it to be caused by the malice of Ganon making all the slain creatures go back to life. And in an open-world game with weapon degradation, it’s highly appreciated to have a reliable source of additional weaponry, simply by waiting for the next Red Moon to defeat a few more enemies and take their weapons. I doubt that degradation would have stuck in the game if it weren’t for the Red Moon making the pull-and-push of resource management balanced - without it, there would be a point in the game where Link would have exhausted all available sources of weaponry and be doomed to play the pacifist for potentially the rest of the game.
They took Breath of the Wild and tacked a fairly basic building system onto it. It seems fairly unlikely they designed the whole physics thing and game engine themselves (then again, it’s Nintendo, so you never know) but it seemed identical to BotW except that obviously didn’t have the building.
I’m not sure I’d say it runs smoothly, though. And I play OoT a lot so I’m not a stranger to low fps and lag either.
By just copying the last game they spend half a decade on.
“Mer mer mer I didn’t play the game at all and hate it for no reason…”
I did play both games. I just really didn’t like totk because after years of development there were zero changes to the parts of the game that bothered me in botw.
Rant incoming: Combat still sucks ass, 90% of the enemy types are still the same (underground just colors them red), There is no point fighting anyone since you don’t get anything for them, even the chests are useless since all weapons are dogshit without the right fusionite. Dungeons felt less inspired than the divine beasts. World didn’t feel as rewarding to explore since many of the locations are the same or just slightly altered or now just floating in the sky. Performance was even worse prior to overclocking.
In the end im happy I spend €20 on a picofly instead of buying the game.
Rant outgoing: Counterpoint, combat is amazing and you’re just used to it because of breath of the wild. They absolutely did change the enemy types, and besides just being red the enemies in the depths permanently break your heart containers with gloom. Figuring out which enemies drop the best fusion materials is an essential part of the game, which I guess you just ignored. How did you not feel like jumping from floating ships in the sky up to a thunderstorm containing the entire wind temple was just not inspired enough? I’m seriously curious to know what temple designs would have satisfied you.
Counter counter rant: Idek what to say if you find the combat amazing, good for you I guess.
For me the main problem is that it’s way too easy/simple once you learn the counter or jump timing (1st fight if you played botw) and except for the bosses there is just 0 reason to engage in it, since the only thing you’ll gain from it is a replacement for the weapons you broke while doing it.
Don’t get me wrong figuring out the best fusionite weapons is cool but I’d rather have it be an addition to a nice weapon instead of everything you find being dogshit and only worth using once it’s upgraded. Btw It’s still weird that only the melee weapons were affected by the degradation and not shields and bows.
Yes there are some different enemies than in botw, but many are reused and I still feel like there’s not enough of them, and 9/10 times you engage them in the same way.
The dungeons don’t feel inspired enough to me since they all have the same premise, walk around for a bit doing a puzzle and have a fight. The devine beasts were 4 unique experiences at least.
The whole sky island shit is boring as hell since except for the first one you get to they are all the same few parts copied around.
Don’t get me wrong it’s not a bad game, its just not different enough from botw after 5 years. It’s just botw 1.5 maybe even 1.25, but definitely not a 2.0 If they had released it as a large dlc at a lower price I wouldn’t feel as strongly about it.
Fair points, and for sure they did recycle a ton of the content. I think really they were just banking on the completely new ultra hand and crafting mechanic to carry the majority of the gameplay. Cheers.
Ultrahand is definitely insanely cool feature to play with, I just hoped they’d flesh out the basics a bit more. That’s one thing I’d be sad to see go in the next zelda installment, although I’m not sure how they would keep it around. Hopefully the switch 2 allows for even more possibilities but I’m not that optimistic about Nintendo made hardware.
Saving and loading the kind of info you’re talking about takes very little time, and very little memory/disk space. Streaming/loading/unloading textures, realistic lighting, complex models, many objects/creatures is what takes a lot of time and often causes stutters in games. BotW/TotK do a lot with very little of this stuff. Maybe not the “many objects” part as their puzzles can get complex, but each object is kept very simple.
I would say that Nintendo ERD had access to the bare metal specs from Nvidia when implementing the graphics API (or reused parts of the mothballed Cg spec).
Sun shadows, really? As long as the atmospheric simulation is deterministic it’s just a simple vector op, probably takes less than a millisec per frame
Yes but I meant that they don’t just draw it using the GPU, they actually track the shadows casted from bodies to verify puzzle conditions.
While this alone can be easy to reproduce in your engine of choice, it’s the cumulation of all these small things that amazes me.
I’m not very familiar with TotK and I’m not sure how familiar you are with game development, but just in case you’re not very:
When making something like a shadow puzzle it is very unlikely they’re actually checking shadow conditions, and if they are it’s probably very sparse/only a couple of pixels.
For instance, if you know the position of the light source, the position of the shadow catcher and the position of the shadow receiver you could approximate the shadow casting with much simpler geometry. If Link is just treated as a box then you only need to check where each corner would cast a shadow and see if that overlaps the area you care about.
When done correctly the player would think it’s link’s shadow that’s being tested but in reality it’s nothing to do with the shadow, it’s just a much simpler estimation of a shadow that works well enough to trick players.
Game development is all smoke and mirrors. Tell the players one thing such as “This NPC is always at this location” then unload them when the player isn’t looking. It’s all sweet lies and I love it.
deleted by creator