Where do you start with the video? Is that is that where we start here, asking where you start?
That's a really good question to start with
So when making a game specific video the first thing that I always research is what
engine is the game using because there's a lot of
standardization in the industry
Well, it's very common for most of the big games that are coming out to be on
five or six major engines, especially because
up keeping an engine, a custom engine, has become such an expensive task that most studios just
license some other engine to use
and
often that means that, if there's a moving or modifying community, if there's a community of people who are examining
previous games of the same engine there's a lot of things that you can learn from that that you can use -- even in older versions
of the engine. Very often when a new game comes out
which is the first game in a new version of an engine
the first thing that I will do is like research developer documentation
for the previous version of the engine because they tend to be a lot of things that still cross over
Traditionally, a good number of PC games store the variables that the game
uses to set up its graphics in a series of files. If you are lucky and these files are user reachable
and that means that you can play around with them
Most engines have a dev console
Like the Linux terminal like any console that you would think
Most of the time it is not user reachable
Sometimes it is so you just have to press the right letter and it comes out
In older games it used to be always reachable, but sadly it's become a less common thing
and, from there, It's a matter of experimenting. OK, like... let me let me let me find a very specific example
Frostbite, which is the engine used by the Battlefield games
Battlefield games still allow user access to the console
So a new Battlefield game comes out. First thing I do is I know there's a variable that you can add to the launch
commands of the
exe that enables that
developer console, and I start the game and I press the tilde button and it opens the console and then look ok
Let's see if there's autocomplete and I will start writing things and see if it's out of completing comments to me like like ok
If I press tab, does it auto-complete it to me? Okay
so using that I will search if there's a command like "list all"
"list command variables" or something to see if I can get a dump of
All the things that are inside there that I can play around with
if not, then it becomes a very painful process of going "a" and then
pressing tab and autocomplete and see what comes out, and like taking
screenshots and documenting all the little variables that are inside
And then from the names of the variable experimenting
trying to guess which ones are the ones that have to do with graphical fidelity, or graphic rendering in general
and start changing values see if they can be changed in runtime, see if those
values I can put in a certain file, and they will read them, and see what changes the game
A lot of it is guesswork
but once you sort of figure a certain engine, a lot of the games on the same engine thing tend to do something similar
For Metal Gear Solid 5, that's probably my favorite most proud case
Metal Gear Solid 5 runs in something they called the Fox engine, and that engine wasn't made for PC, and you can often tell
When an engine wasn't made for PC because it has no configuration files this all like a black box. It's all super contained
But I really really like this game and I really wanted to make a video about it. So I was exploring what to do and
I came through
The game had a pretty big modding community. There were people making like model swaps
There were people introducing like new weapons in the game through mods, and I kept telling myself like OK
But how did they figure this out, like how they did this? So I started doing some detective work
and this mod is
taken from this mod that is taking from this mod that I
started digging digging digging and found the first mods of the game and reverse google search them and
trace them back to like a couple of forum posts
So I searched that entire forum thread, and went through like the first post
and started reading them and it was a post about like the performance of the game
but halfway through like post 300 or something
someone figured out how
how they game encrypted its files and
created like a set of commands that you could do to unencrypt them
and someone made a tool about it and people started experimenting a modding with it
And I remember finding this very specific post of someone who went
"Hey, I unencrypted the files."
"I realized there's this folder here which has a bunch of Lua scripts"
which are what the game runs every time you change a graphical setting so and this is often how games do it like when you set
shadows to low
The game will search up a script and it will be like ok shadows to low means that this resolution
set to this this resolution set to this and this draw distance is set to this so they have this on different pockets and
I remember seeing that and being like oh, but now that I have access to this file
I can change what that script does and I could instead of
Lowering the resolution of shadows. I could make them not draw shadows at all and I started doing this sort of thing and
created basically a
Script that you could put in
Replace the normal script of the game and it will basically like not draw shadows and use a lower resolution
Texture than what it usually will do and it will be immediately obvious why the developer didn't do it?
because it really screw up with the
Dynamic lighting system of the game. Oh, but it before it was like a thirty five performance game. So yeah, that was amazing
I remember dude. I was so proud of that
I'm putting a video about it and someone else took what I did in the video and created a mod
Which was called like the potato metal gear mod or something in retrospective
I wish I who could have thought of that and I could have published the mod instead of him
But yeah
That was that was an interesting contribution that I could do to that community and and I was a very fun process like vegan
figuring out how to unencrypt it and seeing all those files there and play around with them that
Done it that always makes my day. So it was really fun the Far Cry games run on
Can't remember the name of the engine they use but it's the same one for all the Far Cry games
it's just different versions of the same engine and
It has configuration files that I read everything in XML. So I thought to myself
oh, you can just probably find things there and change them, but it wouldn't really read it anything and
I could not do like a really good video on several or most of our games for a while
So I consulted with my discord community and someone
Reminded me that I think Far Cry 3 or 4 has a decent modding community
So altogether, we started looking through the documentation of the modding community
It had a bunch of encrypted configuration scripts that as most games do
Execute when you setup and the specific settings and people were putting around with those
so I started trying to basically what I did with Metal Gear and figured it out if I could replace them and
Some very bold person for my discord just decided to copy all the variables from those hidden encrypted
configuration files copy and
paste them on the normal XM user reachable XML
And the game read them all
like the game read all the variables that were not supposed to be on that file perfectly flawlessly and
From that discovery we were able to for example more
dramatically modify the draw distance of different elements of the game so you will have enemies
three meters in front of you and they will not be rendering and you can like
It was obviously very impractical but it was something that you could play around with for extra performance
And from that we made some interesting discoveries
so an LOD system in video games is
basically, and I'm in a nutshell because it's a very big topic is
When you create
different
versions of the models inside games that have different quantities of polygons or different quantities of details and
then with low detail ones you display far off into the distance and if that things gets close to you you
Gradually replace them for more details. That way you can serve the PCs resources and
Player doesn't really have to notice that that is happening. But those usually are set to distances
So X quantity of pixels you load a different model
Double X quantity of pixels you blow a different model
when you play around with that interesting things happen, for example in the Far Cry games a
few different objects seem to be in different pockets in
Terms of if they are drawn or not or if the use of lower version model or not
I think higher priority buckets or to run farther which are critical things that the
Player needs to notice and not so important stuff tends to be not rendered at the same distance
Now there's the game called Far Cry primal
Which a happens during the Stone Age. We noticed that the clothing of the
Caveman was in a different pocket
That the cavemen themselves and that means that if you set a really low value of your distance
If you were a certain distance from the caveman
They will be completely naked until you get close to them and the clothes will render
so you will see them completely naked at a distance and we'll try to get clothes and the clothes and the clothes will appear and
It's a makes you wonder how they sort of
created this game, but
Those are the interesting things that happen when you sort of play around with the inside variables of a game that you were not supposed
to reach in the first place and to their credit these
variables that the far cry engine reads directly from the user reachable XML
They have not been fixed to this day. The last game in the Far Cry franchise
Was released was for cry nuan and they just copied over the same set of variables that I've been using forever before cry video work
At the first try. So thank you for that far cry team. Thank you yourself. Please continue doing that
That is just very very fun that you can poke around in that eighty
Ninety percent of the work that I do is simply figuring out what are the variables that the game is loading?
when
You set up a graphical setting or when the engine is loading on the first time
trying to see where the names try to see where the maximum and minimum values and
Trying to see if you can make them breathe and the main values and see what happens from there
it would be I think will be healthier for the entire PC gaming ecosystem if we get more and more games that allow
that sort of control over most particles a good example of someone who does that is it so
the new newest versions of the eat engine used by the
latest doom and Wolfenstein games
They have an user which able developer console
it's you set over a
Variable and the lunch comments of the game and you press tilde and it opens up in most games and from there you can not
Only play with a lot of the graphical settings
But also activate things like god mode or infinite ammo like you can use it for actual cheats
but what I have always liked about this games is
That if you open up the dev console and you type anything
you get a message that says you have enabled dev mode and you will not get any achievements on the game like
And I think that's a fair deal. You can play around with the game. All you want you can a
Custom settings you can play around with your graphical settings in no supported ways
The game is just making sure you're not cheating your way into
Achievements seems like a fair deal to me and I and I wish more games that this because this is something that you can
all other players can get a lot of benefit out of and
III have discovered a couple of things on the on that that console that makes both the new doom and the new Wolfenstein games
way more accessible and low-end pcs
So that is a tradition that I that I hope it continues
the worst cases are the games that are
Complete just bad ports from consoles
they will try to grab the code base from the console and
Slight adapted as best as possible with limited resources to PC
That means not many graphical settings. That means often that you will find quirks
There's two two examples come to mind
near automata and
the latest Monster Hunter game
Both of this games and this is not me saying it this is that was a community discovery
what are people started poking around the games and
started
realizing that the games use timing systems that are very common for consoles, but when you use that sort of
System to calculate your timing on a PC. It causes stuttering and
So when you notice stuff like that
you're like it's a little bit irritating, especially because
There's a tool that the guy who did the discovery
Developed a tool that will in real time
intersect the calls that the game will be doing on the code and replaced them with calls that were more efficient for PC and
He has been he added a lot of different things to this tool that improved
it improved the CPU performance of monster hunter by a lot and that allow things like changing the global illumination for
Nier automata which
Completely makes the game playable in like anything that I owned. Otherwise, it would have been impossible
So for time to time the work is caught out to me by someone else who make this marvelous pieces of software
But these pieces of software sort of exist because someone noticed that the code was written
specifically for consul and he still has two quirks related to it and it's all been to the community to fix it, which
isn't exactly morally right, but at least I'm
Glad that it exists so we can get to enjoy this games
Right. These are the kind of things that people who are writing computer games
Not me people who know what they're doing writing computer games are thinking about right. How can we do post-processing like motion blur and
bloom and other kinds of filters that look good in a game, but don't grind a whole thing to a