ENIGMA Forums

General fluff => General ENIGMA => Topic started by: LoboSandia on December 05, 2015, 02:35:41 am

Title: About dependencies for distributing games
Post by: LoboSandia on December 05, 2015, 02:35:41 am
Hi guys, i dont post too often but i would change that

So my question is: Which dependencies are needed to  play games made in enigma, in another gnu/linux computer which do not have enigma installed? there are dependencies on windows?

thanks in advance :D
Title: Re: About dependencies for distributing games
Post by: TheExDeus on December 05, 2015, 10:46:18 am
Technically none. Everything is statically linked on Windows and Linux, so there shouldn't be any. I have seen people adding pthread.dll or openal.dll with their games made in ENIGMA, but that isn't required. Sadly I haven't tested Linux much, so there could be a problem there. But then we just need to change the makefile.
Title: Re: About dependencies for distributing games
Post by: LoboSandia on December 06, 2015, 12:12:41 am
thanks for the answer, i recently installed a fresh copy of debian, and tried to execute a previously compiled executable, didnt opened, then i installed the enigma required dependencies:

Quote
sudo apt-get install g++ zlib1g-dev libglu1-mesa-dev libalure-dev libvorbisfile3 libvorbis-dev libdumb1-dev

then the game worked, so aparently they are all needed to play the enigma-compiled games
Title: Re: About dependencies for distributing games
Post by: Rusky on December 06, 2015, 01:53:55 am
Only some of those are necessary, and ideally none of them should be. All I can say for sure is that g++ is unnecessary, but you may want to try removing the others one at a time to find the minimum set. That would make it easier to fix.
Title: Re: About dependencies for distributing games
Post by: onpon on December 06, 2015, 08:11:28 am
Someone once contacted me saying that the game I have written in ENIGMA (https://onpon4.github.io/games/karatekat/) requires DUMB (libdumb1)  and ALURE (libalure1). There might be more requirements that he just happened to have already, though, and he didn't say whether or not he had working sound.
Title: Re: About dependencies for distributing games
Post by: TheExDeus on December 06, 2015, 10:26:08 am
I guess on Linux it is more standard to use dynamic linking (as it is easy to install dependencies) instead of static. On Windows everything is statically linked as we don't want force people to include some .dll's with the game. On Linux I don't know what the best way would be in this case. Maybe two profiles in ENIGMA - one statically link and the other dynamically. If you don't use Audio, then only these should be required:
Quote
zlib1g-dev libglu1-mesa-dev
But of course without the "-dev", as it is required for compiling with ENIGMA, not running.

For the ones you posted:
g++ - Compiler - used by ENIGMA to make your game. But not required to run it.
zlib1g-dev - Used in ENIGMA engine to pack resources with zip compression.
libglu1-mesa-dev - OpenGL support what is used by ENIGMA for graphics.
libalure-dev libvorbisfile3 libvorbis-dev libdumb1-dev - All of these are for sound. OpenAL (ALURE) is the sound system used by ENIGMA. Vorbis and Dumb just give additional file formats OpenAL can playback.
Title: Re: About dependencies for distributing games
Post by: Goombert on December 07, 2015, 04:33:02 am
That could create a problem with copyright, proprietary software can't statically link LGPL.

You are actually best to just leave it alone for Linux. That's the way people expect it to work, and one of the reasons why I like Linux because it leads to less bloat. What should be done is to write down all the dependencies and list them on a page somewhere on the Wiki. Users can use that to warp the dependencies in a package that the package manager will take care of.

Somebody could also just make a script and ENIGMA could copy it to the output dir for install to work.