Dev Setup - TheShubham99/Terasology GitHub Wiki
To get started with coding for Terasology just have a Java 8 SDK handy, and ideally IntelliJ.
Quick start
- Fork https://github.com/MovingBlocks/Terasology and clone your fork to a local workspace
- If you want to work on any modules fetch them using
groovyw module get ModuleName
or typegroovyw module create ModuleName
to create a new one- For instance you can run
groovyw module get Portals Spawning Oreons
to get all three in one go
- For instance you can run
- Run
gradlew idea
and load the resulting project into IntelliJ (don't import via Gradle!) - Code code code, test locally.
- Push to your fork for engine changes, create module forks or ask for write permissions and push module changes there
- Make PRs, get them merged, revel in open source geek Nirvana!
- To find some issues to work on, check out the Bite-size (a few hours of work, fairly easy to do) and Mentor-size (doable in a week or two with advice and assistance from a casual mentor) issue lists.
- Come introduce yourself in the forum and let us know what you'd like to do!
Going deeper
You can read through the intro topics for more details on exactly how to set up and develop.
- Learn stuff about Git - there are plenty of Git Tutorials out there. This is one of the good ones
- Preparing an Engine Workspace - shows you how to grab the base source code needed to run the game and see it work in IntelliJ
- Developing Modules - shows you how to interact with and organize modules that hold most the content for the game
- Dealing with Forks - gives you a quick overview of how to interact with multiple repositories on GitHub and submitting Pull Requests (PRs)
- Module Dependencies - explains how you can have module
X
depend on moduleY
even at a specific version level
Also check out the general contributing guidelines
A bit more Gradle
- Generate project files for Eclipse:
gradlew eclipse
- Run the game from command line:
gradlew game
- Start a headless server:
gradlew server
(stores data in/terasology-server
by default) - For even more:
gradlew tasks
andgroovyw usage