Skip to content

Submitting to Community Content

lewri edited this page Sep 1, 2022 · 7 revisions

Community Content is CorsixTH's user generated content repository and a great place to submit your works! It allows a seamless way to share your creations of maps, level, and campaigns. You may also remix submissions to Community Content into your own work and create different challenges from ones before.

Submissions

In order to submit work, you'll want to make it first. You should see our articles about using the Map Editor, and Creating Level Files. Submissions will also need to follow our Contributing Guidelines, however this page also provides additional guidance. (If you're a git guru, you'll probably be a dab hand at doing this already)

Setting up your repository

Forking

In order to submit your content you'll first need to fork CorsixTH/CommunityContent. You'll be presented with a screen like this. Click create to begin!
image
Congratulations, you now have a fork of CommunityContent!

Make a branch

Your forked repository will now have something like this at the top of the file tree:
image
We'll want to click the 1 branch text, then press the green button New branch. We'll get a fancy screen now.
image
Give your branch a name, but importantly make sure your Branch source points to CorsixTH/CommunityContent and not your fork. It should auto-select the main branch.

Congratulations, you now have your branch to work on! Select its name on the next screen under Active branches.

Adding Files

Now you're in your branch, you can now add your submission.

File Hierarchy

Community Content submissions need to follow a specific file structure/hierarchy. Depending on what you're submitting, you'll want to place your files in a specific directory. See the example tree layouts below:

Levels

CorsixTH Community Content/
├─ Levels/
│  ├─ My Level/
│  │  ├─ LICENSE.txt
│  │  ├─ MyLevel.level
│  │  ├─ MyLevel.map

Maps

CorsixTH Community Content/
├─ Maps/
│  ├─ My Map/
│  │  ├─ LICENSE.txt
│  │  ├─ MyMap.map

Campaigns

CorsixTH Community Content/
├─ Campaigns/
│  ├─ My Campaign/
│  │  ├─ LICENSE.txt
│  │  ├─ My Campaign.campaign
│  │  ├─ FirstLevel.level
│  │  ├─ SecondLevel.level
│  │  ├─ FirstLevel.map
│  │  ├─ SecondLevel.map

Uploading Files

Tip: GitHub hates empty directories 😢. So we'll combat that!

  1. Select the folder Levels, Maps, or Campaigns depending on what you are submitting.
  2. Remember how GitHub hates empty directories? We'll need to make your LICENSE.txt file with some fancy tricks.
    • Go to Add file > Create new file
    • In the name your file box, make a directory (named after your submission e.g. Freetown-upon-Wye), following by a foward-slash /, then LICENSE.txt. GitHub will automatically make the new directory when you hit /
      image
    • Copy in your license content. You can look at the example-license.txt file for a template.
    • Submit your file as a commit to your branch.
      image
  3. The page will now load into our new folder, woohoo! Now we can upload our level/map/campaign files using Add File > Upload Files
  4. You can either drag and drop your files, or click the link to upload them. Once all your files are added, commit the changes.
    image

Make that pull request!

Now that our submission is uploaded, we can now make a Pull Request. You'll now see this yellow bar on your fork. Press Compare & pull request to begin.
image

You'll be presented with a lengthy textbox, which forms part of our submission. It tells us:

  • What you're submitting
  • Who made the submission
  • You're happy with the terms of CorsixTH Community Content

Answer all the questions necessary, then press "Create pull request" to get the submission going.

What next?

Your submission will now be reviewed by the CorsixTH team. We may come back with some questions, or changes needed to your files. Once everything is tickety-boo, your submission will be accepted and added to Community Content. Huzzah!


Why We License

A license can be a good thing to have for published works. They define what a person/organisation can and can't do with your work. Without it, there's not much freedom to what can be done with it by someone else.

The "All Rights Reserved" dilemma

When you create an original work of code/art/etc, you are known as the copyright holder. You, by default, retain all rights over the work such that no other person may reproduce, distribute, or adapt your work without explicit permission. In some commercial/business settings, this would be a fine stance. However, when it comes to open source software it can become an issue.

Free and Open Source Software (FOSS)

CorsixTH is provided for free to any individual to do as they please with under the MIT License. We don't impose any restrictions on someone wanting to take our work and play around with it. All that we ask for is "Attribution". Attribution means giving reference to the original author of the work in any re-use or modification of the work. You can see Attribution in action just by looking at our LICENSE.txt file. If we didn't have a license imposed, you would breach copyright just by downloading a copy of CorsixTH. The same would go for a community generated level/map/campaign too.

Choosing a license for Community Content

CorsixTH's base code uses the MIT License because it is very permissive and absolves us of any liability or warranty. MIT is generally for code based works, so applying it to an artistic work such as a Community Content submission would not make a great fit. Luckily, we have the Creative Commons for such a case. We have chosen Creative Commons Attribution 4.0 International (CC BY 4.0) for Community Content because it offers very similar terms as MIT. As a bonus, it is compatible with the MIT License (if you re-used or modified one of our distributed maps/levels/campaigns from CorsixTH's base. The general stipulations of CC BY 4.0 are:

  • Your work can be distributed so long as you authorship remains attached (Attribution)
  • Your work is not exempt from Commerical use
  • Your work may be modified by another person, as long as your original authorship is retained on the work (known as Derivative Works)
  • You are free of any liability or warranty for your works

Q: Why not just make your own license?
A: Although this would be perfectly possible, we do not feel this is the correct solution. A license should be robust, universally recognised, and fit for purpose. If we used a custom license we could not guarantee all these criteria would be met.

Q: I don't want to use CC BY 4.0
A: This is a perfectly acceptable choice and we would not stop you doing so. However, your content will not be allowed on CorsixTH's Community Content repository if you use a difference license. This may feel strict, but in order to provide the best experience for our community we believe in encouraging only one license on our platform.

Q: A work by someone else I want to use is under a different license
A: CorsixTH Community Content does allow re-submission of a file by a different author under another license, as long as that license permits such an activity. If you wanted to modify a work under a difference license and submit it to Community Content, you would be required to relicense your contribution under CC BY 4.0. This is known as remixing. Remixing licenses can get messy and unfortunately we don't have the resources to check every license remix as being compatible with CC BY 4.0. However, we will point out that works originally under the MIT License are permissive enough to be remixed with CC BY 4.0. This is because the MIT License allows for a work to be modified and released under a more restrictive license. However, in your modified work, you must declare both the CC BY 4.0 license (for your modification); and MIT for the original author.

If you wanted to uses someone else's work without a license being included by them, we can not accept it. You should ask the individual to license the works first (e.g. under CC BY 4.0).

A note on sublicensing CC BY 4.0

If someone makes a derivative work of a Community Content submission, some licenses can't be applied on top of CC BY 4.0. We'd recommend derivative works using a CC BY 4.0 license use the same license again. To read more about this subject, see this article.