Categories
Uncategorized

GPL just means your code probably won’t be used

I ran into a guy recently who was well qualified for a contract I was offering and even already had code to do it. The only thing preventing me from hiring him was that his code was under the GPL. When asked if he would do a dual license, he flatly refused at any price. […]

I ran into a guy recently who was well qualified for a contract I was offering and even already had code to do it. The only thing preventing me from hiring him was that his code was under the GPL. When asked if he would do a dual license, he flatly refused at any price.

I appreciate what the GPL stands for, which is that source code should be available. But as a practical matter the best code generally comes from people who are paid, and businesses able to pay for code tend to want to maximize profits on what they have done. And one possible tool to maximize profit is to not have the software open-source.

RakNet is open-source because it helps me make money. More users, fewer support costs, contributions from users, and market appeal count among the benefits of being open-source. I’m not worried about theft because the businesses capable of paying license fees have so much to lose were they to violate copyright that it doesn’t make financial sense for them to not pay.

On the other hand, if I were to make a commercial game, open source means I’d be unable to discourage piracy. People would release for free games based on my source which would compete with my own sales. While it’s relatively easy to enforce copyright against major companies, that’s not true against the entire internet.

In the game industry you’re basically forbidden from using any GPL code. From time to time this means I haven’t used code I otherwise would. It’s never been the case, nor do I expect it to be, that because I used a GPL component I was forced to release my source where I wouldn’t have otherwise. It just means I won’t use the GPL code to begin with.

Leave a Reply

Your email address will not be published. Required fields are marked *