Getting Contributors Started
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.
- Terasology's Module Land
- Developing Modules
- Testing Modules
- Module Dependencies
- World Generation Tutorial
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.
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.
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…
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…
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…
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…
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…
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…
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.