Getting Contributors Started

All beginnings are difficult, but the below mentioned learning resources for Workspace Setup and Terasology Engine & Module Land should help you to get started and set yourself up for success.

To get started with your first contribution, you will also find our current Hot Topics below that you can consider joining.

Make sure to also join our Discord to get answers to your questions and help with any issues you might face.

Terasology Workspace Setup

Setting up your Terasology Workspace is the first step in your journey as a Terasology contributor. Follow the Contributor Quickstart and make sure you understand our multi-repo setup.

If you are new to Git and GitHub, we also recommend to especially get familiar with the Git branching basics and GitHub forking workflow.

Further, remember that all submissions must be licensed under Apache License, Version 2.0, that we encourage certain best practices regarding code style, commits and pull requests, and that we maintain a code of conduct.

Terasology Engine & Module Land

We recommend to start contributing in Module Land rather than the Terasology Engine, especially if you do not have a lot of experience with Java or have not worked with an already existing and big codebase yet. However, the following concepts are important for both areas:

Contributing to Terasology's Module Land requires basic Java knowledge and interest in UI/UX, world generation or gameplay mechanics. Browse through our existing modules, see what we already have and what we might still be missing.

To get started, you should make yourself familiar with module development and testing. Furthermore, you should to learn about module dependencies and world generation.

Jump below to our Good First Issues in Module Land.

Contributing to the Terasology Engine requires being very comfortable with Java and ideally having expertise in game engine topics like rendering, networking and concurrency, as well as in-game physics and AI technology.

To get started, you should make yourself familiar with the codebase itself and any specific areas within it that match your interest. Most of the engine-related documentation is in-code.

Jump below to our Good First Issues in Engine.

Tasks & Topics

While you are free to roam our codebase and contribute in any area you would like, below are some tasks and topics that we encourage you to consider. Their scope and feasibility are potentially more realistic than a goal you might set for yourself without knowing the depths and intricacies of our codebase.

Hot Topics

Find our currently ongoing efforts below. Come talk to us on our Discord if you would like to join one of them. You can also propose your own project ideas.

TerasologyArchitectureLauncher
Java 17: Upgrading the Foundation

One of our top priorities in our second revival milestone is upgrading the Java base version used by Gradle for building the Terasology…

Read More
TerasologyRenderingTesting / QA
Rendering Overhaul: One Step at a Time

So far, the proof of concept (PoC) for our rendering overhaul can already start the Terasology menu without evaluating any OpenGL code…

Read More
TerasologyPerformanceTesting / QA
Performance: Making Terasology Shine Brighter

Our core gameplay as the fundamental proof of concept for our engine and core module functionality will act as our testing grounds for…

Read More
TerasologyArchitecture
Streamlining and Refactoring: A Leaner Engine

Within the engine, we'll continue our streamlining and refactoring work. We’ll drive the advanced game setup screen overhaul over the finish…

Read More
WebsiteLogisticsUX (User Experience)
Website Improvements & Code Cleanup

We recently switched https://terasology.org to our new gatsby-based website. There are still several improvements and code clean-up…

Read More
TerasologyLogisticsTesting / QA
Testing & Integrating Code Quality Tooling

The Terasology codebase has grown historically over the past 10+ years. To get better insights into the state of our code-base and how to…

Read More

Good First Module Land Issues

Find some of our module-land issues below. If you would like to work on one of them, start a draft PR for it. You can also view the full list on GitHub.

Good First Engine Issues

Find some of our engine issues below. If you would like to work on one of them, start a draft PR for it. You can also view the full list on GitHub.