Skip to content

Team Culture & Discord

ClanGen’s development is principally hosted on GitHub and Discord. On GitHub, code changes are created and approved. On Discord, the game’s direction, features, content, and more are discussed, and developers brainstorm and help each other.

On this page, you can find:
1. Types of Contributions
2. How to Join Projects
3. How to Start Projects
4. How Decisions are Taken


Types of Contributions

Most contributions to ClanGen fall into one of the following category: Features, Content, Bugfixes, Cleanup, Enhancements, Reworks, and Documentation. Let’s break them down so you can get an idea of where your skills will be most valuable:

Features

Features are large-scale projects that add entirely new components to the game. They almost always require coordination from all specialties of development: code, writing, art, and audio. Features in development are hosted in the #development forum on Discord. Examples of features include the leader’s den, the fresh-kill pile, and the Cruel Season gamemode. No matter your specialty, you can find a place to contribute to features!

Content

Content is any contribution to the game that falls into existing boxes! New patrol art, new events, new thoughts, new patrols, new colours, and new sprites are all types of content. They don’t require new code infrastructure to support them; they work within existing features to flesh out and add variety to the game. This is type of contribution is mainly done by art and writing developers.

Bugfixes

Bugfixes are necessary to keep the game running smoothly, and they take all sorts of contributors! Some errors can be corrected with little to no knowledge of coding, while others require more in-depth fixes. You can always check out the Issues page on GitHub to see what bugs you might have the skills to squish. If you're new to contributing, check out issues tagged with "good-first-issue."

Cleanup

Cleanups involve reviewing old content and code to “clean up” what is already in the game! Reworks and new formats are often added, which requires revising old content to bring it up to date. This may seem less glamorous than other types of contributions, but it is essential to keep the game up to date and working its best!

Enhancements

Enhancements are modifications to existing features to improve or add to that feature in some way. These are often first opened as enhancement issues on the Issues page. Check out our currently open Enhancement Issues to get a sense of these.

Reworks

Reworks are large-scale projects that overhaul existing systems. They are more major and in-depth than cleanups. A rework might completely change the format of an existing feature. Reworks are rare and typically headed by senior code developers.

Documentation

Documentation is... what you're currently reading! It is our database of information for developers and users to understand the backend of ClanGen. We are always adding to and updating documentation, and anyone is welcome to contribute to the documentation to improve it for others.


How to Join Projects

  • As an apprentice developer, the best place to start is an ongoing project. Look in the #development forum on Discord to see what projects are ongoing and which ones are tagged with your specialty, or wait for the development newsletter (released bi-weekly) to hear about what’s going on!
  • You can always ask other devs in #dev-game-talk what they’re currently working on and if they’d like help! Some projects are casually added to by one or two devs at a time, while others have dedicated spreadsheets tracking progress. You choose the size of project you want to take on, and you go at your own pace.
  • Each cycle of development has a “focus” that guides the upcoming update. Once that feature (or features) is fully realized, the cycle shifts into bugfixing, then release, then a new “focus” is chosen. Find out the current “focus” of the update cycle and see how your specialty (code, writing, art, audio) fits into it!

How to Start Projects

If you have a big idea for a feature and want to start a project yourself, that's great!

  1. Pitch your idea to other developers in the Discord to gauge interest and get feedback. It's crucial to hear from senior developers to get feedback on whether your proposed feature is a good fit for the game. Otherwise, you might end up sinking a lot of time and energy into a project that won't ultimately be accepted.
  2. Chat with other interested developers to see who may be able to help you realize your idea! Most features requires collaboration from many developers to bring it to life.
  3. Make a thread in the #development forum (anyone can make threads, not just seniors!) In your initial post, describe the feature, define the scope of the project, and list the steps that must be taken to create the feature. If other devs have requested it, you can ping them in the thread to continue brainstorming and collaborating.

How Decisions are Taken

ClanGen is a volunteer project; it is shaped by those who have an interest in contributing to it. The role of senior developers is to make sure that this chorus of voices are all singing in harmony.

Who decides what?

Decisions relating to features and content are mainly taken by the developers who are bringing that feature to life, alongside the senior developers who are associated with that specialty.

  • For example, the contents of a new camp background will be guided by the art developer who is creating it, along with the senior developers who specialize in art.
  • The art developer creating the background may solicit feedback and criticism from other art developers, at which point those developers are welcome to chime in, though the art developer isn't required to implement this feedback.
  • If a senior developer specializing in art requests changes to the background, then the art developer should implement those changes.

Feedback

When a developer opens themself up to feedback, they will hear from many different team members. Some may have conflicting opinions or suggestions. The developer working on the project must use their discretion when deciding what feedback to incorporate. Later, when the developer opens the Pull Request with their changes, they will be in direct conversation with the senior developer reviewing the PR. That senior’s feedback is the most important; see “Getting your PR reviewed.”(to be linkified)

Polling and Consultation

The developer team is constantly changing; developers become inactive or go on hiatus, new developers join the team, old developers return, and so on. This means it is impractical to consult every developer on every decision. Polls will occasionally be conducted for proposed changes that affect a wide range of development, but this is not standard or required for new features and content.

Development Focus

The development cycle focus is an example of something that affects the entire team and is therefore appropriate for a poll; as mentioned in How to Join Projects, when a new update releases, the development team chooses a feature (or features) to base the next update around. The whole development team will have an opportunity to vote on which feature they want to be the focus of the next update.