Compiling for Universal Windows Platform

    • SCons (see for more details).
    • Windows 10 SDK (can be selected in Visual Studio installation).
    • ANGLE source. Use the (default) branch. Keep it in a path without spaces to avoid problems.

    For a general overview of SCons usage for Godot, see .

    You need to open a proper Visual Studio prompt for the target architecture you want to build. Check Compiling for Windows to see how these prompts work.

    There are three target architectures for UWP: x86 (32-bits), x64 (64-bits) and ARM (32-bits). For the latter, you can run vcvarsall.bat with x86_arm or amd64_arm as argument to set the environment.

    Set the ANGLE_SRC_PATH to the directory where you downloaded the ANGLE source code. The build process will also build ANGLE to produce the required DLLs for the selected architecture.

    Once you’re set, run the SCons command similarly to the other platforms:

    To export using the editor you need to properly build package the templates. You need all three architectures with debug and release templates to be able to export.

    Repeat for the other architectures.

    In the end your bin folder will have the .exe binaries with a name like godot.uwp.opt.debug.32.x86.exe (with variations for each target/arch).

    Copy one of these to misc/dist/uwp_template inside the Godot source folder and rename the binary to godot.uwp.exe. From the ANGLE source, under winrt/10/src/Release_%arch% (where can be Win32, x64 or ARM), get the libEGL.dll and the libGLESv2.dll, putting them along with the executable.

    Add the files in the uwp_template folder to a ZIP. Rename the resulting Zip according to the target/architecture of the template:

    Move those templates to the [versionstring]\templates folder in Godot settings path, where versionstring is the version of Godot you have compiled the export templates for - e.g. 3.0.alpha for the alpha version of Godot 3. If you don’t want to replace the templates, you can set the “Custom Package” property in the export window.

    If you want to debug the UWP port or simply run your apps without packaging and signing, you can deploy and launch them using Visual Studio. It might be the easiest way if you are testing on a device such as a Windows Phone or an Xbox One.

    If you have not built Godot yet, open the winrt/10/src/angle.sln solution from the ANGLE source and build it to Release/Win32 target. You may also need to build it for ARM if you plan to run on a device. You can also use MSBuild if you’re comfortable with the command line.

    Create a new Windows App project using the “App for OpenGL ES (Windows Universal)” project template, which can be found under the Visual C++/Windows/Universal category.

    This is a base project with the ANGLE dependencies already set up. However, by default it picks the debug version of the DLLs which usually have poor performance. So in the “Binaries” filter, click in each of the DLLs there and in the “Properties” window and change the relative path from Debug_Win32 to (or Release_ARM for devices).

    In the same “Binaries” filter, select “Add > Existing Item” and point to the Godot executable for UWP you have. In the “Properties” window, set “Content” to True so it’s included in the project.

    Right-click the Package.appxmanifest file and select “Open With… > XML (Text) Editor”. In the Package/Applications/Application element, replace the Executable attribute from $targetnametoken$.exe to godot.uwp.exe (or whatever your Godot executable is called). Also change the EntryPoint attribute to GodotUWP.App. This will ensure that the Godot executable is correctly called when the app starts.

    Create a folder (not a filter) called game in your Visual Studio project folder and there you can put either a data.pck file or your Godot project files. After that, make sure to include it all with the “Add > Existing Item” command and set their “Content” property to True so they’re copied to the app.

    Now you can just run the project and your app should open. You can use also the “Start Without Debugging” from the “Debug” menu (Ctrl+F5) to make it launch faster.