I have started a community developed video game based off the Eclipse Phase cc-by-nc-sa license. The game is designed to be completely community driven from the start so theres not much decided about it yet. The project is currently named Cybernetic Cephalopod or CyberSquid for short. This is just an alpha code name that will be changed when theres more decided on the story.
CyberSquid is being community devolved and every one is welcome to contribute. In fact, it will only happen if people do so. Currently there are no real rules for submissions. Generally the person who provides the material has the greatest control over the nature of that material. If there are disputes they will be handled democratically, according to the games Constitution. Community development tools are being used to make sure that mistakes can be easily fixed, so donāt worry about it just to it! For more information on how to contribute see here or read below.
Pure information, such as story, map sketches, and the web pages are hosted on WikiDot. This allows everyone to easily modify the ideas held within. To work on pure information create an account on WikiDot. Then click āedit this pageā. This is something that any one can very easily do, so just give it a go. Specifically the Game Design Document can be edited here.
Art and code are hosted on OurProject using Subversion. It will require that you install a Subversion client, probably TortoiseSvn. More information on how to do this can be found here.
Theres not much of a game yet, but if you want you can download the alpha. You will have to use Subversion and UpBge, the same way you contribute art and code. If all you want to do is download, then you dont need an account. More information can be found here.
Basically if you want to help you should create an account on WikiDot, another one on OurProject, then join the project on the project page. Remember, this will only happen when people like you actually contribute!
Iām not an expert on this subject so my information is only as good as the blogs Iāv read about it. From what I can tell, Git is a distributed system. There are no masters, trunks, or branches. Every copy is its own master, and can be merged with every other copy. No one uses it this way tho. Instead they use a centralized server and create masters, trunks and branches sort of artificially. Subversion is a centralized system where users only have the most recent copy on there computer. You canāt merge the copies, instead every one merges back to the server. Subversion has trunks and branches, while Git has LFS. Its possible to use Git like its Subversion and possible to use Subversion the same way Git is used. The difference seems to be mostly psychological.
The main advantage of Git seems to be that there are some Value Added Servers with additional code placed on top of Git. Mainly GitHub and GitLab. GitHub has a one gb storage limit. If you do any revision control (backups) of art, then this will not be sufficient. GitLab provides 10gb witch might be enough, but they donāt allow community art project on there servers. SourceForge is probably usable but some of the wording of there terms of service concern me. I would be willing to start a fresh project on SourceForge, but I donāt feel comfortable using it for a project based off some one elseās intellectual property. The project is based off Eclipse Phase, so SourceForge is out. Sence the main advantage of Git is the Value Added code, and we cant use any Value Added Servers, thereās no real advantage of using Git. The primary disadvantage of Git is that new art has to be submitted using LFS. Maybe thereās a graphical front end for Git, I donāt know, I didnāt check, but I donāt want to have to teach artists about the command line, and I doubt many of them want to learn about it.
The reason I like Subversion is because it works like a Mmo Launcher. Clients donāt store the whole repository, so i think it could be used for product distribution. This is my thinking. We wrap pySide and pySvn using py2exe. This reads a bunch of config files that contain information about the different projects Subversion servers and such. Then a person could download and update all there Bge games in one place. It would be like Battle for Wesnothās addon browser, but the files would be on there own individual servers. In my experience the primary area where proprietary software excels over community software is in marketing. So, if Iām going to use Subversion for distribution, then it would be preferable to use it for development as well. But Iām not sure Ill ever make a launcher. I havenāt even done a prototype for it yet.
Regardless, I had to click a button, and I clicked Svn. As some people have mentioned, thereās been some talk but not much action. Eventually you have to try something. I would also like to point out that the Constitution is almost entirely comprised of how it can be changed. If people want Git they can simply out vote me.
Thanks for the feedback. Just shimming in on a few points:
Branches still exists, but they get synchronized between your upstream āmasterā repository and your local one. The advantage of that is that you can work offline against your repository, and then push your offline commits to your remote repository whenever.
No, as I said, the distributed aspect of Git allows one to essentially have the whole state of a remote repository locally, and make changes without asking the ācentral serverā. But of course when collaborating on a project, you want a single āsource of truthā for everyone. But people will operate on independent copies. Then you push your new commits on top of already existing branches upstream, most of the time it just works. If you happen to push your local commits on top of a branch that already got contributed to, then you will need to proceed to a merge or rebase with upstream in order to make sure your changes can be contributed back to the new state of the branch. This is usually prevented by having everyone working on their own feature branch, avoiding risk of collisions.
Another aspect of this distributed system allows person A to make contributions to a project P by āforkingā the repository into a sub-repository F. Then A makes commits onto a branch on F, and then you can ask project leads to merge Fās feature branch with Pās master branch. This is how āPull Requestsā on GitHub are managed, allowing anyone to ask to contribute on a project, even though they donāt have writing rights. They simply operate on copies of the repository, and then ask to merge branches, which usually is a breeze using Git.
Git is a simple command-line program to manage source changes without imposing the notion of a central server. Then platforms such as GitHub or GitLab effectively spawned to address the collaboration issue, providing visual feedback of the state of the repository, branches, and āPull Requestsā (intent of merging one branch back to master). But there are self hosted solutions as far as I know. I donāt know where you are hosting your SVN server, but the same could be done for Git in case the current services donāt fit your needs.
Wasnāt trying to change your mind, I just wanted to understand your reasoning behind this choice as in software dev today SVN is not commonly used, except within legacy projects