Pages: 1
Author Topic: About dependencies for distributing games  (39,081 Views)
Offline (Unknown gender) LoboSandia

Member
Joined: Oct 2015
Posts: 9
View profile
Posted on: December 05, 2015, 07: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
Offline (Unknown gender) TheExDeus

Developer
Joined: Apr 2008
Posts: 1,860
View profile
Reply #1 Posted on: December 05, 2015, 03:46:18 PM
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.
Offline (Unknown gender) LoboSandia

Member
Joined: Oct 2015
Posts: 9
View profile
Reply #2 Posted on: December 06, 2015, 05: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:

Quotesudo 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
Offline (Unknown gender) Rusky

Resident Troll
Joined: Feb 2008
Posts: 954
View profile WWW
Reply #3 Posted on: December 06, 2015, 06: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.
Offline (Unknown gender) onpon

Member
Joined: Feb 2010
Posts: 102
View profile WWW
Reply #4 Posted on: December 06, 2015, 01:11:28 PM
Someone once contacted me saying that the game I have written in ENIGMA 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.
Offline (Unknown gender) TheExDeus

Developer
Joined: Apr 2008
Posts: 1,860
View profile
Reply #5 Posted on: December 06, 2015, 03:26:08 PM
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:
Quotezlib1g-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.
Offline (Unknown gender) Goombert

Developer
Joined: Jan 2013
Posts: 2,991
View profile
Reply #6 Posted on: December 07, 2015, 09: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.
Pages: 1