Results 1 to 2 of 2

Thread: Open Source Roadmap

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Augustus Lucifer's Avatar Life = Like a beanstalk
    Patrician Citizen

    Join Date
    Aug 2006
    Location
    Mote of Dust
    Posts
    10,725

    Default Open Source Roadmap

    What's this?

    What does he mean 'open source'? This 'Banzai Project' has to be the most closed source project on the face of the earth, only four people know about it!

    Right. Currently we're very tight knit and closed ship, the goal being to hopefully spring a surprise on our fans earlier than we'd be able to get out anything cohesive with the main game. That's fine, I'm not personally an advocate of the separation, but I'm okay with it for the time being. Probably from now until we first release this project we'll be shut up in this forum to work our machinations, all in the pursuit of a joyous surprise.

    Then what?

    We could continue the same way, but it wouldn't do anything for us in terms of productivity or otherwise. We could just open the forum up to the devs and chip in over here once in a while with an update, slogging away at the main game primarily. Or we could do the smart thing, the unheard of thing, we could go open source(in so far as mod assets can be considered source). In the history of TWC no mod has truly opened its doors in any really substantial way. About the farthest any mod has gone is to allow for submods and be communicative. There's no reason we can't be the ones to take that extra step, and a lot of reasons we should.

    What does this not mean?

    Open source does not mean everyone is free to come in and make changes to our build willynilly, then claim it's their own and run off to Russia with it to make millions, contrary to popular belief. It could mean that, if we went with something like the MIT License or the GNU GPL, but there are plenty of software licenses out there which better fit our circumstances and needs. As for commit access, the Linux kernel is a premier example of an open source project, but that doesn't mean I can overwrite Linus Torvalds' changes, since no license requires that the derivative work be directly modifiable, only that it can be changed by an end user on their end and redistributed.

    So then what would it entail?

    1) A License that fits our needs.
    As I mentioned previously, the first thing that needs to be addressed is a license. Not all open source licenses will work for us, because some, most even, allow for things that we wouldn't conceivably want to allow for, since we all take pride in our work and would like to be credited for it, yet we aren't well known enough for that to occur implicitly. Ideally, we want a license that does these things:
    • Allows for the modifying of the 'source' by end users.
    • Allows for re-distribution of the 'source' by end users.
    • Allows for modified additions to be distributed separate from or bundled with the 'source', provided that the two are distinctly separated.
    • Requires that attribution notices for the work be posted visibly along with a link to our forum.
    • Requires that the re-distribution be conveyed under the same license as the original, and any attributions we add, such as to the installer or in other locations be left alone, within reason.
    • Makes it clear that using elements of the 'source' in a separate project that is not derived from the original is handled differently.
    • Makes it clear that the 'source' requires Medieval II Kingdoms to run, and that there is no association between it and the game, CA, or SEGA.

    It might be necessary to craft a custom license which fulfills some of these more specific needs, depending on how adaptive other licenses are. A couple likely candidates include The Attribution Assurance License or some combination of Creative Commons elements, such as Attribution and Share-Alike.
    2) A free, public, open-source repository host for the 'source'.
    There are a number of places that will host open source projects for free. Most of these are geared towards programming code projects, but we can probably find one that works if I get into contact with their support team and explain our situation. The ideal location is GitHub, because we already use Git for our repositories and they have great features that make it easy for less tech-savvy people to get involved. Sourceforge is another good host which has project tools and allows Git repositories, as a good alternative. Finally there's Google Code, but it currently only has Mercurial repositories and a low initial space threshold, as well as not being as interconnected. There's also our current host, Repository Hosting, but they don't have a free plan for public projects.
    3) Simple processes for users to get involved.
    An open source project isn't worth much if it doesn't tie in to the existing TW modding culture. In addition to the ability for users to modify and re-distribute, the preferred mode of operation would be to contribute to the main project in one of two ways: patch or 'sub-mod'.

    People who aren't on the dev team or don't have commit access can submit patch files to us which make changes to the game and purportedly add things or fix bugs or whatever. We can test those out, check the changes, and if we like it then it's a simple matter to incorporate it into the main branch of the build. If we don't like it, it's buggy, it's a matter of personal taste that goes against our design philosophy, or whatever, we can relegate it to being a sub-mod, or only incorporate parts of it into the main branch.

    Sub-mods have the added benefit of having access to the latest versions of all the files. They can simply fork our repository and fetch changes occasionally so that their sub-mod is always up to date and working with the latest changes to the main distribution. Furthermore, we can provide two ways for sub-mods to be easier for players to access and use.

    The first way is inclusion in the main installer. By simply cordoning off the changed files into new sub-packages, the installer can ask players if they want to install certain sub-mods in addition to the main mod. Mods included like this would ideally need to be relatively stable, of good quality, have a large appeal, and be kept well up to date with the most recent installer. For sub-mods that don't meet that criteria, we can still provide easier access to them.

    The second way would be an external program written to manage the installation of sub-mods. Basically a user would run the program, they'd type in a link provided by the sub-mod author or select from a pre-defined list, and then the program would grab that download from the internet and install it to the correct location(using something like wget). Ideally backups of the main files would also be made so that sub-mods could be uninstalled with little trouble.
    4) Open minds.
    All of the above means nothing if we aren't open to the possibilities. All of us mod because we want to play a different game than was originally made to increase our enjoyment and that of others. We're critical of CA when they decline to make their game mod accessible or give us tools to work on top of it. So then the question becomes, why on earth would we want to transmit the same heavy handedness onto the players of our mod? We're only here because we can modify a commercial game to our liking, so it would seem a bit antithetical if we were to disallow the same type of end user changing and redistributing that allow this mod to exist.

    In the short term, the obvious reason for a closed ship is to insure quality and cohesive design. That's fine. We're speaking of the long term here, after we release a stable or semi-stable version, at which point there's no compelling reason not to open our doors in a structured fashion.

  2. #2
    danova's Avatar Protector Domesticus
    Join Date
    Aug 2007
    Location
    Hungary / Budapest
    Posts
    4,668

    Default Re: Open Source Roadmap

    I interesting thought ...
    I like like your thinking.
    .

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •