Distributing your games (making a .love file)

Questions about the LÖVE API, installing LÖVE and other support related questions go here.
Forum rules
Before you make a thread asking for help, read this.
User avatar
Luiji
Party member
Posts: 396
Joined: Mon May 17, 2010 6:59 pm

Re: Distributing your games (making a .love file)

Post by Luiji »

Automatically disabling file extensions is the best way to get a virus. Mostly because e-mails can attach "MyFriendlyFile.txt.EXE" and you would never be the wiser.
Good bye.
User avatar
Jasoco
Inner party member
Posts: 3725
Joined: Mon Jun 22, 2009 9:35 am
Location: Pennsylvania, USA
Contact:

Re: Distributing your games (making a .love file)

Post by Jasoco »

OS X knows when a file is a virus. It also asks for permission the first time you open any application or any kind of file that can be run and displays the entire file name. OS X is much smarter than you think.
User avatar
Luiji
Party member
Posts: 396
Joined: Mon May 17, 2010 6:59 pm

Re: Distributing your games (making a .love file)

Post by Luiji »

Cool. They need to integrate some of that into GNOME/KDE/XFCE/etc. (Yes, Linux has a lot of desktop environments.)
Good bye.
User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Distributing your games (making a .love file)

Post by bartbes »

Well, wine added cautious-launcher for windows executables, you might want to check that out. Other than that I must say you have a talent for derailing conversations.
User avatar
Luiji
Party member
Posts: 396
Joined: Mon May 17, 2010 6:59 pm

Re: Distributing your games (making a .love file)

Post by Luiji »

  • Cool.
  • Thanks.
  • Sorry.
Good bye.
User avatar
arquivista
No longer with us
Posts: 266
Joined: Tue Jul 06, 2010 8:39 am
Location: Insert Geolocation tag here
Contact:

Re: Distributing your games (making a .love file)

Post by arquivista »

Hello, just to say i'm new here, discovering Love and thrilled with it. I'm not really a coder, just a casual one having only some basic coding formation. I discovered that Love/Lua could be a good way of make in future my game projects. I hate C++ complexity and love Basic kind of easy code. For reference i'm using for now Love in Mac.

However the way that Love distribute makes a bit apprehensive . Here is my first thoughts (probably told already by someone in this thread):

1 - Distributing games for end-users it's a bit annoying for it's heavy size. In Mac should have a "lite/stripped" love.app just for distribution. Let's face it, the way it's done only for say "hello world" takes 19.4MB (6MB compressed). For sure there is a lot not needed, at least the very nice tank animation code! ;)

2 - There isn't a real compile (at least in Mac). Well this isn't real the problem for me but that the source is viewable in App package. So for example in a RPG anyone can be spoilled seeing history/plot text, game mechanics, etc. If not compiled at least source should have some kind of encrypt when attached in APP.

Well just my noobie thoughts. Let's keep the nice work improving Love.
--------------------------------------------------------
To Do: Insert Signature Here
--------------------------------------------------------
User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Distributing your games (making a .love file)

Post by bartbes »

But where to store that encryption key?
And about players reading the plot, well, they read it, so of course it's going to be spoiled. It's like reading a gameguide and then complaining you know what to do already.
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: Distributing your games (making a .love file)

Post by Robin »

arquivista wrote:1 - Distributing games for end-users it's a bit annoying for it's heavy size. In Mac should have a "lite/stripped" love.app just for distribution. Let's face it, the way it's done only for say "hello world" takes 19.4MB (6MB compressed). For sure there is a lot not needed, at least the very nice tank animation code! ;)
This can partially be solved by distributing games apart from the engine. That way, users only have to download LÖVE once.

This could be done without much trouble for the user by having the installer of the game check if LÖVE is installed or not, and if not, download and install it. I'm not sure whether Mac programs usually have installers, but it should work for Windows and Linux users.
Help us help you: attach a .love.
User avatar
arquivista
No longer with us
Posts: 266
Joined: Tue Jul 06, 2010 8:39 am
Location: Insert Geolocation tag here
Contact:

Re: Distributing your games (making a .love file)

Post by arquivista »

bartbes wrote:But where to store that encryption key?
For example Love app could encrypt source based in some app custom formula. Since love.app is compiled only the app itself would know how to decrypt it (or at least decryting would be hard or not avaliabel to casual users). However the attaching of source code in app resources was made for now in Mac must be different since the app must handle the attach of source code by itself in a way that could calculate a key for it and encrypt it.
--------------------------------------------------------
To Do: Insert Signature Here
--------------------------------------------------------
User avatar
bmelts
Party member
Posts: 380
Joined: Fri Jan 30, 2009 3:16 am
Location: Wiscönsin
Contact:

Re: Distributing your games (making a .love file)

Post by bmelts »

I'm going to leave the issue of source code encryption for the time being, because protecting source is something that's been talked about for a long time and no one's come up with a definitive solution... yet. I will say, though, that you don't have to put the .love in Resources if you don't want to - you can do the Linux method of fusing the binary and the .love, which at least protects your source code from the casual observer. If they're determined enough to split apart the executable and extract the .love, that's another story entirely.

As for the Mac app size, though, let's look at a breakdown of the app bundle size (note - all sizes are calculated by Snow Leopard, with a megabyte being a million bytes):

The love executable - 5 MB (keep in mind this is actually two executables - PPC and Intel)
Frameworks - 14 MB (keep in mind each of these have at least two versions of the library in them - again, PPC and Intel (and some frameworks, like SDL, have three or four))
Other - <1 MB

So we can see the Frameworks folder is where most of the app size comes from. There's not much I can do about the size of the executable - we need to include two versions of it for Universal compatibility, as we don't want to leave PowerPC users out in the cold. Same goes for the libraries inside the numerous frameworks LÖVE uses.

The one thing you can do to reduce the size of love.app for distribution purposes is removing all the Headers from the .frameworks. Ignoring whether this violates any relevant licenses (I'm not sure you can do that to some of the frameworks legally), let's see how much size this saves us. The standard love.app is 19.4MB, love.app without any framework headers is...

17.1MB.

2.3MB savings isn't terrible (though, again, whether you can (or should) actually remove the headers from some of the frameworks is dubious), but it's certainly not any sort of amazing LÖVE Lite - the fact is, given that every compiled part of love.app has at least two versions of itself in the bundle, out of necessity it's going to be fairly large.

Oh, and as for the tank animation: the images it uses are about 450KB altogether, and the code to make it run is less than 20KB. Stripping that out isn't going to help much, I'm afraid.
Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests