Free Software FAQ
What is "Free Software?"
Free software is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech”, not as in “free beer”.
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software.
More precisely, it refers to four kinds of freedom, for the users of the software:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3).
Access to the source code is a precondition for this.
There is another widely used word called "open source" which stands for the Open Source movement and it differs a little from the Free Software Movement. There is the Open Source Definition published by the Open Source Institute.
Ryzom source code qualifies as both "open source" and "free software" but the Ryzom development community prefers the phrase Free Software.
Some game companies are releasing some source code of their software components. What makes this different or in any way notable?
Ryzom is one of, if not the first active commercial games to be fully free software. Most of these games have only release their clients as free software and not their servers or tools. And some have yet to follow through at all. Ryzom is making a bold move in releasing all of its source code (client, server, tools) and all of its media assets.
How will "free software" benefit Ryzom?
By releasing the entire Ryzom platform and encouraging the adoption of the platform by other projects and fostering a healthy community we expect to see the stability and features of Ryzom increase and grow as time moves on. By having more eyes on the source code and being more transparent in the development process there will be fewer bugs and security flaws. By having a larger community base there will be more individuals scratching an itch, to turn a phrase, the community and Ryzom game players will begin seeing features and functionality that a traditional game company may not have the time or desire to implement such as native GNU/Linux or Mac OS X support.
Will there be security issues because of the source code being available?
Ryzom doesn't take the security concerns lightly and have made preparations to ensure the quality of the Ryzom game remains high and that any security issues that do arise have limited impact on the game and can be quickly addressed. In the long run this move will help greatly improve the quality of the Ryzom code as well as eliminate security issues due to the fact that a much larger number of individuals will be reviewing the code, changes to the code and will have the ability to alert the Ryzom development community of potential threats. As with many other open-source projects people are free to submit patches that resolve these threats themselves.
How do you prevent malicious developers from finding and exploiting flaws?
This is a difficult question to answer because it is akin to asking how to you prevent a thief from stealing your car or a vandal from spray-painting your house. Even closed-source software, operating under the guise of security through obscurity cannot promise that malicious developers will not find and exploit flaws. What free software does bring is a multitude more people to criticize changes to the code and review potential flaws. In a proprietary software environment the only people who can find and resolve flaws proactively are the few individuals employed by the company and that assumes they have time or are assigned to do this. With free software any user of the software, community developer or otherwise interested party may review and submit patches. We like to call this security through visibility.
How are you going to prevent developers from introducing malicious code into the game?
Ryzom will maintain a fairly small group of individuals with write access to the master repository and the development community will have a certain level of trust in these individuals which will be earned through their merit and the quality of their code. In addition to being able to trust the people who have write access to the source code all of the source code will be publicly available for checkout as well as browsing on the web which will provide ample opportunity for both Ryzom developers and community members to peer review changes.
Won't someone be able to create a hacked client and cause trouble in Ryzom games?
First and foremost the Ryzom Terms of Service and End-User License Agreement prohibit connections to the official Ryzom servers with modified clients. The goal is to be sure that every player has a consistent and positive experience. There may be instances where people attempt to use hacked clients to cause troubles with the game. Rest assured that Ryzom's centralized nature helps to mitigate the impact of these clients on the rest of the population and we will react as quickly as possible to flaws as they arise. In addition we will provide test servers for legitimate testing of modified clients for future development efforts. Access to these servers will be free (gratis) for Ryzom development.
What will you be releasing, and how will it be licensed?
Ryzom is released in its entirety - all of the framework (NeL, NeLNS), game client, tools, utilities and game servers (services) is released. In addition to all of the source code Ryzom has also released its entire library of 3D assets such as high-quality textures, 3D models, animations, particle systems and more. All of the source code will be licensed under GNU AGPLv3 and all of the media assets will be licensed under Creative Commons CC-BY-SA.
Okay, so what are you not releasing?
Ryzom has cleaned the source code of internal documentation, personal information and passwords. The audio assets will also not be released at this time as Ryzom has not determined the copyright nature of those assets. We are also not releasing the internal Ryzom level design files so that we do not harm the integrity of the game and story line.
Why did you choose the GNU AGPL instead of other licenses?
Ryzom chose the GNU AGPL license because it is the only license that closes the so-called ASP loophole. In other licenses, projects are not required to share code that is not distributed. Closing this loophole means that projects that use and modify Ryzom source code will be required to share those improvements with others. This means that we're ensuring Ryzom remains fully free in all of its variations.
Why did you choose the Creative Commons CC-BY-SA instead of other licenses?
Ryzom chose to release the the media assets under the Creative Commons BY-SA license with three goals in mind: providing high quality professional assets to free software projects, allowing the fostering of derivative works and the protection of its commercial interests. By including the Share Alike clause we ensure that all derivative works remain on a compatible free license while maintaining Ryzom's ability to market and ensure fair competition with its commercial game effort by reducing the number of clone games available that would dilute and harm the community.
What is the development plan?
At the present time the source code for the game Ryzom is made to run the game. However the vast majority of the code is generic and can be easily reused to create new MMORPGs. In the early days of Ryzom and NeL development this was exactly the intention so Ryzom already has the history and the essential ground work to make this a reality. One of our first goals will be to refactor as much source code as possible into a more generic and reusable structure. This is not to say that this is our only goal as there will be other significant improvement efforts on the whole game and framework such as porting to additional operating systems or improvements to the 3D libraries. You can see a brief version Road Map on the development portal which lists our high level miletones and the issues necessary to build that release.
How will new features be decided on?
Each time the Ryzom development community (affectionately referred to as the Yubo Herders) and begin planning the Road Map for the next version release all of the issues and feature requests pending a version assignment will be assessed and assigned a version. A variety of factors will go into whether a feature is scheduled including its complexity, the desire of the change in the community and the available resources to create it.
What features will never be accepted?
It is important to note that Ryzom project features are not the same as the Ryzom game features. Feature requests such as "add a new mission" and "implement new lands" are not relevant to the Ryzom free software project and should be directed to Ryzom game feature requests. Feature requests for things such as porting to a new operating system, enhancing the 3D engine, etc are relevant to the free software project and will be considered for implementation.
Can I ask for a feature to be removed?
You can always request the modification of a feature or the removal of a feature through submission of an new issue but keep in mind the difference between asking for changes to the game and changes to the project.
What is a Yubo Herder?
A Yubo Herder is a nickname for an an active member of the Ryzom development community that has been granted privileged access such as the ability to push to the master repository. Yubo Herders are inducted quarterly by the Ryzom developers and other Yubo Herders based upon merit. For those who wonder what the heck a Yubo is check this video.
Will contributing more to the Ryzom project mean I can work the Ryzom game?
The Ryzom project and the Ryzom game are two separate development efforts. If you wish to work on the Ryzom game there is a volunteer developer team who actively work on creating new content, missions and so on. Your efforts and contributions on the Ryzom project play an important role in whether or not you will be asked to join the Ryzom game's volunteer development team.