Jump to content
  • Advertisement
Sign in to follow this  
I_Smell_Tuna

Source Code Managing

This topic is 4650 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok, so I'm about to start development of a 3D video game. The game is eventually going to have many source code, audio, 3D, and image files. To help keep track of all these files I'm making a web based management tool with PHP that will allow the team members to download and upload files. This web application will let you create sub directories to categorize files. So you could make folders for source code, animations, images, audio etc. Lets say you have a file named animation.c. When a user uploads the file it won't overwrite the pervious version, it will make a new version of the file and tag it with the upload date and time. So when you go to view the versions of animation.c you will get a list of all the versions ever uploaded organized by their upload date/time. So if you need to edit the latest version you just download the one at the top of the list. This also keeps people from accidentally getting rid of old versions that you may need to roll back to. Each directory, and file will have a description, and you will be able to add comments to file uploads so that people know what you changed, what needs to be done, etc, and other users will be able to reply. Below is what the directory structure of a project might look like. PROJECT NAME -AUDIO --SOUND1 ---SOUND1 17/05/05 ---SOUND1 15/05/05 ---SOUND1 14/05/05 ---.......etc -CODE --TERRAIN --AUDIO --PHYSICS --CACHE -MODELS --CHARACTERS --NPC Using something like this will allow you to create a list of tasks that need to be done so that your team stays on track and so that you can see how far you have progressed. I also think that this would be a great tool for planning your project and assigning tasks. Has anyone ever developed or used a system like this? If so did you run in to any trouble, or did it help you a lot? Is there anything else like this avaliable out there? Once I finish developing this I will probably make it avaliable to the GameDev community. Thanks for the feedback.

Share this post


Link to post
Share on other sites
Advertisement
It sounds suspiciously like CVS, doesn't it?
http://www.nongnu.org/cvs/

There are web-based versions (WebCVS), as well as native versions for different OS systems (WinCVS, etc).

Similar source control (or, in fact, entire asset-control) pipelines are done by a whole bunch of other companies (Perforce, Subversion, BitKeeper, humble old MS Visual Source Safe, and many others). Don't try to re-invent the wheel here; just go and pick one of the off-the-shelf ones.

Allan

Share this post


Link to post
Share on other sites
DAMN! Oh well, I've already put some time in to it and I'm not going to let that work go to waste. Besides it's a simple application anyway and won't take long to finish.

Share this post


Link to post
Share on other sites
A big advantage of CVS and Subversion and all other existing systems, is that multiple people can change a file, and the changes get merged into a new version. That is something that is missing from your application.

You might want to build that in, or (and I really think you should go that way) go with existing software like Subversion. Then you can spend your precious time on programming a really cool game, which kinda is your actual goal, isn't it? [wink]

Share this post


Link to post
Share on other sites
Source control isn't simple; existing source code software has solutions to problems that you probably haven't thought of yet and also have come along with some pretty slick interfaces (like TortoiseCVS and TortoiseSVN). If nothing else you should at least look at existing source control packages and see what they can do before you do any more work on your own.

Share this post


Link to post
Share on other sites
No.

- Branching, vendor branches, merging
- Interaction between file renaming and versioning
- Atomic transfers of multiple files
- Only downloading or uploading required components
- Locks

Are only a few. Add to this the fact that there is no way for a simple web interface to reach the same ease of use as an OS- or IDE-integrated system.

Now, a question for you: what typical use do you intend for your system? Will you be able to perform 'global commit' (put all the files I have modified online, except if there is a conflict, in which case don't) and 'global update' (download all files for which I have an outdated version, without overwriting any modifications I have done) operations? These are the fundamental source control operations once can expect to happen a dozen times per day in a small team (hundreds of times per day in a large company).

Share this post


Link to post
Share on other sites
Quote:

-Login system
-File uploading
-Organize by category
-Order by date
-Simple user comment database


In a nutshell those are going to be the only features. Each asset of the game is only going to have 1-2 developers so the need for more advance features just isn't there. Not sure if I'll have a global commit/update feature.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!