I am new around, my previous expertise covered Steam so i am addressing you for helping with my current situation.
I have currently a game deployed on Steam that’s using an installscript (installscript.vdf, steamworks feature) to set up a list of registries when installing on MS Windows, and aditionally to run a configuration program (once) upon game installing.
Now, i want to configure this title on Epic Store and i for now i cannot understand what similar choices i have on Epic Side. I don’t have the source code for this title (it’s a legacy title) and it needs a list of registries to be created, a customized database (.sdb) to be added to the OS and directplay to be enabled. On steam side and also on GoG side i am using scripts for that but Epic is different and i could use a hint on how to tackle this matter.
While we do not have install script support, the game can be configured to execute a prerequisite installer on its first run! There can only be one prerequisite installer, so this one installer will need to run all of the actions the game needs prior to first launch.
thank you for the guidance, i think i can make it work this way
I have a couple of aditional question:
As the sdbinst.exe (which i need to install a configuration database .sdb) and also the Dism.exe (which i need to enable DirectPlay) will demand administrator access to run silently, can you confirm whether the prerequisite installed app will be run with elevated access when run via the epic client?
The main purpose for this would be to spare the player of unnecessary UAC windows etc
is there a similar option upon uninstalling the app? Do i need to create a dedicated cleaning app for this part?
The main reason for this is that I want the uninstaller to clean up the created registries and other specific configs upon removing the game.
this is good news as some of the operations are admin only (For instance installing compatibility databases via sdbinst.exe or enabling the DirectPlay using dism.exe)
looking forward for it.
Back to the prerequisite installer documentation, I am reading the following in your documentation
"If you cannot use app-local deployment, you can have the Epic Games launcher run an installer upon users’ first launch of your product. As the Epic Games launcher records any installers that have already been completed for a product, users only see the installation process upon first access or when new dependencies are included.
While this option allows you to run a full installer, (…)"
I confess i am intrigued about using a full installer since: 1. my game needs about 22 registry keys to be configured and most of them are including the install folder name and path either in the key name or in the key path and i don’t know how can i do that without an installscript that can do that on the epic side (to include the environemnt variables etc) , 2. the dissadvantages can be mitigated as my title is fairly small and the processing time is fast enough and it can be also run with silent or verysilent flags making demanding little or no customer intervention.
My question is: can you confirm whether my understanding of the above mentioned documentation is right so i can use a full installer for my title?
A different question, what’s the usual way of deploying localized content in case a language selector is not available ingame?
In my current case, i have two distinct builds (English for EN and WorldWide audience and DE only for German speaking players).
On Steam or GOG side i can manage it by deploying localized content via specific depots but as far as i can see, Epic is handling this matter differently.
You are welcome to include a prerequisite executable that runs on the first launch and configures the registry keys you need, and if you have a /silent-style that seamlessly completes this configuration, even better.
We do not currently support language-specific artifact configuration. If no in-game selector is available, you could create a simple launch executable that determines whether the epic locale value passed to the game contains “de” and indicates that the computer is set to German, and launch either the English or German version accordingly.
Launch arguments passed by the Launcher are listed here: https://dev.epicgames.com/docs/web-api-ref/authentication#game-client-on-the-epic-games-store-1
thank you for the details. By fuil installer i meant an installer that deploys and configure the entire game. However it was a poor idea. Instead I’ve configured a semi-installer that one time configures the registry and other compatibility settings, past the game deployment install done by the epic client as a prerequisite installer.
Things are working as inteded until the moment when the client tries launching the game executable. At that point I am getting a LS 0013 error. None of the knowledge base tricks are working so i’ve extracted the epic client logs related to the operation where i see the bellow information and i don’t really understand what could go wrong as the paths seem to be OK.
The full log can be found here: epiclog - Pastebin.com (as i am too young around to be allowed to upload logs directly. )
Does any of these makes any sense to you? Maybe it’s the elevation warning received?
[2023.07.03-17.21.33:950][228]LogWindows: Warning: CreateProc failed: The requested operation requires elevation. (0x000002e4)
I am running the epic client on a Win10 running Virtual Machine. Note please that i am able to run the game manually from the folder where the epic client is installing it. Should you have additional question or inquiries for details that i may have missed here, thanks for letting me know.
In this case, it’d be best to create a private case and supply us with the BPT logs. You should be able to find this in the %localappdata%\BuildPatchTool\Saved\Logs folder. We then can get this passed over to a specialist who may be able to assist further.
thank you, i did that as soon as i’ve noticed the Epic holidays notification and it appears that my choices would be either a custom launcher or ticketing Epic for enabling the LaunchElevated tag for my exe.