Can you extract programming code and such from published video games?

I didn’t know how to put that so I’ll explain better. I know zero about game development so bare with me. I know you can rip/extract 3D models and textures from published games for wii/ps3/xbox etc. but can you also take programming, blueprints, animations etc. from them as well? Basically I’m curious what aspects can be taken from developed games and reused without loss of function. I figure it’ll help me learn if I can dissect various games that I know and learn how they work. If I sound like a moron I apologize in advance lol

To start off, this is a very touchy subject and is in almost all cases rather illegal I’m afraid.
That being said, there are tools to accomplish what you are talking about, but they require considerable skill to utilize correctly and is not even remotely a practical way to learning about game development.
I would advise you against taking this route and instead point you towards open projects instead. To start off, you should check out the engine source itself! It is one of the most accomplished game engine code bases I have had the pleasure to work in.
If you are more interested in the game project aspect in contrast to the engine aspect there are still open source projects you could take a look at.
The most obvious one has to be the UE4 version of Unreal Tournament. If you go to Epic’s github account it is right next to the engine repository, ripe for downloading. :slight_smile:
I’m sure there are other ones as well however, although I would just recommend you go with UT since it is so easily accessible and developed in part by Epic themselves. Who could want for a better teacher?

Best regards,
Temaran

You cannot reuse anything from somebody else work without author permission. So extracted textures, models or sounds cannot be used.

But you can extract all that stuff and learn from it, for eg you can extract normal map, diffuse textures and character meshes from game like borderlands and see how they made materials.
So extracting it all for your own use\learning is fine, it is only forbidden to use that in your own game\application, sometimes even using knowledge you got from analyzing applications is forbidden. And no they cannot ban reverse engineering because then who would secure servers or analyze malware.

And yes you can extract and reverse engineer any code, sometimes it just takes more time than creating own code. Blueprints would be that case, code in bp is quite simple, trying to reverse it would take more time than just coding it all.

Actually, even this is something of a grey area. Especially when it comes to games as most games have EULA statements that you have to agree to before downloading them which explicitly prohibit reverse engineering. Some people completely ignore these and think they are not enforcable, but there have been cases where courts have upheld their legitimacy. Dangerous Terms: A User's Guide to EULAs | Electronic Frontier Foundation

It is still a heavily debated topic however. I really like this article, although it is a bit old…
http://www.securityfocus.com/columnists/349
It is certainly not 100% applicable since this guy then showed parts of the decompilation, but it is still interesting and gives some general musings. I think it kind of boils down to “Both courts essentially held that reverse engineering itself (provided the software was obtained lawfully) was a lawfully permitted “fair use” of the code under copyright law. But that is just copyright law.”
but it also gives some interesting views on under what conditions disassembly is legal, even for security companies.

I would argue that doing disassembly for learning purposes is similar to this, but once again… gray area.

No matter though, I would not recommend anyone just starting out to get involved in RE when it is so much simpler to just have a look at Unreal Tournament and the engine source. :slight_smile:

I personally think it is an extremely fascinating subject however!

/Temaran

Thanks for the information! I was asking from a technical standpoint, not a legal one lol.

Well if you’re still interested in pursuing this route, the tools are out there.
I probably shouldn’t post tool names in a public forum like this, precisely because of the legal standpoint. But just googling for “reverse engineering best tool” will lead you in the general correct direction for source disassembly.
Be aware that source disassembly is extremely difficult, even for a trained software engineer. And even if you manage to learn some modicum, you will still not learn nothing you could not have learned from studying the UE4 source. Most general systems are the same no matter the engine. The devil is in the details, and getting detail from source disassembly is even more difficult.

For extracting asset files, you need to figure out packing formats. Most modding forums can usually help you out in figuring out which programs use what formats, so google for that.

Just to reiterate, you will still find a lot more value in studying the engine source + Unreal Tournament any day of the week :slight_smile:

/Temaran