- Choose 1 or more of the following labels in Labels
After you have chosen an issue to fix, follow the steps here to start making and testing code changes on your own copy of the Space Station 14 code:
- Setting up a Development Environment
- This will let you play a local copy of the game so you can see your changes in gameplay.
- Git for the SS14 Developer
- This will let you work on code that you can transfer from your computer to your Github repository and eventually to Space Station 14.
This is important to know so you do not accidentally delete all of your code changes when you update your copy of Space Station 14.
3 Code Locations to know:
- Your Computer code (Your copy)
- Your Github Repository (Local Github)
- Space Station 14 Github
How the code is transferred.
- Space Station 14 Github => Local Github. You make a fork of the Space Station 14 repository so you have a Local Github copy of the code yourself.
- Local Github <==> Space Station 14 Github. Do NOT make your own code changes on your master branch.
- Your master branch needs to be linked to the master branch of Space Station 14.
- Every time Space Station 14 Github updates its code, your master branch on your Local Github repository will need to update its code as well so it stays in sync.
- Local Github => Your copy. Follow Setting up a Development Environment & Git for the SS14 Developer
- Your copy. Make a new branch from your code editor where you will make code changes.
- Your copy. Test your changes in gameplay.
- Your copy => Local Github. When your code is ready, make a commit to your Github repository from your non-master branch.
- Space Station 14 Github => Local Github. Sync Fork
- For your code to work, it must fit into the code in Space Station 14 Github.
- You will have to keep your Local Github code up-to-date with the Space Station 14 Github.
- Local Github => Your copy Pull the updated code from your Local Github repository to your copy.
You may need to merge changes if you are trying to change files that got changed from the update.
- Your copy => Local Github. Commit your changes.
- Local Github <==> Space Station 14 Github. Make a pull request.
- If you make code changes from your master branch & make a pull request from your master branch, both your code changes and your pull request are at risk of self-destruction.
- The only way to keep your code up-to-date with the actual Space Station 14 code is to sync the code.
- This will require you to discard your commits.
- Once you discard your commits, your code changes will be deleted & your pull request will be closed. Which is not fun.
- Wait for Code Reviewers to let you know if your code is good to go for merging.
- Try playing the game first so you know what features are already implemented.
- “Feature bloat” occurs if you make a feature that already exists.
- For example, allowing a specific action to toggle by pressing “4” when it already can be toggled by pressing “z”.
- Propose the Feature before you start making it. Feature Proposals
- Open a New Issue on Space Station 14: New Issue
Have you completed step 2.3 of Git for the SS14 Developer?
Make sure you use the command
cd to navigate to your space-station-14 repository before running
- Lots of the in-game text can be found in XAML files & YML files. You can search through XAML files to find the parts of the user interface that you want to work on.
- If YML files are not showing up, you can find them on Github by going to the Space Station 14 repository & searching for .yml files.
- Use your code editor to search for the exact text (for text that is not based on Project Fluent). For example, Visual Studio lets you use Ctrl + Shift + F to find certain text in all of the files.
- Not all text shows up exactly as written because Space Station 14 uses Project Fluent to make text that automatically translates to different languages.
- Project Fluent
- This means that some text shows up as
- This means that some text shows up as
- If you want to find where a method is referenced throughout the code, you can click on the method name on Github to find where the method is referenced.