That I know of…
For those who don't know, Freegemas was my first libgdx project, which I made in a couple of weeks to learn how to use the framework. Actually, I"m not to take the credit as it's a silly Java/libgdx port of a game made by an university mate, José Tomás Tocino. Freegemas was originally written in C++ using Gosu and both versions were open sourced under the GPL license.
Both are non profit games and are clearly inspired in the successful Bejeweled.
Freegemas Clone wars
Last week I got an email from an Android developer reporting that Freegemas libgdx had been ripped by a different developer called Barrilete Cósmico. The allegedly offending app was Candy Time Crush, whose name, absent doubt, comes after the popular Facebook game.
Indeed, this Candy thing was a 1:1 Freegemas clone only changing two elements, he changed the textures and added a shitload of aggressive adverts. Just look at the required permissions to get the extent of it.
- Full network access – Fair enough for basic ads.
- Phone calls – Why? The original doesn't need it.
- Storage – Legit to read assets from memory.
- Install shortcuts without user intervention – I"m sorry, WHAT?
I proceeded to download this Freegemas mutation to make absolutely sure the app had profitability as main purpose and oh boy it did! Shit started to pop up all over the place deeming the game unplayable. I closed it immediately only to see a few new shortcuts linking to dubious products on my dashboard. Enough is enough.
But why not let other users give their opinions? You could argue I"m quite biased and since they come in all sorts of flavors, here they are.
From the self explanatory and verbose.
Emma Cheneler: It crashed my mob had to take battery out to even switch mob off. Bad bad bad.
Helen Shaw: crashed. rebooted and messed up my phone all before i got to play the game…. DOn't DOWNLOAD…..
To the plain and simple.
Anthony Hernandez: Hate it!!.
Ironically, the joke's on my because Candy Time Crush is a clone of my our own game. I"m perfectly aware of the limitations and scope of Freegemas. It was made in under 2 weeks after work for $deity's sake! However, our pet project is free, has no ads and its code has helped other people learn about libgdx since it was featured in the framework's documentation.
Oh, and it doesn't make your phone crash.
When I checked Barrilete Cósmico's (license offender) Google Play panel I was completely astonished. Candy Time Crush was not the only Freegemas clone, there were a total of four of them. It's ridiculous! My surprise spiked even more when I realised the download count was over 500K in aggregate, and all those apps featured the same kind of ads. What the hell?
Of the GPL license
I wanted to clarify some of the details of GPL to illustrate why this is a shameless trespass of the license. The relevant portion is that you can copy, modify and redistribute the software as long as you make the new version available under a compatible license. And that's the essence of it.
Taking someone else's GPL code and redistributing it with minor changes for profit without crediting the original authors could easily be flagged as unethical. Nevertheless, that's legally irrelevant. What matters is that it's perfectly legal when the developer makes the code open source the code as well.
That's fine with me. Hell! It was us who went for this license in the first place.
Unsurprisingly, this guy did no such thing.
After discussing it with the Freegemas original author we decided to file a copyright infringement report and send it to Google with little hope they"d answer. I also emailed the author explaining the situation and listing his options.
- Remove all the clones from Google Play.
- Make their source code available under GPL.
- Get to a commercial agreement with us to split advertisement revenue.
We knew the latter wasn't going to happen and we wouldn't be very happy to be a part of all that aggressive advertising anyway. Personally, I don't think Freegemas should have those pretensions, it's too simple of a game, a two week tiny hack project with educational purposes.
He got back to me in roughly ten minutes saying he was sorry and that he was unaware of the illegality of his actions and that he took our game just to learn the ads process. He said he had ceased distribution of all four games. Well, that was fast.
On a side note, no one makes four identical games "just to learn".
I was surprised to see Google's response to the complaint just a couple of days later. Obviously the games had been removed so the links weren't working anymore. I said everything was fine now and that the process didn't need to carry on.
End of story.
Well, not really.
Today I realised the developer changed his name to CCM and Candy Time Crush is still listed among his published applications. However, the description mentions Freegemas as base for this game and adds the following note.
Licence GNU GPLv3, source code available on demand.
Apparently that makes it comply with GPL v3 even though it sounds quite cheeky. Well nothing left to do here.
Morale of the story
It would be sad to think of the morale to be that working on open source projects is a bad thing or a waste of time. There's always going to be people who try to take credit for the work of others, regardless of the context.
I love open source because it helps me broaden and enhance my skill set, it's good practice. Working in community is an enriching experience and most of the time I don't have monetisation pretensions at all. Open source and commercial software are two perfectly compatible concepts anyway. Take a look at the libgdx community, there are many developers who have paid sucessful software in the market whilst contributing back all the time. Nathan and Spine are a great example with his Scene2D UI system.
The conclusion here would be that there's a big need to raise awareness towards what software licenses mean, let alone the necessity of ethics in this field. On our end, we need to make sure the implications of the license our code is published under are perfectly clear and in a visible place.
Thanks to the fellow developer who reported this.