Required dependencies for UE4 games.

Which dependencies do the games we build with UE4 require by default?

We tried running the built game on a new computer with windows 8.1 pro, but that didn’t work out of the box.

First, it was complaining about missing a msvcp120.dll. We downloaded this file and placed it in the same folder as the exe, and it kept complaining about more files.

After some more googling we found out that we had to install the 2013 c++ redistributable thing.

However, that wasn’t the only problem:

Now XINPUT1_3.dll was missing. Downloading this and placing it in the same folder as the exe doesn’t exactly work… 0x0000007b is an interesting error message.

After more googling, we found this file belongs to some version of directx (but NOT to dx11 which the game is supposed to use, as dx11 was already installed)

We then ran this program: http://www.microsoft.com/en-US/download/details.aspx?id=35

It seems that it installed all versions of directx from 2006 onwards. After doing that, the game runs.

So what we got from that is:

  • 2013 c++ redistributable is required.
  • The game uses dx11 but requires dlls from older versions of dx.
  • Installing these requires admin rights.

Where do we find a complete list of required dependencies?
And is there a way to get the game working without admin rights, assuming dx11 (but no older versions) is installed?
Alternatively, is there a way to run the game on OpenGL if dx11 can’t be installed?

Good question – I pinged some folks internally about this as I am not seeing UE4/Engine/Extras/Redist/en-us/UE4PrereqSetup.msi/exe as part of the launcher install. I haven’t paid attention to this aspect in a while so the folks that deal with this will need to comment and correct me :slight_smile:

The TLDR on intent is that you shouldn’t have to worry about the prerequisites and we should have an easy way for you to satisfy them on user machines.

You’re quite right, I’m sorry it was such a hassle to track down. The two you need are the Visual C++ 2013 runtime and the DirectX runtime.

We do have an MSI package which installs these prerequisites as Dan mentions, though it’s not part of the current distribution. I’ll try to clear that to be added in to the next release, and ask the documentation team to call it out.

I believe we’re using an older version of XInput for compatibility with older versions of Windows (like XP), where it should fall back to using the OpenGL renderer if DX11 isn’t available. Microsoft don’t include the older XInput DLLs with Windows 8 by default, which is why it needs to be installed manually. You can force the game to run in OpenGL mode with the -OpenGL commandline option if you want to try it.

1 Like

That sounds great! Is there a way I can get this installer? Unless the next version is right around the corner, it isn’t that urgent.

Is there a way to make it run with dx11 libraries only?

This doesn’t seem to work out of the box:

https://dl.dropboxusercontent.com/u/143512782/a/openglfail.png

Erm… bump.

And suddenly, bump!

Doesn’t seem like there is any dependency installer coming with the new version. What’s up with that?

Note that “Direct3D 11” and “DirectX” are different things. Using XInput of a particular version is different from using the Direct3D 11 APIs that come built-into Windows.
(Yeah, Microsoft could do better on making all of this clear)
You will need to run one DirectX Runtime Installer that includes XInput. You will also need to run the MSVC installer for the runtime for the version of MSVC that you build with, and perhaps for other dependencies you bundle.
The best way of doing this is to build your installer using WiX, and merge the other installers as MSM (merge modules) to hide it under the covers of your own installer UI

Apologies for not posting back here with an update. The 4.3 release includes the dependency installer in the Engine\Extras\Redist\en-us folder.

Sorry for getting in the middle of this! I used the dependency installer on a windows 8 computer but when i tried to run my shipped game i still got the “0x0000007b” error. My game runs fine on windows 7 computers. I’m also using UE 4.3 and found the dependency installer at the above location. I’m very new to this so I’m gonna ask a stupid question: is it because im shipping a 32 bit version and not a 64 bit version of the game? The 64 bit option is greyed out in my editor so I cant really try it out.

Thanks

Hmmm, that’s as it should be - we only support 32-bit shipping games at the moment. Could you try installing the following things and let me know if either of them fixes it?

Visual Studio 2013 Redistributable
DirectX installer

Thanks for helping! I finally got my hands on a computer with windows 8 and installed the programs you mentioned, but I still get the same 0x000007b error. I read somewhere that it could be problems with the registry and then i ran CCleaner but it didn’t help. Tried running my game on yet another windows 7 computer and it worked so i’m not sure if its my game or the specific windows 8 computer that is messing things up.

The 7b error means that a 64 bit program tried to load a 32 bit library. Maybe that happens because they didn’t create a 64 bit dependency installer yet? Don’t know.

I kinda hope its something that is controlled by UE and not something that is wrong with the computer i’m trying to run the game on.

I’m not sure what this is; is there any chance you could upload your packaged game somewhere so we could take a look?

Any news on this?
I’m having the same issue here after packaging a 32 bit app with UE4.4.1.
Some users get the dll errors and needs to download and install the VC++ package and others the DirectX package.
I would prefer that everything was included and installed with the game, so end users have a smooth experience.

I will ask our compat team to try to reproduce it. Are you packaging a C++ project? What operating system (version, 32/64 bit, etc…) do your users have?

Yes, it a C++ project (VS2013) and packaged as shipping (32 bit).
I’m not sure if all end users with this problem are on 32 bit or 64 bit windows. I’ve only seen the problem on a 64 bit windows (EDIT: Windows 7) myself.
For now I just recommend them to install the VC++ and directX package and that seems to solve the problem. Not very user friendly though :slight_smile:

We can’t reproduce this on any of our test rigs. We’ve tried clean installs of Windows 7, Windows 8, and Windows 8.1 (all 64-bit), and running UE4PreReqSetup.msi seems to install everything that’s needed for a game built in shipping to run. Can you give us any more information that might help us track this down?

I had no idea that I needed to include that install package. It worked on several machines without this (or maybe the users figured out to install directx and VC++ themselves)
Shouldn’t this msi already be included by default in the packaged game when UE4 packages game for shipping?
I’m sorry if this is obvious knowledge, but I did not know that.

Ah, I see! Not a problem; it is poorly documented at the moment, and not at all obvious.

The components included with that installer are very common, so most of the time a user will already have them. The MSI is suitable for including as part of an installer for your finished game, but we don’t include an installer toolkit as part of UE4. I have added a task to copy the MSI to the as part of the packaging process.