Jeff recently mentioned that it would be nice to organize a pack containing mods, textures and just stuff made by the community.
I think it's a great idea and so here is my first attempt at putting together such a pack.
This topic is meant mostly to illustrate a system for doing such a thing... ( I realize I might be overthinking this, but I like to be thorough
A good bit of thought has gone into how to best organize such a pack, and I think i've come up with a system that follows some of the design choices that have been made in the engine so far, would keep things easily organized, and overall is a good way of doing this. First and foremost, it's drag and drop. No copying into folders necessary, Period! =D (will mention how to load custom levels in a moment)
First, here is how the Folder is structured:
- All of the content is in one folder within the Data folder. here I chose to call it 'Custom', but another name would do if it were more appropriate.
- Inside Custom there is a very specific hierarchy that the folders should follow: (please don't complain if you're stuff isn't in the folder yet. I just quickly grabbed what I could find and didn't choose one over the other. this is just a test)
- I feel it is best to organize it at the lowest level by the user.
- Next is the Name of the project.
- In the project folder there is an about.xml file, and a file structure mirroring that of the Data folder. although not necessary, I feel it is good practice to stick to this format for when projects become more complex and files will be harder to keep organized.
- The about.xml file contains information about the project, and I hope will at some point be readable by the engine's Mod browser. I like how the levels/objects use XML and I feel that tagging/organizing user created content with XML as well would work nicely, and would be easy to implement in the engine. Here is the above XML file:
Code: Select all
<?xml version="1.0" ?>
<Creations>
<Creation name="Rabboss!" version="1.0" url="http://forums.wolfire.com/viewtopic.php?f=13&t=4607" date="Feb 10, 2009" status="finished" note="Rabbot may have met his match!" />
</Creations>
<Authors>
<Author name="John" forum_id="12985" />
</Authors>
Creations:
- - name: a short title for the project.
- version: the version of this release. (more on that later)
- url: the url for this project. If you don't have your own website use the topic/post where you posted it on the forum
- date: the date of release or creation.
- status: the state of this version of the project.
- note: a description of what this project is.
- - name: author's name
- forum_id: the author's ID on the forum. ( to find your ID just click on your name at the top of a post. for example, Jeff's forum ID is 3.)
- Version-wise, if there are multiple versions of the same project another level can be added: This level has to be in the format of v#.# or v#.#.#.etc.
I've probably forgotten something, and will but feel free to download it and try it yourself:
http://jo-shadow.com/Public/Johannes/Mo ... Custom.zip (18MB)
(Jeff, it would be excellent if you could host that. The forum wouldn't let me upload a file of that size)
Once downloaded, place the 'Custom' folder into your Data folder
You can load custom Levels in the starter menu by typing
Code: Select all
../Custom/Your/File/Path/Level.xmlCode: Select all
../Custom/Jo-Shadow/Test Maps/Levels/Test2.xmlThis is only a first draft. I have not yet taken into account how one would create an entire mod in this format, but I feel that the About.xml file could be appropriately expanded to make it work.
Once you've tried it out, tell me what you think.