Source Code License

 

Why open source RobotBattle?


The primary goal is to help the game progress faster. RobotBattle has always been a hobby for me and I do not have much time to keep the game moving forward. Since RobotBattle is a game for programmers, hopefully some players will also want to be creators of the game.

I also do not believe that there is much inherent value in RobotBattle's source code. If an individual or company set their mind to it, RobotBattle could be cloned in short order. The real value (and fun) of RobotBattle is its unique style of gameplay. My hope it that a group of open source developers can improve and expand this gameplay faster than would be cloners, thereby encouraging people to contribute rather than compete with RobotBattle.

Open source also does not prevent binary copies of the game from being sold. The Linux market is a good example. While there are currently no plans to sell the game, it could happen someday.

 

Which open source license is used?


The source code to RobotBattle is under the MPL open source license. The license agreement should be present in all files that are currently part of the RobotBattle project or that are added in the future. Please note that the comments about MPL below are by Brad and are not authoritative. Read the license itself and this FAQ to get a real understanding of MPL. When you read the FAQ, note that the NPL license is not used by RobotBattle.

MPL is similar to the more common GPL open source license, but has several important differences. MPL allows anyone to download, modify, and use RobotBattle source for their own purposes. MPL further requires that any changes that are made to RobotBattle code and distributed in an executable be made available to anyone with access to that executable. You also can not change the license applied to any RobotBattle code. This is very similar to GPL.

Where MPL differs from GPL is that under MPL you are allowed to combine RobotBattle code with other code that was developer separately. This other code can be proprietary and is not effected by the MPL. This combination of new code and MPL RobotBattle code is called a "Larger Work". The only requirement is that if during the creation of the Larger Work you change MPL RobotBattle code, those changes must be made available. 

Examples

1) You download the code, make changes, build the game, but never share it with anyone else. You are under no obligation to share your changes.

2) You download the code, make changes, build the game, and release it on the web. You must provide at least read-only access to your code as well. Obviously the hope is that people will chose to contributed to RobotBattle itself instead of creating clones, but nothing prevents this.

3) You download the code and build a tournament server using RobotBattle to run the games, but you never change RobotBattle code itself. You are under no obligation to release the code for your tournament server. This is true even if you created your tournament server as a single monolithic executable with your new code and existing RobotBattle code compiled together.

4) Similar to the example above, but you decide to create a modular tournament server that is a separate executable and calls RobotBattle through a defined interface. While creating your tournament server you find a bug in RobotBattle that prevents its interface from working. You fix this bug and release your server. You must share only the bug fix you made to the original RobotBattle code, not your tournament server.

Of course, in examples 3 and 4 above it would be nice if people agreed with the reasoning behind open sourcing RobotBattle and either contributed to RobotBattle directly or open sourced their work separately. This decision is not forced on anyone, however. If you feel it is to your advantage to keep your code proprietary, then you are able to do so.

 

Why MPL?


Since I am the original author of RobotBattle and since I am still the copyright holder, I decided to use the MPL. These are some of the reasons:

1) Windows versions of RobotBattle can not use GPL because they are built using code that can not be redistributed. Examples include MFC, Microsoft's licensed STL, and possibly some rendering code in the future. MPL allows RobotBattle to be built using this code without requiring that it be made publicly available.

2) Other less restrictive licenses such as the BSD license would provide almost no protection to the work people dedicates to RobotBattle. If someone uses RobotBattle code as the starting point for another project, RobotBattle should get something in return. MPL seems to provide a fair amount of compensation. Changes and improvements made to MPL RobotBattle code must be shared. 

3) MPL fits my personality better than other licenses. I believe proprietary software can be a valid business model and I do not buy into some of ideology behind open source. I believe each approach has its place. MPL seems to straddle this middle ground fairly well.

 

What about future versions of RobotBattle?


All Windows versions based on 1.3 and 1.4 will be under MPL. Jacques Chester, who has been leading the Vanilla effort, now also plans to release Vanilla under the MPL for consistency.

 


RBDev Home RobotBattle Development · Copyright © 2004 Bradley Schick · All rights reserved.