The whole point to this rule is quite straightforward. When questioning whether or not you can use an asset, ask yourself this question:
Will everyone be able to download and run my project for free now and at any time in the future?
If the answer is no, don't use the asset. That includes:
- Assets you got in a free bundle that were only free temporarily
- Assets you got from the Unreal marketplace during one of the monthly giveaways
- Assets you have paid for
If the asset falls into any of those categories, or if your answer to the above question becomes "no" when you add the asset, DON'T USE IT. It's against the rules, and it completely goes against the spirit of the jam.
So how do I upload my source anyway?
1. The Easy Way
The easiest way to do this is to zip up your project and upload it alongside your game.
Press the "Upload files" button, choose your file, and change the file type to "Source code". If you're in Unity, you only want to upload the following folders:
- MyJamProject/Assets/ - this is where all the code and assets for your game are. A pretty important one π
- MyJamProject/Packages/ - this tells Unity which built in packages you've used. Even if you didn't change your packages, you still need to include it!
- MyJamProject/ProjectSettings/ - this tells Unity the settings for the project. This includes build settings - e.g. which scenes are in the build, but also includes everything from physics settings to lighting settings.
That's it! Just those three folders. Everything else will be regenerated by Unity when someone first opens the project. There are a LOT of files in those other folders, so if you include them you'll probably hit the Itch.io file upload size limit!
2. The Better Way
Use git! It's a little more involved to set up, but it basically saves checkpoints of your progress every time you commit which is INCREDIBLY useful if anything goes wrong! Here's a step by step guide to get an existing project up and running:
- Make an account at https://github.com/
- Create a new repository: https://github.com/new
- Make sure it is public
- Add a .gitignore template for whichever engine you're using, e.g. I use the Unity Template
- If you're on Windows, download https://gitforwindows.org/
- If you're on Windows, open Git Bash. If you're on macOS or Linux, open a terminal window
- Open your current project directory. If you're unfamiliar with the command prompt, type `cd` (no quotation marks) then a space, then drag in your project from file explorer, then press return/enter.
- Type `git init` (no quotes), then press return/enter - this will make the folder something that git can track
- Type `git branch -m main` then press return/enter - this renames the "master" branch to "main", it's a name change that doesn't seem to have filtered down to the command line when initialising a repository yet...
- Type `git remote add origin <your git URL>` - you can check the git webpage for your repository (the big green button that says "code" - copy the link from there), then press return/enter - this will tell it to point to your repository online
- Type `git pull origin main`, then press return/enter - this will grab the .gitignore file so it knows what to ignore
- Type `git add .` then press return/enter - THE FULL STOP IS IMPORTANT. This tells git which files you want to include, the full stop just means "all of them"
- Type `git commit -m "Some message here"`, then press return/enter - for this one I'd do something like "initial commit", this saves a "checkpoint" for all your code and assets.
- Type `git push -u origin main`, then press return/enter - this one sends all your code to GitHub! After this first time, you can just do `git push`. You can check this has worked by
- On your game's Itch.io page, press "add external file", then paste in the github page url for your repository, e.g. https://github.com/DomHarris/TankShift
And that's it! Now when you make changes, you can do
- `git add .` to tell git that things have changed
- `git commit -m "Some message here"` to save a checkpoint
- `git push` to upload the changes.
This gives you a really easy way to go back a step if anything breaks! Or you make a change and decide you want to undo it.
There's one final thing, now:
You will need to check the license for any assets you use.
Specifically, you need to check to make sure it includes the right to distribute. If it does not, you can still use the asset, you just need to remove it from your project before you upload the source. It can still be contained within the actual playable game. You'll also need to provide download links and install instructions, either on your game's itch.io page or in a readme.md file in your github repository.
If you have any questions - first look at the big bold text at the top of this post. If there is still some confusion, feel free to ping me (theChief#0001) on Discord in the GameDev.TV server, or reply to this post. You'll get a quicker response on Discord π
If you need a hand setting things up, you can always ask me!