Windows Export Results in Multiple Files

I tried to export a test project to windows from a macOS system and it resulted in multiple files such as dlls. I want to ask whether these files are required for the executable to function. If that is the case, how can I embed them to the executable from this system.

But isn’t that totally normal and expected? Usually windows builds from many game engines have a .exe, one or many .dll, folders… But also on MacOS! But you don’t see them because in Macs they are all zipped into s .app file. Which is just that, a compressed zip.

I actually did not expect this outcome since Defold came in a single executable and I thought it would show the same courtesy to its creations, besides I also saw game engines that are able to embed all its dependencies to a single exe file. I just want to ask whether I can produce a single executable with Defold export or whether there is a tool that I can use to embed its dependancies.

The Defold editor doesn’t come in a single executable, either. It packages a whole JDK and a .jar file full of stuff:

Defold
├── config
├── Defold.exe
├── logo_blue.png
└── packages
    ├── defold-77447320512be9b125d94c370d7880540d7080e2.jar
    └── jdk-17.0.5+8

Like @playmedusa said, that’s all hidden away from you on macOS:

(I think it’s actually just a folder and not a zip, but the point still stands.)

For the DLLs, there might be some tools online to package all of 'em into the executable for you. As for the other files (game.arcd, game.arci, etc.), Defold is currently built with the assumption that those are separate, so there’s not much you can do about that. Maybe the devs could add a way for the user to replace the default resource provider?

As a Mac user, it might seem strange to have all these files to ship instead of a single .app, but it’s what your players on Windows (and Linux too!) will be used to.

What does contentless bundle do in this case since it did not generate any files other than dlls.

It makes a build of your game with just the native code (engine + any native extensions you might have) and without any of your game’s contents (sprites, scripts, objects, sounds, all the good stuff). The main use is for making a mobile dev app:

This isn’t something you’d want to ship to players.

Ok, are you sure that users would not mind having a zip file instead of an exe because previous tools that I used allowed me to ship just an executable.

Like I said, your players will be expecting to get a bunch of files all zipped up. Just look at the downloads for any game on itch.io.

1 Like

I would like to ask another question about bundling with Defold in general, do I need a build server for bundling even without the use of native extensions? Is it possible for me to bundle offline.

Bundling is always done locally.

1 Like

Then can you help fix this error, it appears when I attempt to bundle a project without internet connection:

Are you using extensions? If so, you need a server in order to build. Your message says you aren’t, but what is the value of your dependencies in game.project?

Bundling is the second part of the process, and that is done locally.

Also, that message looks a bit strange as the build server isn’t located at github.com

What is the server url value you have in your editor settings?

Yes I use extensions, but it is located in the cache as well. I know it because when I bundle it online, it skips download saying it grabbed it from cache.

Please check this value @Ahmutkadim

But that is only the first step, downloading the source packages.
Then the next step is to build the source, and for that you need a build server and an internet connection.

Once you have built it once though, that build should be cached locally, and you should be able to use Defold without an internet connection.

I used the default one as shown in the documentation.

But I built it numerous times and it still gives an error when there is no internet connection. In addition, I only used normal extensions not native ones. Unless lsp-lua-language-server is a native one is it? Do I need to use a server to build the standard engine as well?

If you need all the libraries you use to be always available offline, you should download them and copy the library folder into your project.

It’s not a native extension, but it does still have an ext.manifest file which might make the editor try to do a remote engine build.

1 Like

It is not about lsp-lua I tried to bundle without it and it still did not work. Copying extensions causes a lot of path errors since Defold does not reassign them. Is it possible to use a local server for extensions and create a local build server?