My Skyrim Setup

So it's weekend, and I think I need to take a break from writing code and research on the latest tech. I need something that causes my curiosity to run wild, but not something that's related to work. So I decided to play Skyrim... again. However, I had to reinstall because I uninstalled it recently. I have to go through it all that painstaking installation and customization again. So so why not make a post instead and not forget?


The Target Machine

To get a baseline of where I'm at, my machine is an Acer Travelmate X483 which is a mid-range travel notebook as well as my work notebook. Definitely not for gaming. It packs an Intel Core i5-3337U clocking which maxes out at 2.7Ghz. It has been upgraded to 10GB DDR3 RAM, a 250GB SSD which should speed up or, if not, totally avoid swapping totally. This allows it to carry heavier textures as well as decrease load times. The machine is also outfitted with half-inch high rubber feet since without it, the underside is just a few millimeters off the table.

With all that flare, it doesn't have dedicated graphics. I have to pull it off using the integrated Intel HD 4000.

The Setup

To begin, the setup I have is a near-vanilla Skyrim. That means it only has performance tweaks, bugfixes, patches, and minor beautification mods to remove the oddities from the game. Other than that, it's just your regular Skyrim, lore and gameplay preserved. The setup is recommended for low and midrange machines, casual gamers.

Skyrim

I'm using the latest Skyrim which at the moment of writing, is 1.9.32.0.8 and has all 3 DLCs installed (Dragonborn, Dawnguard and Hearthfire). Official or cracked doesn't matter. I use a cracked version for this demo, and a friend uses the Steam version. Mods work on both, though they're not guaranteed to work on the cracked version.

Note that I didn't include the high-resolution DLC in the setup. That's because one of the texture mods listed that will be listed later already contains the high-resolution textures, albeit optimized.

Know the Enemy

There are 2 things that would cause Skyrim to just fail miserably: memory available and processing power. If you have low memory, your system will tend to swap memory to the harddrive. Drive operations are one of the slowest operations in your PC, and you'd want to avoid that. Next is processing power. Skyrim is a "living game". The characters go about their lives, there's complex weather systems, heavy use of physics and animation.

If you have a GPU, that's good as the graphics are moved out of the game processing. Otherwise, without a GPU, it will fall back to the CPU. There it will start to choke the game because the graphics is now competing in processing time. Same goes for graphics memory. Dedicated memory is accessed faster than general-purpose memory.

Generally its better hardware, better performance. But the perfectionist in me just doesn't dig the concept of horizontal scaling. At work, I still feel discomfort when they try to patch up bad code work with faster hardware. So in this case, I'm not throwing in better hardware. I'm improving the game system instead by optimizing resources and processing requirements of the game.

Initial Setup

The following tools will make it possible to mod properly mod Skyrim without all the manual effort. SKSE extends the papyrus game scripting engine, while Nexus Mod Manager and BOSS will manage your mods and mod load order, respectively. The configurator and monitor will allow you to tweak and monitor Skyrim to your liking. With these installed, everything's just clicks away.

Patches, Bugfixes and Normalization

The following mods are bugfixes and patches that are needed to fix the remaining bugs in Skyrim. These range from texture fixes, to scripting and even quest progression. You wouldn't want to play a quest only to find out that it's broken midway.

UI Mods

These are UI enhancement mods for Skyrim which extends the current UI. These move majority of the operations to the keyboard rather than you mousing through the clunky UI. Also throwing in Enhanced Character Edit since Skyrim's character editor is handicapped.

Character Mods

Here's a few character improvement mods that you'd probably want. Most important is the XPMS skeleton and Realistic force because you'd want a more natural physics and movement. Throwing in a few other mods, most especially CBBE because females in the game aren't really female-looking.

Gameplay and Environment Mods

While there are a lot of weather, lighting and water mods for Skyrim, I specifically picked Pure Waters and Pure Weather because of the ease of install and almost no FPS drop. It's not as good as ENBs but it's good enough. Alternate start provides you with a shorter start into Skyrim instead of being forced to become the Dragonborn. At the moment, I play a level 19 assassin, with no dragons in sight at all.

Performance

Now here's the most important of them all. The following improves Skyrim by reducing oversized textures, removing unneered or unnoticed ones (like the fog) and even improving the rendering of game.

Skyrim.ini and SkyrimPrefs.ini

The following are values that have been added/modified from the defaults. Some of them are personal tweaks, which may not work for your machine. These include enabling of threading, completely disabling grass, archery refinements, shadow and controls tweaks, as disabling of postprocessing effects.

Delete both skyrim.ini and skyrimprefs.ini and run the original launcher. It will generate both files with defaults. From the defaults, add/or modify the following. If a section already exists in the file, just add to it. If a key exists, check the value. Most likely I modified them. Skyrim will ignore duplicate sections so be careful.

Skyrim.ini

[General]
sIntroSequence=
bUseThreadedTempEffects=1
bUseThreadedParticleSystem=1
bMultiThreadMovement=1
bUseThreadedMorpher=1

[Display]
iShadowMapResolutionPrimary=256
bAllowScreenshot=0
iPresentInterval=0

[Grass]
iMinGrassSize=100

[Combat]
fMagnetismStrafeHeadingMult=0.0
fMagnetismLookingMult=0.0
f1PArrowTiltUpAngle=0.0
f3PArrowTiltUpAngle=0.0
f1PBoltTiltUpAngle=0.0
f3PBoltTiltUpAngle=0.0

[Actor]
fVisibleNavmeshMoveDist=14000.0000

[BackgroundLoad]
bSelectivePurgeUnusedOnFastTravel=1
bBackgroundLoadLipFiles=1
bLoadBackgroundFaceGen=1
bUseMultiThreadedFaceGen=1
bBackgroundCellLoads=1
bLoadHelmetsInBackground=1
bUseMultiThreadedTrees=1
bUseBackgroundFileLoader=1

[Animation]
bMultiThreadBoneUpdate=1

[Decals]
bDecalMultithreaded=1

[Pathfinding]
bBackgroundPathing=1
bBackgroundNavmeshUpdate=1

SkyrimPrefs.ini

[General]
bUseThreadedParticleSystem=1
bUseThreadedTextures=1
bUseThreadedBlood=1
bUseThreadedMeshes=1
bUseThreadedMorpher=1
bUseThreadedLOD=1
bUseThreadedTempEffects=1
bUseThreadedAI=1

[Imagespace]
bDoDepthOfField=0
bDoRadialBlur=0

[Display]
iBlurDeferredShadowMask=5
fInteriorShadowDistance=2000.0000
fShadowDistance=1500.0000
iShadowMapResolutionSecondary=128
iShadowMapResolutionPrimary=256
fTreesMidLODSwitchDist=3600.0000
fGamma=0.8400
fSpecularLODStartFade=200.0000
fLightLODStartFade=200.0000
iTexMipMapSkip=0
fMeshLODLevel2FadeDist=3072.0000
fMeshLODLevel1FadeDist=4096.0000
iShadowMapResolution=256
fShadowBiasScale=0.7500
iShadowMaskQuarter=4
iPresentInterval=0
iShadowFilter=1
bDrawShadows=0
bUseSunbeams=0
bSimpleLighting=1
bShadowsOnGrass=1
bTransparencyMultisampling=0
bDeferredShadows=1

[Grass]
fGrassStartFadeDistance=0.0000
bGrassPointLighting=0
bDrawShaderGrass=0

[MAIN]
fHUDOpacity=1.0000
fSkyCellRefFadeDistance=150000.0000

[GamePlay]
fMouseCursorSpeed=1.0000
bShowCompass=1

[Controls]
bMouseAcceleration=0
bUseKinect=0

[TerrainManager]
fTreeLoadDistance=12500.0000
fBlockMaximumDistance=75000.0000
fBlockLevel1Distance=25000.0000
fBlockLevel0Distance=15000.0000
fSplitDistanceMult=0.4000

[NavMesh]
bUseThreadedMeshes=1

[Trees]
bUseMultiThreadedTrees=1
bEnableTreeAnimations=0
bShadowMaskZPrePass=1

[Decals]
bDecalMultithreaded=1

[LOD]
fLODFadeOutMultObjects=8.0000
fLODFadeOutMultItems=1.0000
fLODFadeOutMultActors=15.0000
fLODFadeOutMultSkyCell=1.0000

[BackgroundLoad]
bSelectivePurgeUnusedOnFastTravel=1
bBackgroundLoadLipFiles=1
bLoadBackgroundFaceGen=1
bUseMultiThreadedFaceGen=1
bBackgroundCellLoads=1
bLoadHelmetsInBackground=1
bUseMultiThreadedTrees=1
[Water]
bUseWaterReflections=0
iWaterReflectHeight=512
iWaterReflectWidth=512
bUseWaterDisplacements=1
bUseWaterRefractions=1
bUseWaterDepth=1

Results

The following images are from Skyrim Performance monitor and taken on my favorite benchmarking spot, the Sundered Towers - a place where you can see a lot of stuff nearby like mountains, plains, hostile NPCs, wolves etc. Since I use the integrated Intel HD graphics, VRAM and GPU measurements are not available for the monitor. But since it's integrated graphics, I assume usage is dumped to RAM.

This was taken enroute to the Sundered Towers from Rorikstead:

rorikstead-sundered-resource

rorikstead-sundered-processing

This was taken fighting against the tower's NPCs.

redoubt-battle-resources

redoubt-battle-processing

From the looks of it, it's what your average mid-to-low-range machine can provide you. The RAM consumption isn't that high, a little under 1GB. The CPU doesn't look like struggling, though the travel benchmark does reach 60%, crunching through the rendering of the terrain. And FPS isn't that bad. It hovers on 30-50 fps on average.

References

This wouldn't be possible without the help of the Skyrim Beautification Project from which I got most, if not all, bugfixes and mods (I added a few of my own not there). Consider my guide as a trimmed down version of their page, giving your an optimized Skyrim to play.

For the tweaks, I got them from .ini Tweaks - Improving Performance, Gameplay and Visuals as well as SPM's listing of performance-related ini entries. However, I think I didn't apply all of them, like the iHWThreads and papyrus tweaks as some say it does more harm than good.