Ok, assuming y'all haven't already moved forward with this project (meaning some kind of online repository of worlds allowing check-out and check-in), I would like to volunteer my services as time permits. For what it's worth, I'm a professional web application programmer, and very interested in Dwarf Fortress.
Using SVN or something would be interesting, but you'll probably just want a web application. If I'm wrong and SVN fits, by all means go ahead with that.
We need three things to make this happen:
1) Web Server with:
- adequate disk space
- support for some dynamic web language (ASP.NET, PHP, ColdFusion, etc)
- (probably) support for some database system (MSSQL, MySQL, etc)
- preferably, some sort of backup scheme so the whole thing doesn't get wiped because a hard disk dies
2) Clear statement of what "the system" should do
- who will use the system? (think user groups; e.g. "anyone" and "moderators")
- what users in each of these groups do? (e.g. "anyone" might check out or check in a world, whereas only a moderator could start a new world or "rollback" a world where the most recent check-in is inappropriate)
- what data do we need to track? (e.g. there will be any number of "world" objects, each of which has any number of "check-ins" representing state at a particular point in time; etc, more on this a bit later)
3) Web/Database programmer to:
- make sure the requirements of what "the system" should do are clear
- create the database and web interface that satisfy those requirements, and put those on the web server
- coordinate the testing effort to make sure the result is more or less un-buggy and satisfying to the clients (that would be y'all)
Of course, you'll also need community interest for this to have any real meaning (and to do moderating, etc), but it sounds like you have that.
---
So, PTTG, you've mentioned having some storage available; do you have something that would satisfy 1) ? If not, sufficient hosting could probably be procured for $20/month or less but that would depend on how many people are pulling these files down at once and how many total files y'all want it to support.
As to 3), it's up to y'all but I'll be happy to do it as long as the requirements stay sane.
Which brings us to 2). Here's my guesses based on what you've said thus far:
User roles and what they do
---
Normal User
- creates a username/password account, similar to how you create an account for this forum
-- account creation could be made contingent on moderator "approval", but this adds complexity both in the code and in the real-world process of waiting for a mod to get around to it
- can "check-out" any available world
-- downloads the latest file for that world
-- makes that world unavailable for further check-outs
-- can limit the number of worlds a particular user has checked-out
- can "check-in" any world they have checked out
-- uploads the file for that world
-- enters additional info like in-game year and description of what happened
-- makes that world available for further check-outs
-- could make the actual "available" status wait until a mod can take a look to make sure the check-in is legit, but again this might bog down the process unnecessarily
- can download a copy of any "check-in" ever uploaded, with the understanding that they cannot then check that file back into the world from which it came
Moderator
- creates a username/password account, similar to how you create an account for this forum
-- account will not function as a "Moderator" account unless and until another moderator flags the account as such (the programmer would set up the initial set of moderators)
- can do anything a normal user can do
- can create a brand new world
-- uploads the initial file (either right after world_gen or whatever, doesn't matter)
-- enters a description
- can "clone" a world
-- picks any check-in from any world, which is copied to the new world (just that one check-in, none of the previous or subsequent ones for that world)
-- enters a description
- can delete a world
-- deletes all check-ins associated with that world, and the world disappears from the list forever
-- intended for dealing with junk data
- can "rollback" a world to a previous check-in
-- deletes all check-ins after the selected check-in
-- intended for dealing with junk check-ins
Data to track:
---
World
- Name
- Description
- Date Created
- who has it checked out (if anyone)
- Compatible DF version(s)
- who uploaded it
- 1 or more "check-ins"
World Check In
- World to which it belongs
- Zip file containing what is necessary to play it
- Date of upload
- In-game Year
- coordinates of dwarf fortress if played in dwarf mode (needed?)
- who uploaded it
- comments from uploader
Ok, I'm sure I'm missing stuff, but there it is.
Some things to think about are:
- security; possible viruses in zip files from malicious users?
- do you want to restrict certain worlds to only allow check-outs from specific users (for a succession game or whatever)?
Thoughts?
Thanks,
Keith