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.
I'd prefer not to get into making an official list of supported languages, for three reasons:
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:
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.
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.
Actually, that was quite helpful. :)
The FSF defines free (as in freedom) software as having these four freedoms:
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:
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
What about Android? It's open source but to run without emulator you will need Android phone...
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.
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 :)
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.
That list helps me a lot too. :) Though without an easily accessible Linux box, I'll have to get some help testing stuff. Thanks.
Spin up a ubuntu vm in virtualbox. Provided you do not need advanced graphics api access this should work for testing everything but performance.
Or even run ubuntu from a flash drive with out installing it.
Android programs should run on the Android Development Kit, which runs on Linux.
-- hendrik
@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. :)
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.
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)