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.
- 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.
Implementing Realistic AI Behaviors
The main project task is to improve the existing AI behaviors used in the focus gameplays “JoshariasSurvival” and “MetalRenegades” and…
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.