Terasology/docs/Contributor-Quick-Start.md
Tobias Nett 2d8ef61e80
doc: move wiki content to docsify page (#5155)
* rename docs to docs-pre-merge
* add wiki content based on commit e4d4b10424f24eed6583ea0e998da8aa32a27a3f
* replace wikilinks with markdown links in _sidebar
* use sidebar link text as title via ` autoHeader: true` 
* rename files with `:` or `,` in the name
* use the wiki Home page as entry point instead of the repo README
2023-10-31 14:46:35 +01:00

5.3 KiB

Required Knowledge

  • Git Basics - We use Git for version control, so you should be familiar with the concept of branches, fetching and committing changes, and pushing to a code repository.
  • GitHub Basics - We host our code on and collaborate via GitHub, so you should be familiar with repositories, pull requests, and forks.
  • Bash Basics0 - While you can avoid the command-line in most situations, in some situations you'll need to use it, for instance to fetch additional modules into or update your workspace. Especially, any groovyw or gradlew commands you find in our documentation need to be executed from the command-line.

Required Tools

Set up your Terasology Development Workspace

  1. Clone https://github.com/MovingBlocks/Terasology to a local workspace
  2. Change into the new "Terasology" directory
  3. Grab our module foundation ("iota" line-up)3
    • groovyw module init iota4
  4. (Optional) Open your workspace directory into IntelliJ; choose "Import Gradle Project" if prompted.
    • Note: Simply open the directory, don't pick "New Project". Our Gradle config will setup the project for you.
  5. Compile and start Terasology from source for the first time
    • On the command-line, use gradlew game
    • In IntelliJ, run the "TerasologyPC" run configuration
  6. Select the "CoreSampleGameplay" gameplay
  7. Start the game

Start a Custom Basic Gameplay

  1. Grab additional modules and their dependencies
    • groovyw module recurse <module> will fetch all the modules used by that in source form
  2. Compile and start Terasology (see #Dev-Setup)
  3. Select "CoreSampleGameplay" and click on "Advanced Game Setup"
  4. Double-click on the module you grabbed to activate it
  5. Start the game

Get Help when Facing Issues

Start Contributing

  • Take the Gooey Tour to find resources for the contribution area you're interested in
  • Look through the code, change small things and see how they affect your game
  • Find some "Good First Issues" to work on
  • Code and test your changes locally in-game
  • Push to your fork for engine changes, create module forks and push module changes there
  • Make PRs and ask the community for review

Check out the general contributing guidelines.

Go deeper

You can read through the intro topics for more details on exactly how to set up and develop.

Notes

0 If you feel more comfortable on other shell types, e.g. fish, zsh, powershell, etc. that's fine.

1 For Windows users, we highly recommend Git for Windows which comes with both, a GUI client and shell integration for Git, and in addition brings the Git Bash which allows Windows users a unix-style command-line experience.

2 We recommend IntelliJ, because we have a series of customizations that prepare run configurations, Git integration, and so on for the project. You can use any IDE (or none at all) that you like, however you will not be able to benefit from these customizations.

3 To get all modules that are part of our release, grab the "omega" line-up instead. Please note, that this line-up requires more memory and time for compilation and start-up. Check our Index repo to see all available line-ups.

4 Please note, that both gradlew and groovyw are scripts locally present in your workspace root directory. On *nix systems, you can execute them from within the root directory by prefixing them with ./.