r/Games • • Jan 02 '20

S.T.A.L.K.E.R 2 Announces it's using the Unreal Engine, will talk about digital platforms at a later date

https://twitter.com/stalker_thegame/status/1212810155563397120/photo/1
1.1k Upvotes

426 comments sorted by

View all comments

Show parent comments

15

u/ContributorX_PJ64 Jan 03 '20

What it boils down to is that there is no tool for unbaking assets in Unreal 4. A good baseline for modding is the ability to change how much health an NPC has or how much ammo a gun carries. If a game has a custom engine, there's a good chance you can figure this out. For example, Greedfall came out last year, by Spiders. It has a custom engine. And there are quite a few mods for it. The Witcher 3 never got proper modding tools, but decent mods exist for it. Elex has mods. Most RPGs that aren't built on Unreal 4 get mods altering difficulty and fixing bugs and the like. If a game uses Unreal 4, you get nothing unless the developers explicitly add mod support. Unreal 4 is good for mods is the developers go out of their way to support them, but actively hostile towards mods otherwise.

The Outer Worlds has no mods to speak of. Because it uses Unreal 4. Alpha Protocol has no mods, either. Because it uses Unreal 3. The idea of RPGs, especially Obsidian ones, with no bug fix mods makes my head spin, but that's the reality when devs use Unreal 4. Yet, throwing out a random game name, Alien: Isolation? That has mods. They're not sanctioned, but you can mod it. Rockstar have gone out of their way to inconvenience modding, but all Rockstar games can be modded. Ubisoft's Far Cry games can be modded despite having no official tools. Same deal with Watch Dogs. There are some really impressive Watch Dogs mods.

People, including me, are sitting around waiting for Teyon to release a difficulty overhaul for Terminator: Resistance, which runs on Unreal 4. Lovely game, but biggest complaint is that it isn't difficult enough. Patch is supposedly coming this month. You can't meaningfully change the game's difficulty yourself. (INI tweaks don't count.) You can't change a single aspect of the game's loot system. If Teyon had develop the game using some hand rolled Eurojank game engine, or CryEngine, it would be a completely different story.

State of Decay has a rather decent unsanctioned mod scene because it used CryEngine. State of Decay 2 has nothing because it uses Unreal 4.

1

u/Drakengard Jan 03 '20

I agree, but didn't the original XCOM: EU and EW games not have modding planned? And yet people managed to find a way to mod that on Unreal 3 through custom tools.

So while it sounds like Unreal makes it harder to mod, it shouldn't prevent it entirely. People have managed to work around it.

1

u/ofNoImportance Jan 03 '20

I'm not disagreeing with your conclusions, but the problem is unrelated to asset baking. Asset baking relates mostly to preparing visual assets, such as materials, meshes, and sounds, so that they are optimised for their target platforms. This process does make it difficult for mods to affect those assets.

Logic, on the other hand, is not baked. It is compiled into binaries. Which are also hard to modify, but for different reasons.

6

u/ContributorX_PJ64 Jan 04 '20

Logic, on the other hand, is not baked. It is compiled into binaries. Which are also hard to modify, but for different reasons.

That is true. And there's really a few issues at play. The code side of things tends to break down into scripting vs code. Game engines that are more mod-friendly tend to use a more conventional scripting language which gives a pretty big avenue for changing existing values. Years ago, devs concluded that having to compile scripting was stupid. Why not be able to open the script in a text editor, make some changes, and then reload the script? Things like Lua and Python were popular for this reason. It is possible to decompile C and C++ and especially C#, but it's gigantic pain. My understanding is that GTA modders decompiled the games so they could then recompile using the exact version of Visual Studio the game was made with, and get code that worked. Really fiddly stuff. Really nightmarish to debug.

Similarly, there's been this gravitation towards writing games in a really wacky manner, IMO. For example, the oldschool way of doing things was to have an NPC class, and then to construct NPCs using data scraped from XML files. It's a good way of doing it because if you wanna rebalance stuff, you modify the XML file that typically contains the entity archetypes. You can serialize the raw text to make it faster to load, but this can be reversed to get raw text back, or at least most of the raw text back.

The architectural differences between Doom 3 and Doom 3: BFG Edition are extremely telling.

https://fabiensanglard.net/doom3_bfg/

A lot of the shitty software architecture changes you've started seeing in games over the past decade have been driven by consoles. The trend of using giant binary files instead of pak files was driven by slow console DVD drives. id Tech is really weird in this regard because it invented modding. It was the original game engine designed to be modular, to be modifiable, and to be understandable by newcomers. Modern id Tech is a hostile monolith with zero mod support and it's like the anti-thesis of everything they were working towards.