Insurgent Games Makes All Games Free, Releases Everything as Open Source
insurgentgames.com
insurgentgames.com
There's still risk to your bottom line by open-sourcing: a competitor could use your code/ideas to create products that outsell yours. But what you don't have to worry about is piracy: the number of users with jailbroken devices or a dev certificate are a small subset of your user base.
On the positive side, you get the benefit of customer engagement: people helping you bug-fix, creating level editors, community content, etc. Companies can also sometimes find and hire top-tier talent this way.
At any rate, major kudos to Insurgent for doing this. I'm actually a little disappointed that all their games are free; I think at the very least, they should pick their best game and charge 99c, or do split Lite/Full versions.
All the repositories are GPL'd, so I'm assuming they meant build in a purely educational setting.
It's a nice move, but why not go all the way and let developers leverage your code in their proprietary code? Insurgent Games only open sourced once they gave up, so they clearly know that open sourcing all your code is not a good idea when you're selling games.
To be a bit pedantic, all you can really say is that they didn't know whether open sourcing your code is a good idea when you're selling games. I could imagine myself being convinced that having open sourced a game makes you no more or less likely to lose market share to copycats than keeping it closed. I don't know that anyone's tried it, nor that there's a particularly good experiment one could do to test that.
License
-------
This game is licensed under the GNU General Public License (see gpl.txt). As the copyright owner, I hereby give anyone permission to re-license my GPL code under a non-GPL license for the purpose of distributing it in the iOS App Store or the Android Market.Um, how about in a hobbyist setting?
Only a small subset of the people who write games are going to make money doing so. Many of them know this and do it just because they enjoy it. (See: Almost any mod community.)
// getters, because obj-c is weird
- (int) getTileTypeX:(int)x andY:(int)y {
Still great on them for being open.Please be aware of that.
Sometimes bad code is fine when you are prototyping something or getting something to just work. Sometimes people have knowledge gaps. Put your code up or shut up.
It's great that they post code - it's just that newcomers might look at it, think "oh hey this might look like an OK way to do XYZ" - and then be surprised later when new iOS versions or whatever break because of shortcuts taken earlier.
A gentle reminder that "this is not necessarily the proper way to do it" is appropriate in this context, I think.
(I'm sure issues like these are common for many studios' games)
"This allows aspiring game developers to learn and build their own games from the code."
I had a look at the source code and what I found were mistakes that are made by absolute beginners of Objective-C. I am not talking about things like spaghetti code or bad variable names. I am talking about real WTFs here.
Everyone can put up code on Github but then you have to live with the fact that people are pointing out flaws - especially if you encourage other people to learn from the code you put up.
- the code does not comply to naming conventions – the solution in obvious: follow the naming guidelines.
- the code calls -dealloc directly – the solution: don't do this. Never ever.
If someone wants to know more details feel free to say so.
Still, it hopefully won't be an issue here, and this is still a really awesome thing to do.
This works even if your code is GPL. Even though the terms Apple imposes on those who obtain software from the App Store are against the GPL, that doesn't matter in this case, because Apple isn't relying on GPL for permission to distribute. They are relying on the license you give them as part of submitting the app.
In other words, when you put GPL code THAT YOU OWN on the App Store, you are actually dual licensing it--GPL for the world, and a special license for Apple.
The problem arises when you do NOT own all the code in your app. Then you need to make sure that the owners of the code that isn't yours give Apple permission to make and distribute copies of their code.
This is what brought down VLC. The people that made the app owned some of the code, but not all of it. They were only able to dual license the code that they owned. One of the owners of some of that other code was not willing to dual license it. He was only willing to distribute under GPL.
As far as I know, Apple presumes that the submitter of an app has all the licensing details worked out. They only pull an app if someone with standing complains.
Putting that all together for the Insurgent Games code:
1. Their repositories include library code that they do not own. I looked at a few of these, and they seemed to be under permissive licenses, so they should be no problem if you wish to use them in a game.
2. The Insurgent Games code that they own is under GPL. Like any other code that you don't own, if you use it in your app and try to put it on the App Store, you need to arrange for a license that allows Apple to distribute.
Presumably Insurgent Games does not have a philosophical objection to the App Store, so if you just went ahead and used their code in your game there's probably a decent chance they would not object. However, it would be best to clarify this with them.
If they do intend to allow people to use their code in apps on the App Store it would have been better for them to use GPL with an exception for this rather than straight GPL. If they do NOT want to allow this they should add a note in the README saying so.
3. Keep the above in mind if you build a game using some of the Insurgent Games code, but bring in outside GPL code. You'll need to make sure the owner of that outside code is OK with App Store distribution if you are going to distribute your app that way.
This game is licensed under the GNU General Public License (see gpl.txt). As the copyright owner, I hereby give anyone permission to re-license my GPL code under a non-GPL license for the purpose of distributing it in the iOS App Store or the Android Market.
So people are welcome to fork my project and still publish in the App Store without even having to contact me.
Would you be willing to write up a retrospective? You guys have made quite a few games, so hearing your experiences in development and what worked/didn't from the business side would be interesting.
Anyway, thanks for sharing.
I too would like to know your experiences as far as the business side is concerned.
So I just me giving my permission before anyone has to ask, but only for the purpose of App Store distribution. They're not allowed to re-license my code as proprietary for any other purpose.
It would be interesting to repackage these games with better eye-candy and compare sales figures to Insurgent's, if: - Insurgent's sales figures were public - one could account for the effects of more devices sold since 2009/much greater competition since 2009.
* * * *
In all seriousness, I wish more defunct software companies would do this. Or better yet, I wish thriving companies would do this with their old programs, like ID Software and how they've released the source to Doom and Quake.
Again, unit testing on mobile platforms is not as easy as doing it in ROR or Javascript nowadays, but there are still frameworks that simplify it tremendously, particularly those from Pivotal Labs.
> Insurgent Games was founded in 2009
> For a couple of years they happily made iPhone and Android games
So that brings us to 2011.
> Now, several years later
Several is at least 3, so that brings us to 2014.
edit: interesting...this went from +3 to -1. This doesn't seem like the kind of question that would provoke that much revulsion in anyone.