Easy to follow tutorial for encrypting your PCK file

So I’ve been trying this with 4.3 and I’ve run into several issues:

  1. ld.lld: error: duplicate symbol: PKEY_Device_FriendlyName wwhich is solved by renaming the variable
  2. When exporting the template its as if the set key either in cmd or powershell isn’t read so then the game can’t unencrypt at runtime.

Is there any similar guide? Seems this one is not working for newer builds.

The first issue was a bug in the code, which has been fixed, see:

As for the second one, I’m not sure what happened, but the guide works even to this day with the newest version of godot, as I’ve had to do it a few days ago.
You need to set the key before you build the release template, then you need to put that same key in Godot’s export window, and making sure you use the template you built, not the official ones.

Thanks for this, been trying to get through all this but kept bumping into errors. Eventually deciding to use a VM with fedora 36 like they do for the official builds to create build environments: GitHub - godotengine/build-containers: Godot engine build containers

My question is though, I’m also planning on releasing for steam and it appears I need to compile the steam extension as well. Do I need the encryption for that as well?

Alright, after much trial and error with that method eventually scrapped it and went back to the building it on my machine.

All of this stuff worked fine, my issue was strictly related to compiling the GodotSteam extension to work with it, which I had lumped in together as part of the process. For the windows release template, using MingW actually breaks it so you have to use the Visual Studio Compiler for that part.

My game was built for Linux using Ubuntu 16.x in a VM.
I’ve recently switched to Linux myself, and tested my game on NixOS.

The binary runs fine, however, rendering behavior is unstable on newer systems, possibly due to how old OpenGL assumptions interact with new drivers (tested with 4070 Ti on proprietary drivers).
The game is functioning perfectly fine, but there are flickering shadows, blinding lights, Z-fighting, disappearing models, and everything was turning grey randomly. It’s basically barely playable.
I tried launching with different --rendering-driver options, but they were all the same way.

What can be done to make the game work properly on modern Linux distributions while still ensuring it remains accessible to people?

EDIT: Don’t know why I didn’t try this before, but running the Windows build through Wine works perfectly fine. I don’t think this is a major issue for Linux users.

Question: If I use Win11 and follow this tutorial, can I export the game for Linux and Android? Or will it only work for Win?

I never had to export for Android so I’m not sure to be honest, but I do know that this won’t work for Linux sadly, at least not on Windows. You need to export the game on an older version of Linux, otherwise only people with the same or more recent version of the distro you’re using will be able to play the game. Easiest way is probably to create a VM and do it in there.

2 Likes

So, without encryption, I can export from Win to Win and Linux, and on Android — it works. But if I use encryption, do I definitely need a machine with Linux to export the game for it?

Without encryption you can export to most OSes (except MacOS) without owning the hardware, but when you use encryption, you have to build the template yourself, and building from source requires running Linux, and preferably an older version that is still supported, so more people can play your game on linux.

1 Like

This is just the scenario where containers are useful. Still unable to get encrypted macos builds but using something like this GitHub - lyonritchie/GODOT_BUILDER: For building Godot export templates can work for building linux, windows and web.

2 Likes