Sending Me your Project

Occasionally, someone will ask a question about a problem they're having with their game, and the best solution is for them to send their project to me so I can take a look at it.

(If you can get away with just sending me the contents of the line, method, or file that has the problem, that is usually preferable.)

This page briefly discusses the details of how to do this.

Email

Probably the simplest way to get your code to me is by zipping it up and sending it in an email.

File Size Limits

There are two things that email systems check when sending attachments like this. First, they check file size. They usually have an upper limit to how big the file can be. This is often something like 25 MB, but it varies from system to system.

Also, the sender and the receiver get a say in the matter, so even if your email system can handle 1 GB, mine can't. Many XNA games are larger than the limit, though it's really a function of how much content you have, as that is usually the overwhelming majority of your project's size.

Executable Code Limits

Virtually all email systems will prevent you from sending executable code. Sometimes this is a simple file extension check (.exe or .dll) but it is often sophisticated enough to check the actual contents.

So the moral of the story is, you probably won't be able to directly email me your actual executable game.

Steps for Sending by Email

1. Locate your game solution's directory on your computer. This is usually something like "C:\Users\{User}\Documents\Visual Studio 2010\Projects\{Project Name}" but it may be elsewhere if you put it somewhere else.
2. Figure out what project folders your solution has. Open up the top level solution directory and you will see a folder for each project in your solution. For a default XNA game, this is usually two projects: the main game project (perhaps "WindowsGame1") and the content project (perhaps "WindowsGame1Content").
3. Delete the "obj" and "bin" folders. For all project folders that you found in step 2, open them up and look for a folder called "bin" and another called "obj". Delete these. Deleting these will make your final file size smaller, and eliminate the executable code, helping to address both of the problems I outlined earlier.
4. Zip up your game project. Go back up to the top level folder for your game, right-click on it, choose Send To… > Compressed (zipped) folder. This will take your entire game project and compress it and turn it into a single .zip file.
5. Attach it to an email and send it to me. Go back to whatever email client you're using and start a new email to me. Add the .zip file that you created in step 4 as an attachment and send the email. If the file is too big or has other problems, it will complain and prevent you from sending it. If this happens, you'll need to try another way (below) of sending the project.

Other Ways

If email doesn't work, there are a couple of other options.

Give Me Repository Access

In the event that you've got your game code in a source code repository somewhere (your own server, BitBucket, GitHub, SourceForge, etc.) and that repository is accessible from the outside world, you can give me access to your repository. You should be able to get away with just giving me read access. (I don't need to commit anything back in—I'll just describe the changes in an email back to you.) And when I'm done, you can revoke my access. I won't be sad about it.

I can't provide detailed directions on how to do this for you. There's too many systems that you could be using, so I'll leave it to you to figure out how to do so, if you want to go that route.

Hmm… I should also specify that I need to be able to pull it down using Subversion, Mercurial, or Git. I'm not going to go install additional third party software to download your project.

Third-Party File Transfer System

There are tons of systems out there that will allow you to transfer large files. Truth be told, I don't trust any of them enough to recommend them. I can't say for sure what they'll do with your code. But I'll leave the decision up to you.

If you have a system that you like and trust, I'm probably OK with it too. But if you get an email from me that says "I don't trust this site enough to use it," you may need to find an alternative.

If I have to create an account, especially if I have to give them my email address or other personal information, I'm probably not going to do it. Sorry!

Big File Transfer

I have one possible option that might work for you. I really hesitate to even say this, but Utah State, where I got my BS and MS, has a system called the Big File Transfer, which we used all the time to transfer things like this. This can be accessed at http://bft.usu.edu.

However, I'm no longer a student there, nor do I have any real connections. The BFT is designed for use by students and faculty there, but they have, as of yet, intentionally not prevented others from using it. Which means you could use it to send me your game.

But if you do, please, please, please, PLEASE don't abuse it. I don't imagine it would take much to have them configure it so that "outsiders" can't use it. Using the BFT is pretty easy though. Just go there and follow the directions.