Skip to main content

User login

What is OpenID?
  • Log in using OpenID
  • Cancel OpenID login
  • Create new account
  • Request new password
Register
  • Home
  • Browse
    • 2D Art
    • 3D Art
    • Concept Art
    • Textures
    • Music
    • Sound Effects
    • Documents
    • Featured Tutorials
  • Submit Art
  • Collect
    • My Collections
    • Art Collections
  • Forums
  • FAQ
  • Leaderboards
    • All Time
      • Total Points
      • Comments
      • Favorites (All)
      • Favorites (2D)
      • Favorites (3D)
      • Favorites (Concept Art)
      • Favorites (Music)
      • Favorites (Sound)
      • Favorites (Textures)
    • Weekly
      • Total Points
      • Comments
      • Favorites (All)
      • Favorites (2D)
      • Favorites (3D)
      • Favorites (Concept Art)
      • Favorites (Music)
      • Favorites (Sound)
      • Favorites (Textures)
  • ❤ Donate
Liberated Pixel Cup

Supported Languages

Anonymous
Monday, June 11, 2012 - 16:40

I may have just missed this somewhere, but is there a (at least partial) list of what languages are and are not considered open enough? Is Java considered open? AS3? HTML5 is the only thing I've seen mentioned so far.

  • Log in or register to post comments
bart
joined 14 years 12 hours ago
Monday, June 11, 2012 - 17:17
bart's picture

I'd prefer not to get into making an official list of supported languages, for three reasons:

  • The inevitable "Why didn't you list Obscure Language X?" questions, and
  • We don't want to give anyone the false impression that something is necessarily admissible to the contest just because it happens to be written in a particular language, because that's not what the rule you're referring to is addressing.  Just to be clear, even if we list certain languages as "acceptable", you could always find libraries that are non-free and use those, which would disqualify the entry.

If you have a question about the free-ness of a specific language, there's a good chance that we may be able to answer that.  That said, the key isn't what language you use, it's whether or not someone can compile and run the game from the original code without using proprietary software of any kind.  Also, there are a couple of languages and platforms that fit technically this rule that we're asking people to avoid, specifically Flash (actionscript, gnash, etc), and .NET (including Mono).

I understand that for people who aren't familiar with free software it might be difficult to figure out what might fit this rule versus what won't.  The idea isn't to catch you off guard and disqualify you, though.  If you have a specific language you'd like to use, please ask about it and we'd be happy to help you make sure you're following the rules of the contest.

Since this question has been asked in some form or another several times over, I'd like to find out from you what we can do to clarify the rule, which reads as follows:

  • Platform:  Your code must be able to be compiled and run on a 100% free-as-in-freedom platform.  It may not make use of any proprietary libraries or VMs.  Just to be clear, we cannot accept games that will ONLY run on one of the following:  Flash, Silverlight, XNA, Unity, Windows, MacOS (or OSX), iOS, proprietary JVMs, or similar.  It is perfectly acceptable if your game runs on any of these platforms, but it must also work on an open platform (we strongly recommend making sure that your program run on modern flavors of GNU/Linux, as all of the judges will have access to it).

I've been involved with Free Software long enough that the above rule makes perfect sense to me, but if we're leaving anyone in the dark and can further clarify it with a FAQ question, please let me know.  Specifically, if any part of the above rule strikes you as unclear (or you're not sure exactly what it means), just tell me what's unclear about it and I'll try to go into more detail.

 

  • Log in or register to post comments
Anonymous (not verified)
joined 0 sec ago
71.96.230.18
Monday, June 11, 2012 - 23:14

I don't think I have enough experience with this stuff to tell the difference between free and free-as-in-freedom. For example, with Flash, I can use Flex and FlashDevelop and make a 100% free and open source game, and anyone can download the virtual machine for free and run it. Since you pointed out Flash as a non-supported language, I have to assume I'm missing something.

Second, I don't use Linux, so I don't know whether or not Java code will compile and run without issue there. In fact, AS3 is the only language I'm familiar with that I would expect to run without issue (except possibly framerate) on most any machine.

On the other hand, I know C++ is free and open-source on Linux machines, but I don't know of any graphics and sound libraries that are that will compile and run without issue on both Windows and Linux. (I think there's probably already a list or two of such libraries though.)

As for clarifying the rules, I don't think I can offer much direct help. I don't know enough about these things to help reword that. I suppose the basic issue, for people like me, is what's an open platform? Or at least what are some examples of open platforms? You have mentioned one HTML5/Javascript. If you could mention a few others that would help. Of course, you'd want to make it clear that it's a non-exhaustive list and that non-open libraries are still an issue.

 

  • Log in or register to post comments
bart
joined 14 years 12 hours ago
Tuesday, June 12, 2012 - 01:01
bart's picture

Actually, that was quite helpful. :)

The FSF defines free (as in freedom) software as having these four freedoms:

  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
  • Freedom 2: The freedom to redistribute copies so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.

Note that freedoms 1 and 3 require that you be able to view and modify the source of a program; thus, all free software is open source (although not necessarily vice-versa).

It's true that it's possible to create a game that's free and open source using flex and flashdevelop.  However, the contest makes some additional stipulations that would prevent a program like that from being entered.  Specifically, you have to be able to take the source of the program, compile it, and run it, using nothing but free software.  That is to say, since Flash itself doesn't satisfy the four freedoms above (Adobe hasn't released the source code for Flash, for one thing), the program wouldn't comply with the contest rules, since you'd need to download and install some non-free software (Flash) in order for it to run.

I hope that helps somewhat.  The following is a very brief and non-exhaustive list of languages and libraries you might use in LPC:

  • HTML5 and Javascript, running on Firefox.
  • C/C++, using any combination of the following libraries:  SDL, SFML, OpenGL, OpelAL, Qt, Gtk, and many others.
  • Python, using PyGame
  • Java, running on the OpenJDK.
  • Lua, using Love2d
  • Basing your game on an existing game engine that's already free and open source, like Frogatto.

As I said, the above list isn't even remotely exaustive.  If you don't have access to a GNU/Linux system, yout safest bet might be to go with HTML5+Javascript on Firefox, as that's consistent across the three major platforms.  The other languages are too, but you have to be a bit more careful.

Some off-the-record advice (not speaking as LPC staff here):

If you decide to go with C/C++ and you're running Windows, look into MinGW, which is a Windows version of the GNU C++ compiler, and should be pretty consistent syntax-wise.  Your program will still need to compile and run under GNU/Linux, but there are friendly people in the IRC channel (myself included) who would be willing to help with that if you ask.  Don't wait until the last minute if you're going to do this! :)

Final note:  As I said, this list is incomplete.  Note that if there's some other library that you want to use that's not listed, be sure to ask about it specifically and we'll look into it and get back to you.  If your program requires any proprietary libraries, you won't be eligible to enter the contest, so please ask if you're not sure. :)

Peace,

Bart

 

  • Log in or register to post comments
Anonymous (not verified)
joined 0 sec ago
87.246.186.242
Tuesday, June 12, 2012 - 05:19

What about Android? It's open source but to run without emulator you will need Android phone...

  • Log in or register to post comments
bart
joined 14 years 12 hours ago
Tuesday, June 12, 2012 - 08:59
bart's picture

For the convenience of the judges, your program will need to run on an x86 system.  It's fine if it also runs on other platforms, such as Android, Windows, Mac, etc.

  • Log in or register to post comments
Lafriks
joined 13 years 3 weeks ago
Tuesday, June 12, 2012 - 10:46

So that's no for Android... :) Making it to run native on Android and Linux would mean to make it actually as two different engines... Noone of the judges has access to Android phone? Really wanted to finally get my hands on Android development... just could not make myself to finally start... this contest could be good push :)

  • Log in or register to post comments
bart
joined 14 years 12 hours ago
Tuesday, June 12, 2012 - 12:12
bart's picture

So that's no for Android... :) Making it to run native on Android and Linux would mean to make it actually as two different engines... Noone of the judges has access to Android phone? Really wanted to finally get my hands on Android development... just could not make myself to finally start... this contest could be good push :)

I can't say for sure that none of the judges have access to an android phone, but I can say that not all of them do.

Much as I wish we could support a bunch of different platforms, it's not realistic.  It's more important that we be able to say "if you write your program for x86 GNU/Linux, the judges will be able to run it".  Hence the platform requirement.

It's not about pushing Linux over everything else; it's more about what we can expect all of the judges to reasonably have access to.

 

  • Log in or register to post comments
Anonymous (not verified)
joined 0 sec ago
71.96.230.18
Tuesday, June 12, 2012 - 18:59

That list helps me a lot too. :) Though without an easily accessible Linux box, I'll have to get some help testing stuff. Thanks.

  • Log in or register to post comments
ddressler
joined 13 years 1 month ago
Tuesday, June 12, 2012 - 19:42

Spin up a ubuntu vm in virtualbox. Provided you do not need advanced graphics api access this should work for testing everything but performance.

  • Log in or register to post comments
jasonisop
joined 13 years 1 month ago
Tuesday, June 12, 2012 - 20:06

Or even run ubuntu from a flash drive with out installing it.

  • Log in or register to post comments
Anonymous (not verified)
joined 0 sec ago
69.165.131.134
Wednesday, June 13, 2012 - 13:54

Android programs should run on the Android Development Kit, which runs on Linux.

 

-- hendrik

 

  • Log in or register to post comments
bart
joined 14 years 12 hours ago
Wednesday, June 13, 2012 - 14:07
bart's picture

@hendrik:

I'm not sure as to the free-software-ness of the ADK.  If the ADK is completely free software, and it's possible to set up a working android image for it using only free software, then an android entry would be legal.  That said, if you were to do that, you should be prepared to:

a) provide a working ADK image and fast instructions on how to get your game up and running so we don't have to figure it out ourselves, and

b) be very specific about what all is in your android image so that we can be certain that it's all free software.

Please note that this is in no way a confirmation on the part of the LPC staff that the ADK is free software.  If someone can answer that question definitively (and provide documentation) I'd appreciate it. :)

  • Log in or register to post comments
bart
joined 14 years 12 hours ago
Wednesday, June 13, 2012 - 14:11
bart's picture

Here's a link to the SDK licnese:

http://developer.android.com/sdk/terms.html

Unless I'm looking at the wrong thing, it seems to me that it is definitively not free software.

  • Log in or register to post comments
Lafriks
joined 13 years 3 weeks ago
Thursday, June 14, 2012 - 14:55

There is also a open source android-x86 (http://www.android-x86.org/) project that could be run either using emulator (for example qemu) or using some specific hardware (for example asus eee pc)

  • Log in or register to post comments