I''ve been thinking for some time now about creating an asset revision system, similar to Visual Source Safe, but designed for game assets, like models, textures, sounds, etc (as well as source code).
Regular source control systems don''t really scale well when you''ve really big files (as you get with sounds, textures, etc) and I was just wondering if people would be interested in such a program.
The idea would be that you have a central server, which has basically two things. A database and a filesystem. The database is where you organize all the files, keep track of the version, the status etc. I don''t want to store the actual files data in the database, since the files can be really big, so that''s why the filesystem is separate. What you would have is each version of each file in the database would have a GUID associated with it, and this is used to access the actual files on the filesystem (so you convert the GUID to a string representation, and this might the filename on the server).
There''d be a number of ways of accessing the server, there''s be a regular client, like the VSS client. I could create plugins for the more popular pieces of software (VC++, 3D Studio, Photoshop, etc) for loading directly from the server. Maybe even a web interface if you just want to check up on stuff remotely, or for letting others browse the current state of your project (if it''s open source or whatever)
I''ve not done much more than start designing such a system, but I was just wondering whether people would actually be interesting in using it. When I do start creating it, I''ll certainly make it open source, and would encourage people to make plug-ins for it (e.g. a pluging for apache allowing HTTP access). So does anyone have any comments? Questions? Suggestions?
War Worlds - A 3D Real-Time Strategy game in development.
Asset Revision System
I posted something to that effect in this thread. I think it''s an excellent idea!
I was inspired by an interview with the produce of SCEE Team SoHo''s The Getaway who talked about the nightmares they had managing and tracking the variety of assets the game incorporates. I though a client-server architecture would be ideal to facilitate collaborative efforts, complete with versioning and authentication (sort of like CVS for binary data). An author should be able to create branches and "lock" them so their data isn''t overwritten, and so forth. With this system the files don''t need GUIDs as they are identified by branch/author tags (although they may utilize GUIDs internally). I like your separation of the database and the filesystem (journalling would simply shine here) as it clears up a lot of thorny issues I was grappling with in terms of storage format.
I had also thought that plug-ins for popular content and code creation/editing software should be a staple, allowing direct serialization to the server rather than FTP-style uploads (imagine clicking the "Content Server Checkin" button in 3D Studio). In other words, we seem to be bang on the same page.
I''d be willing to commit time and effort to this project, as I''m not currently developing any games (I''d rather focus on tools and technologies right now). You can reach me at my primary or secondary email addresses. I''m a reasonably-versed C++ programmer familiar with Linux and Win32, so i could contribute to those ports. Let''s do this!
I was inspired by an interview with the produce of SCEE Team SoHo''s The Getaway who talked about the nightmares they had managing and tracking the variety of assets the game incorporates. I though a client-server architecture would be ideal to facilitate collaborative efforts, complete with versioning and authentication (sort of like CVS for binary data). An author should be able to create branches and "lock" them so their data isn''t overwritten, and so forth. With this system the files don''t need GUIDs as they are identified by branch/author tags (although they may utilize GUIDs internally). I like your separation of the database and the filesystem (journalling would simply shine here) as it clears up a lot of thorny issues I was grappling with in terms of storage format.
I had also thought that plug-ins for popular content and code creation/editing software should be a staple, allowing direct serialization to the server rather than FTP-style uploads (imagine clicking the "Content Server Checkin" button in 3D Studio). In other words, we seem to be bang on the same page.
I''d be willing to commit time and effort to this project, as I''m not currently developing any games (I''d rather focus on tools and technologies right now). You can reach me at my primary or secondary email addresses. I''m a reasonably-versed C++ programmer familiar with Linux and Win32, so i could contribute to those ports. Let''s do this!
Hey cool, things are starting already!
I've put up a very quick page here: http://www.dharding.net/arms/. It's just got a quick overview of what I'm thinking about here, along with a requirements spec. which I'd like for people to download and comment on (please!)
War Worlds - A 3D Real-Time Strategy game in development.
Edited by - Dean Harding on July 9, 2001 5:23:00 AM
I've put up a very quick page here: http://www.dharding.net/arms/. It's just got a quick overview of what I'm thinking about here, along with a requirements spec. which I'd like for people to download and comment on (please!)
War Worlds - A 3D Real-Time Strategy game in development.
Edited by - Dean Harding on July 9, 2001 5:23:00 AM
Not to shoot you guys down, but the tools do exist, but they are not as nice and friendly as most poeple want them.
Between CVS and ant almost any revision control/build/package/deploy system is possible. I''ve seen some impressive things done with this toolset. Ant even has neat things like CruiseControl that does a continuious build and deploy system so you can always be testing on the raw latest build hot off the compiler. CVS has a flag to tell it that specific files are binary and as such it will just keep copies of the old stuff. Any way you cut it these CVS filesystems will grow huge from old binary files, but that''s ok because with CVS we can export old revisions, back them up and then squish them from the tree.
Ant is java based, but is not only used for java code. CVS has been around for at least a decade. So between CVS ( and WinCVS client ) and an Ant build/deploy system all of your assets including code can reside in one place. If you want to expend effort building these tools, you might as well just extend the framework that is already there, as a photoshop tool for CVS would be neto-keen.
Between CVS and ant almost any revision control/build/package/deploy system is possible. I''ve seen some impressive things done with this toolset. Ant even has neat things like CruiseControl that does a continuious build and deploy system so you can always be testing on the raw latest build hot off the compiler. CVS has a flag to tell it that specific files are binary and as such it will just keep copies of the old stuff. Any way you cut it these CVS filesystems will grow huge from old binary files, but that''s ok because with CVS we can export old revisions, back them up and then squish them from the tree.
Ant is java based, but is not only used for java code. CVS has been around for at least a decade. So between CVS ( and WinCVS client ) and an Ant build/deploy system all of your assets including code can reside in one place. If you want to expend effort building these tools, you might as well just extend the framework that is already there, as a photoshop tool for CVS would be neto-keen.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement