If you're a PS3 fan, chances are you have certain unpleasant thoughts towards the name Bethesda. The PS3 version of their game The Elder Scrolls V: Skyrim was hit with a number of performance issues around launch that didn't see widespread fixing until months after. With those resolved, PS3 players though their troubles would be over.
Then Dawnguard was released for the Xbox 360. PS3 players expected to have an announcement shortly after that, but it never came. Then Hearthfire came out for the 360, and PS3 still didn't even have Dawnguard. The general response to all of this is that this is simply par-for-the-course for Bethesda and the PS3, citing the large number of issues that Fallout 3 had on the PS3.
Can we truly blame Bethesda for the issues in Skyrim? Is it really that they are unable to develop for the PS3? Is the PS3 itself to blame? Let's take a look.
The Tip Off
I own the PS3 version of both Fallout 3 and Skyrim, and I've seen firsthand the issues the games have had that the other versions didn't have (based on my reading of other people's experiences with other versions). Fallout 3 had performance issues, bugs that other versions didn't have, and some were so bad that you could barely move around the DLC without it freezing and had to resort to fast travel only. Because of this, it's obvious that people were less than happy with the PS3 version and it lowered what people thought about Bethesda.
In contrast, the only thing that I've seen in Skyrim that is different between the PS3 and the others is performance. To my knowledge there are no bugs that are exclusive to the PS3 version, or they are simply minor issues.
What does this mean? It appears that since the only (noticeable) issue that the PS3 has with Skyrim is performance, it could be the PS3 itself causing the problems.
The PS3, Its Memory, and Skyrim
Bethesda stated that when launching they knew it was possible that the PS3 version could enter a "bad memory situation." Even so, they felt it was only affecting a small percentage of people. This was also stated on their own blog, citing memory and AI as culprits. But was this simply an excuse?
Let's look at the PS3 system and it's memory specs. There is 256 MB of memory devoted to video only, and 256 MB left for the OS and the game. As of version 2.20 of the PS3 operating system, it took a confirmed 43MB of memory to run, though it could be down to 24MB. Assuming the worst case scenario that it is still 43MB, this leaves 213MB of memory for everything in the game outside of graphics (audio, AI, and any other systems). (Source: http://www.edepot.com/playstation3.html)
A memory size of 213MB for a game as big as Skyrim is not a lot to work with. There's a lot going on, so let's list everything out. Please note that a fair amount of this is my personal speculation and I am no expert in every aspect of the more lower-level aspects of gaming programming; however, I feel these are all likely adding to issues with the PS3 version and memory issues.
- The game usually will have a good number of audio files at the ready in memory for when the player performs certain actions. Remember that there are different sounds for the player's footsteps, vocal reactions (being hit, falling, etc.), attack-related sound effects, collision sound effects, and dialogue. Though these are all likely less than 1MB each, having them all available at once will add up quickly. There is a possibility that these are loaded into memory only as needed, but this would probably cause noticeable audio playback delays, so it is safe to say that there are a fair amount of audio files stored in memory.
- Little things such as which weapon or spell is equipped or "hotkeyed" (allowing the player to switch to these items quickly without any hesitation in the game) can increase memory usage. The graphic, effects, and sounds for each weapon/spell are probably stored so that the game has quicker access to them and allow for a seamless transition.
- From what I can gather from the Creation Kit and some wording by Bethesda, they use a scripting language for a number of systems. This is all well and good, but that likely means that a little bit more memory is used compared to pre-compiled code. Since Skyrim is using a scripting language, chances are it is done through a straight-line interpreter. This means that the code is not pre-compiled into machine code, but is read in line-by-line and executed at runtime. The scripting language is also all human-readable, so must be converted to machine code on the fly. Though possibly not a huge memory hog, extra memory is needed to manage the reading and conversion.
- The game must keep track of the chests you've interacted with and their contents, the quests you completed, the places you've travelled, the people you've encountered (to some extent), and how you completed some quests throughout the player's history in-game. There are probably additional aspects of the player's history the game must track to create the varying experiences that Skyrim provides (including the random NPC encounters). The more you do, the more Skyrim must remember.
- Each object in the game must have some data stored for it. Though the graphical elements of each object are likely stored in video memory, Skyrim must keep track of the other elements of each object (including NPCs), such as health, position for calculations, inventory, collision-related data, sound effects, etc. Terrain data and their boundaries are likely stored as well.
- The engine itself probably takes a solid amount of memory. This includes the above-mentioned items, but likely even more things that haven’t even been mentioned up to this point.
Keep in mind that all of the above, and possibly even more, must be done in only 213MB of memory in a worst-case scenario. The extra 256MB of memory is for the video rendering only, so it can't be used for anything with the game outside of that. Though caching the data can help, there is still the issue that if stored on the PS3's hard-disk drive (HDD), or built-in cache, it will likely have to often remove some items and place new items into cache and memory. If it is using the HDD to do this, the fact that HDD read/write speeds are significantly slower than cache and memory will cause a lot of performance problems based on the frequency of using the HDD. None of this is including the additional memory needed for any of the DLC content.
What about the Xbox 360?
The Xbox 360 is similar to the PS3 in that it also has a total of 512MB of memory. The difference is that the 360’s memory is shared memory, so the developer has more control over what memory is used for what. For instance, let’s say that all Bethesda needed in terms of video memory to make Skyrim look good is 100MB. On the Xbox 360, this means that there is 412MB left over. If the OS were the same size on the Xbox 360 as the PS3 (I could not find the Xbox 360’s OS memory footprint), then 369 MB would be left for the game. That’s 156MB more than the PS3 would have available because the leftover video memory is not accessible on the PS3. Please note that these numbers are not the actual amounts of memory used by Skyrim on the Xbox 360; they are used solely to provide a basis for comparison between how Skyrim can use the memory available on both systems.
“It’s On Us”
Bethesda has stated that they don’t blame anyone and that it is on them to fix the issue. Though I commend them for shouldering the issue, I am left to wonder if it’s something that is conceivable on such restrictions. The problem is performance, so that means that either the engine isn’t compiling into optimized PS3 machine code, or their memory management techniques is just not good on the PS3 hardware. I’m also not sure if they can size down the memory footprint needed any further without removing something from the gameplay.
Looking to the Future
It’s really tough to nail down the issue without an official word for what the problem is. Though I cannot say for sure what the real reason is, as everything stated up to this point is speculation, everything seems to point to the fact that Skyrim is just too big with the DLC to run smoothly on the PS3 hardware, mostly due to memory restraints. Because of this (and other games), it is my hope that in the next round of consoles we see a major jump in available memory. The Wii U has 2GB of memory (1GB for developers and 1GB for the OS, not shared), which is a great sign and a good start, but it is my hope that the next Xbox and Playstation consoles have as much or more. By giving developers fewer restrictions, they can create bigger and more complex worlds than Skyrim, creating experiences that the player will remember for years after playing.