LOVE and bytecode

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.
Dafu
Prole
Posts: 2
Joined: Wed Jan 12, 2011 5:39 pm

LOVE and bytecode

Post by Dafu »

Hi all,

Just found my way here last night. I was flipping through tigsource forum looking for a framework to use for a quick cross-platform project. I found LOVE and I think I might stick around for a bit longer than I planned! Fantastic work guys.

Now, on to code protection. I see there is a lot of chatter about this, rightfully so I say. It seems to me one of the main objections to supporting bytecode compiled lua scripts is that they're not cross-platform compatible. I don't understand this argument. If I plan to distribute a game outside of the LOVE community I will create a standalone package, which is already platform dependent. As is I will already have to provide different copies for each platform. So then what is the big deal if the bytecode is not cross-platform?
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: LOVE and bytecode

Post by Robin »

Dafu wrote:If I plan to distribute a game outside of the LOVE community I will create a standalone package, which is already platform dependent.
Not really. Us people on Linux can still run

Code: Select all

love yourgame.exe
and it will work.
Dafu wrote:So then what is the big deal if the bytecode is not cross-platform?
It is actually part of the problem. There are actually multiple problems with bytecode, and it's important to realise the LÖVE forums are filled with people who are used to seeing source code. I'm sure someone else can explain this better than me.
Help us help you: attach a .love.
User avatar
BlackBulletIV
Inner party member
Posts: 1261
Joined: Wed Dec 29, 2010 8:19 pm
Location: Queensland, Australia
Contact:

Re: LOVE and bytecode

Post by BlackBulletIV »

I've done a bit of research on code protection. One way is to use luac (Lua compiler) on your source code, which will compile the code into byte code. Unfortunately this protection isn't strong, and could be pretty easily decompiled. Plus as stated by this wiki article, luac comes with a whole lot of technical strings attached, so you're bound to run into problems.

Something that will give you more protection is merging your .love into an executable. This is described in the Game Distribution wiki article. But basically the most secure way I know of is to make a copy of the love executable (love.exe, love.app, or just love) and then, do this for Windows:

Code: Select all

copy /b love.exe+game.love game.exe
this for Mac:

Code: Select all

cat love.app/Contents/MacOS/love game.love > love.app/Contents/MacOS/game
and then rename love.app to game.app or whatever you want. Just be sure to rename the executable when you rename the application. Then edit the .plist file and adjust the settings needed. And finally for Linux:

Code: Select all

cat love game.love > game
Now, people will still be able to get to your code if they try, but this will make it harder. That's where you'll need a good license so you can sue them to world's end if they pirate it or something.

Anyway, good luck making games in Love!
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: LOVE and bytecode

Post by Robin »

It bugs me when people talk about "code protection" like it's a real thing.
Help us help you: attach a .love.
User avatar
tentus
Inner party member
Posts: 1060
Joined: Sun Oct 31, 2010 7:56 pm
Location: Appalachia
Contact:

Re: LOVE and bytecode

Post by tentus »

Robin wrote:It bugs me when people talk about "code protection" like it's a real thing.
It's a facet of the programming industry that has millions of dollars spent on it every year. How is it not a real thing? People care about it a lot, even if it's something of a pipe dream.

Or were you trolling? It's hard to tell without inflection to give me a tone of voice to interpret.
Kurosuke needs beta testers
Dafu
Prole
Posts: 2
Joined: Wed Jan 12, 2011 5:39 pm

Re: LOVE and bytecode

Post by Dafu »

It absolutely is a "real" thing. Yes we all know that in the end some tool somewhere can take your byte code and spit out something legible, and even if that wasn't the case, in the end you can break out your asm debugger. But there is a big difference between bytecode that could be reverse engineered, and open source. For some its a technical challenge, for most it would be a road block not worth their time. Offering no code security because there is no such thing as perfect security is a poor excuse.
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: LOVE and bytecode

Post by Robin »

tentus wrote:Or were you trolling? It's hard to tell without inflection to give me a tone of voice to interpret.
Not trolling, just a little frustrated about people who just don't get it. (This is not related to games or programming at all, this about your mindset, about life. If you live like that, you spend most of the time you could have spent on doing what you want to do on making sure others can't.)
Dafu wrote:It absolutely is a "real" thing. (…) Offering no code security because there is no such thing as perfect security is a poor excuse.
It's not about that. Who is going to "steal" your code? What do you lose if they do?

I come across this sentiment in other creative disciplines, such as writing, as well. It is a bit distressing to see people try to think like a short-sighted commercial institution rather than as a person.

I'm not saying you should open-source everything you publish, if you want restrictive terms that's fine, but please distribute it with source. It's easier, more reliable and will probably help rather than harm you.
Help us help you: attach a .love.
User avatar
tentus
Inner party member
Posts: 1060
Joined: Sun Oct 31, 2010 7:56 pm
Location: Appalachia
Contact:

Re: LOVE and bytecode

Post by tentus »

Robin wrote:
tentus wrote:Or were you trolling? It's hard to tell without inflection to give me a tone of voice to interpret.
Not trolling, just a little frustrated about people who just don't get it. (This is not related to games or programming at all, this about your mindset, about life. If you live like that, you spend most of the time you could have spent on doing what you want to do on making sure others can't.)
I'm sorry to say that you have misjudged me. My mindset is unusually inclined towards open source, I spend a great deal of my time publishing my work for free. I make a webcomic, I strive to make my open-source platformer more usable for others, I give free education lectures at my younger sister's college when I can. I honestly believe in open publication of information of all forms.

That said, I'm not going to dismiss the effort that others spend on trying to "protect" their work. It's legitimate work for understandable reasons, even if you and I consider it misguided. Most importantly, it's their choice. None of us can claim that the others just don't get it, it's their choice to behave how they want.
Kurosuke needs beta testers
User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: LOVE and bytecode

Post by bartbes »

First, combining love with the game leaves behind a valid zip, so a good archiver can open it.
Second, as has been said before, closed source is not hidden source, and, open source can be commercial.
User avatar
BlackBulletIV
Inner party member
Posts: 1261
Joined: Wed Dec 29, 2010 8:19 pm
Location: Queensland, Australia
Contact:

Re: LOVE and bytecode

Post by BlackBulletIV »

Code protection is certainly a real thing. But many people spend far too much time on it. The time and money spent on it is prevent (although it usually still happens) the tiny minority who are more tech-enabled game players from getting at it.

As for piracy, you can't stop it. World of Goo (no DRM) has a 90% piracy rate (based on very average figures however, it's probably something like 60%), and Ricochet (DRM) has 92%.

I think that people shouldn't obsess over code protection, but I don't agree that people should publish the source; that's up to them.
bartbes wrote:First, combining love with the game leaves behind a valid zip, so a good archiver can open it.
I understand that, for Windows. But are you saying that on Mac and Linux combining the zip archive with the executable make a zip archive?
bartbes wrote:Second, as has been said before, closed source is not hidden source, and, open source can be commercial.
I agree with that. But what good would it do to charge for an open source product? By definition, someone could just take your project and distribute it for free themselves. Or were you meaning just freely available source, restrictive license?
Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests