Pages: 1
  Print  
Author Topic: About dependencies for distributing games  (Read 10071 times)
Offline (Unknown gender) LoboSandia
Posted on: December 05, 2015, 02:35:41 am

Member
Location: Mexico
Joined: Oct 2015
Posts: 9

View Profile Email
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
Logged
You havent expected to see crystals falling from sky, dont you?
Offline (Unknown gender) TheExDeus
Reply #1 Posted on: December 05, 2015, 10:46:18 am

Developer
Joined: Apr 2008
Posts: 1860

View Profile
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.
Logged
Offline (Unknown gender) LoboSandia
Reply #2 Posted on: December 06, 2015, 12:12:41 am

Member
Location: Mexico
Joined: Oct 2015
Posts: 9

View Profile Email
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
Logged
You havent expected to see crystals falling from sky, dont you?
Offline (Male) Rusky
Reply #3 Posted on: December 06, 2015, 01:53:55 am

Resident Troll
Joined: Feb 2008
Posts: 954
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
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.
Logged
Offline (Unknown gender) onpon
Reply #4 Posted on: December 06, 2015, 08:11:28 am

Member
Joined: Feb 2010
Posts: 102

View Profile WWW Email
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.
Logged
Offline (Unknown gender) TheExDeus
Reply #5 Posted on: December 06, 2015, 10:26:08 am

Developer
Joined: Apr 2008
Posts: 1860

View Profile
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.
« Last Edit: December 06, 2015, 10:29:31 am by TheExDeus » Logged
Offline (Male) Goombert
Reply #6 Posted on: December 07, 2015, 04:33:02 am

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2991

View Profile
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.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Pages: 1
  Print