So I am considering side games to add my main games. Mini games I guess they are called. I thought it might be fun to have random chessboards in game you can actually play. I wanted to actually have a decent chess engine behind the game. Off the bat I found a GPL one. I think it is designed to be communicated externally. So what does that mean for using it in my game? If I communicate to an external process is this violating GPL? I have no intention of making my game open source. Well it seems this use case is very nuanced:

The consensus on a lot of these discussions is the scope of the use of the program. Are you bundling for convenience or bundling for intrinsic utility? This is fascinating because using a compiler on a Windows platform could be a possibly violation. That is a proprietary program calling a GPL one. This is actually handled in the GPL as far as I know. So, if I use a GPL engine as a mini game is that the same as a full blown chess game? What if I support 10 different engines in a full blown chess game?

Now to play devil's advocate even further. Are proprietary phone apps that communicate to GPL software that serve data intrinsically linked? The app will not function without the server or computer os the server runs on. A lot of the web tech is largely GPL or has large amount of GPL programs. Should the web code be under GPL? Should the phone app be under GPL? This sounds ridiculous to some degree. But is that the same as bundling a GPL app and communicating to it from the program via network or command line? The phone app depends upon this software.

Now to protect myself I will find a decent chess engine that is either LGPL or something more permissive. I just don't want the hassle. I might make the chess engine use a parameter in case someone else might want a better engine they want to add though. At that point it is the user adding it. Maybe the fact that it would not be the only game in town is a factor as well.

I am also considering bundling python as a whole to get access to better AI tools (python is pretty small compared to game assets). It seems everything is python when it comes to AI. The licensing there is much better though. I would love to play with NLP for commanding npcs.

I am not discussing linking at all, btw.

  • 1
    @jestdotty I will do attributions for anything that helped me. Something nice in the credits. I think most people get a kick out of seeing their stuff used somewhere else.

    Edit: for instance, I was making a wrapper to control a dos program years ago. It was for mechwarrior mercenaries. I got bored and moved on. But I had posted stuff about it. Somebody from Brazil contacted me and asked about it. So I sent them all the code gratis with no strings.
  • 1
    The chess engine case falls under the plugin rule, no GPL issue here. You simply use a UCI engine as separate binary, communicate via the UCI protocol on the engine's stdin/stdout, so no shared data structures, and the engine can even be changed easily for another UCI engine.
  • 1
    @Fast-Nop yeah, I saw some references to that. Thanks!
Add Comment