Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Launched my iOS game as Open Source (github.com/seanhess)
83 points by embwbam on Oct 1, 2013 | hide | past | favorite | 55 comments


"The final work shall not compete directly with Wizard War, in any mobile app store or on the web." - This line is too restrictive and keeps your custom license from being an open source license. The point of free and open source software is it protects your freedom to modify and distribute the software for any purpose.

Imagine if Microsoft Word distributed itself as "open source", with the exception that one can't use that source to compete with Word. You wouldn't really be able to do much with it, would you? Even simply distributing it to your friends would technically be "competing" with Word.


We are mainly distributing the source code so people can learn from it, but I would be happy if they used the code or even the artwork to make a substantially different game. I just don't want someone to just slap a different name on it and out-market us or something.

How could I word the license to give people more leeway while still preserving that intention?


"Open source" has a very well-defined, widely accepted meaning. Part of this is that an open source license cannot restrict the purpose for which the code is used. This isn't making a value judgement on such licenses: it's just defining "open source".

If you actually want your code to be open source, you should use one of the common licenses like the GPL or BSD license; this makes life easier both for you and people who would use your code. Since these licenses are common, people know exactly how they work and are willing to trust them. A custom license like yours seems much riskier to use: for example, how is "competes with" defined?

You can license the code and the artistic assets separately. This is what Id does with its old Quake engines. This way the code is still open source in the strictest sense of the word, but somebody couldn't just resell your game as-is.

You can license the assets under one of the Creative Commons licenses. These have well-defined and well-understood terms that you can mix and match to find something that suits your needs.


This comment needs more attention.

Assets licensed with CC (use the one that requires permission)

Code licensed with real Open Source (example: MIT license)


Just out of curiosity -- can you preserve that intention?

Nothing really stops me from making my own clone of your game, changing only the assets to be my own, other than it's prohibitively time-consuming (i.e. expensive) for me to do so.

If you release the code -- with any license on it at all -- and someone takes it, uses it, creates a similar game, and then changes the code in a sufficiently significant way to be able to claim that it's not "yours" anymore ... what recourse would you have?


Making a legal argument that a game clone is not a derived work when the source code was literally derived from the original via development over time is a pretty sketchy argument. It's not impossible -- that's sort of what the first open source BSD versions were (AT&T code was replaced piecewise) -- but I wouldn't bet on it.

Cloning of interface and operation (but not artwork) is widely held to be legal, but in general all successful clones are clean room clones.


Affero GPL might be ideal for you. It means that both network and local users of an app get the source code. So, maybe someone out-markets you, but the users still must get the source. But you won't necessarily get attribution if that's what you're after (CC is good for that).


Why not keep the code open and keep the assets on a normal copyright basis? That's what iD/Bungie do (did).


I think he or she wants you to be able to add features and improve the game but not use it to make their own game.


Yes, and a license that codifies that intent isn't "open source". Open Source Software (as defined by the Open Source Initiative, the ones who came up with the term), was actually a re-branding of the term "Free Software". Open source software, as with free software, protects your freedoms as the owner of that software to modify, distribute, and study the code, with no conditions on any of those freedoms. What the author is doing is certainly commendable, and it would benefit us all if they took the next step and made their software fully open source.


That's only one intent of open source, this whole GPL vs MIT/Apache etc license has been raging for as long as the Open Source era has been upon us.


The GPL and MIT licenses both protect your freedoms to modify and distribute the software for any purpose. The "raging debate" is about whether or not derivative software should also be required to protect your freedom.


Free as in speech not as in beer.


So if they're not even allowed to use the words "open source", what is in your opinion the correct term for this?


Microsoft sometimes licenses things like this and it's commonly referred to as "shared source."


GPL is open source(shitty open source, but open source nonetheless), yet you can't use that code commercially.

Edit for downvotes: Perhaps I should have been more clear. As this is iOS code, you cannot in fact use it commercially. GPL code is not allowed on the App Store. Period.


You'd have to explain that to Richard Stallman, who wrote the GPL and also sold Emacs and other free[1] software commercially during the 80s and 90s.

[1]: free software and open source software are accepted by the Free Software Foundation and the Open Source Initiative as being pretty much the same thing (ie 99% of OSI-approved open source licenses are also FSF-approved, and vice versa).


GPL may make certain commercial models harder, but there's no "can't use" prohibition in the license.

The condition on all potential uses (commercial and non-commercial) is the same: your derivative source code must remain available under the same terms.


A quarter century after this thing was published and we still read stuff like this on the internet?


You can use GPL code commercially (and plenty of companies do), what you can't do is relicense it under a proprietary license.


We will eventually monitize this app through in app purchases, but decided to launch it open source. I'm not sure we got the license right, but it seems like we can provide the source as an example to the community without losing too much.

Obviously it would be cool if other people got involved in keeping the game content fresh, but that might not be realistic.

I think it would be cool if more commercial applications were open source for learning purposes, but I know that might not be feasible for most products.


It's probably more feasible on iOS than most platforms, since it forbids the users' freedom to run their own software. Thus, it is unlikely people will compile this themselves for distribution, since distribution would be so useless.


[deleted]


I was planning on porting the engine to Javascript at some point, but maybe Lua would be better. The cool thing about JS is I could shuttle game logic between the server and the client easily.


For those of you that have tried the game: any feedback? Would you pay for an extended single player game, unlockable wizards with a custom special spell, or some kind of supporter program that gives you early access to a forum and betas?


This game resembles 'Runic Rumble',[1] which uses the same concept but requires the user to draw different shapes rather than connect elements in a fixed shape.

The first thing I did after seeing this thread and looking at the repository was to download the game from the iOS App Store (using an iPhone 5). I would have paid $1 to $4 for the app at that point in time.

I 'mastered' the levels up to but not including 'Belgarath the Bold' in the space of about 30-40 minutes, and seem to have unlocked all the spells except for superman, hot dog and teddy bear. That was entertaining - and repetitive. Challenges remain ahead of me in the form of Belgarath and Fionnghal, but unless some exciting new aspect to the gameplay emerges during those challenges, I don't think I would pay for an extension to the single player game. If I'd watched someone else play the game instead of playing it myself, I don't think I would now spend the $1 to $4 I would have otherwise been willing to spend.

My disinterest in paying for an extension to the single player game means I don't have any reason to consider paying for unlockable wizards, custom spells, or forums and betas.

OK - I wrote the above before trying the multiplayer game. Having now tried the multiplayer game, I found that to be much more fun, and much less predictable. Would I consider paying something now? Maybe. I'd be willing to consider one or two small in-app purchases that add to the gameplay in some non-trivial way without unbalancing the game between those who've purchased and those who haven't. I don't think I'd ever have any interest in forums and betas.

The main gripe I have with the game is not something you can easily solve: my finger gets sore after lots of frantic swiping on the glass. (It was even worse with Runic Rumble.)

Good luck!

[1]: https://itunes.apple.com/us/app/runic-rumble/id581952563

Edit: Just discovered 'superman'. Hilarious!


In the future, you should avoid committing your Parse application id and client key publicly... You don't want other dev's piggybacking on your account quota, though it's not really a security risk by itself. Considering it's already there, make sure you've implemented Class-level security to protect your data. https://www.parse.com/docs/data#security-classes


You're only looking at the dev key. I have a separate "secret" branch with the production keys for everything. It hits a different firebase too.


The one feature I would like is the ability to stat over when drawing a spell. I would probably play for an extended single player


Yea, that last sentence says it all, for learning there's nothing better than a fully functional application or game in this case. Thank you for doing this!


Last I looked (a few years ago) ios forbid open source apps on the store, has that changed?


I don't know about open source in general, but GPL'd software is in conflict with the Apple license. If you yourself are the copyright holder, then I (not being a lawyer) would imagine you would be free to license your software under both the GPL and Apple's iOS license, but you couldn't take someone else's GPL'd software and publish it on iOS, without their permission.

Which is one of the points of the GPL, so no big surprise.


I went with MIT + a single condition saying no final work could compete directly with my app. I'm not very experienced with open source licensing. Any recommendations?


I don't think that would actually count as open source, at least according to http://opensource.org/osd


I'd say MIT for the code, and license the graphics, sound, etc, assets under a separate noncommercial license. This'll let people peek under the hood, learn from it, and use it in their own app with fewer legal questions as far as what's allowed and disallowed.


That's shared source, not open source. Anyway, I usually use BSD or WTFPL


What difference does it make practically in this case? Should I switch it?


MIT vs BSD makes no practical difference. However, the license you have now is not actually MIT, but MIT+your extra restriction. That makes it not open source and a liability for anyone that would use it, since your extra restriction could be interpreted in any number of ways.

One way to keep the option of legal offense against clones is with differently-licensed assets. MIT your code, but choose one of the non-commercial or share-alike Creative Commons licenses. There are lots of them and you're bound to find one that fits your purposes.


You must have not been looking too hard as that was never true.

Apple has no problem with Open Source. It is just that a few Open Source Licenses have a problem with Apple. A small but important difference. Apple couldn't care less what open source license you use. But some licenses like the GPL forbid you from distributing your work in a place like the appstore.


The license give users the right to copy, and to do modification to GPL software. It also says that users should be allowed to install said modified software on devices which the users has full ownership over.

Apple has the opinion that they should still retain control after a device in sold, giving them practical ownership after sale. This method of corrupting property laws for leverage over other peoples property goes directly against what the author of a GPL software wants, and is such written into license.

Apple with their appstore has thus a fundamental disagreement with the wishes of the author to GPLv3 licensed software. The author can give apple permission on this issue, allowing distribution on the appstore (if Apple accepted it), but that's a copyright concept. Authors can always give permission to someone else about their copyrighted work, but so long the author believes in property laws and peoples right to be in control of their bought devices, its unlikely they will give Apple that extra permission.


Hmm. I haven't heard anything about that. How would they even know?


It's specifically to do with GPL licensed things.

The GPL (v2 anyway, unsure about the others), forbid placing any restrictions on the rights to modify and use the software.

As running modified applications on iOS requires a Developer License from Apple for a fee (and associated additional Terms), some believe that the GPL is fundamentally incompatible with the Apple App Store.

Any license that imposes a similar condition (other GPL variations etc) are also likely to be incompatible with the App Store.

Disclaimer: IANAL.


Not quite. The main problem with GPL in the AppStore is that the GPL forbid additional terms and conditions to be added to the license, but Apple require that apps are distributed under their standard EULA or at least one that follows at minimum these terms and conditions, http://www.apple.com/legal/internet-services/itunes/appstore...


Correct, is that not what I said? >forbid placing any restrictions on the rights to modify and use the software.


A while ago there was controversy over the VLC for iOS app and it was taken down due to licensing concerns


The VLC team undertook a license conversion, turning "libVLC and most modules" LGPL. Consequently, VLC for iOS returned on Sep 9 2013.

http://www.videolan.org/vlc/releases/2.1.0.html


There is a player roaming the multiplayer arena named "Indefeatable" (sic) who appears to be able to cast the heal spell without any delay.

Perhaps an unintended consequence of allowing everyone to compile their own version of a multiplayer game.

(Defeating him/her was satisfying.)


This is great and I hope more app developers follow suit!


I don't see the problem here. The way I understand open source is that the source is available and can be distributed forward.

I think it's bit troubling to define Open Source as "Free" software as defined by GPL. That's very misleading as it is very far from free since you are not free to distribute any parts of your software with any other license.

GPL is like legal virus.

Thumbs up for the OP. Good, altruistic effort.


So sad for you that one must follow the license. I guess it would be more "free" if people where allowed to ignore copyright all out. Music, and music software particularly.

Since people try to say that I live in a free country, I guess I should also be allowed kill anyone, torture, and do anything I would like to. How dare they have laws and at the same time say that I am free. Its so misleading. Truly troubling how they define it as "Free".

I guess in your world, BSD is also a virus, demanding that all advertising materials must include the acknowledgement that: This product includes software developed by the <organization>.


Cool project. Thank you!

BTW, I create srcmap database for this project @

http://www.srcmap.org/s/sl.htm#c=P&d=/proj_src/wizardwar/&p=...

Let's see how many users will hit the server in next couple of day or so. (finger crossing...)


Thanks for giving the source code to the community!

For those that want to test the game but don't want to set it up in xcode, i compiled the code and uploaded to app.io: https://app.io/qj4Ofv


I love this idea. You can still get to make money and the rest of us get to benefit and contribute. I like this particularly for games, where the content can not be as easily duplicated as say a business app. Creativity and all that.


This is a great idea especially if you can monetize it successfully. I would buy it just go support it.


I am just learning Objective C as well, and this is very helpful! Thanks!


as someone learning iOS development - thank you




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: