Using GitHub for mapping
I've recently put all of my map assets up on my GitHub account. These are all of the uncompressed assets and original source files for all but a few things (such as the source .blend files for a few of my easter-egg models and the midi tracks for Spacetrack's elevators).
So far, using git for managing my map projects has proven very useful.
Pros
Easy to keep multiple versions of maps for different releases (alphas, betas, etc)
Works great with the text-based map format, with a caveat.*
Other developers and users can see the map progress and try it out at any time; development is more open
Provides a repository for the original map assets, so the map can be easily updated in the future without having to worry about lossless compression for textures or other similar issues.
Could theoretically set up a CI server to automatically build the .bsp files from the .map file as commits are pushed.
- The caveat is that Radiant sticks comments into the map file with ever-changing brush numbers, which throws off diff. Not sure if this is an issue or not. I haven't tried merging or anything with .map files :)
Cons
Your map might get stolen by kharnov and sold to raise money to buy real life grangers.
Difficult to version large files
Handling really large files, like .psd/.xcf texture files or some .blend models, isn't optimal. Git isn't great for dealing with huge files. And while github offers their large-file extension, it offers a measly 1GB storage/1GB bandwidth per month, which could get eaten up fast. So really large files will need to be archived elsewhere...
We had a brief discussion about compressed assets and how best to handle them. I think that despite the large file issue, using something like a github repo is a strong solution; as Fuma suggests, we could use a Make-like system to automatically compile, compress, and package a map, making "building from source" a snap. We just need a way to deal with huge assets.
I wrote a few more points in favor of using github and a more open mapping process for the Freeway announcement on my blog. While this might not suit everybody, I think mappers should at least consider an approach like this for maps that don't have an inordinate number of new assets.
Thoughts?
Unrelated, here's the .gitignore that I use for my maps:
Code: Select all
maps/*.autosave.map
maps/*.bak
maps/chasm/
maps/*.srf
maps/*.prt
maps/*.bsp
I only want the .map file in the repo. No .bsp, no lightmaps, no temporary files produced by the compiler. If you adopt this github, be sure to change "maps/chasm/" to your map's lightmap directory (same name as the .bsp).