This repository contains the source code for Seed of Andromeda.
This guide will walk you through setting up as a contributor to the Seed of Andromeda project. There is a basic requirement of having several packages installed prior to being able to develop. We support all three major operating systems: Windows, Mac and Linux.
Before beginning your SoA journey, please take a moment to use the following resources to get an idea of how to contribute, what you might be able to contribute to specifically, and to meet some of the other contributors.
IMPORTANT: Before following any of the instructions linked below for the platforms we support, please do take a second to fork the repository! If you are new to GitHub, you can do so by clicking the "fork" button on the top right of this page.
If you have cloned the repository before forking, no worries! We can fix it, by following these instructions.
Now we're forked, follow the link to the section on setting up for your OS of choice:
Now you have a copy of the code, and perhaps have played with it a little, why not give it a whirl?
- Compiler: Microsoft Visual Studio 2015 (only)
- Software Version Control: Git
- (Optional) MSVS SVC Plugin: MSVS Git Plugin
- (Optional) TortoiseGit: tortoisegit
- Compiler: Xcode
- Software Version Control: Git
Optionally, with Homebrew:
brew install git
- Preferred editor: Sublime Text and optional packages
- PackageControl
- CMake - CMake.tmLanguage
- GitGutter - A Sublime Text 2/3 plugin to see git diff in gutter
- SublimeCodeIntel - Full-featured code intelligence and smart autocomplete engine
- SublimeLinter -- Interactive code linting framework for Sublime Text 3
- SublimeLinter-cpplint -- This linter plugin for SublimeLinter provides an interface to cpplint.
- SublimeLinter-pep8 - SublimeLinter plugin for python, using pep8.
- SublimeLinter-contrib-clang - https://sublime.wbond.net/packages/SublimeLinter-contrib-clang
- Compiler: gcc or clang
- Install per your preferred operating system package control...
- Portage:
sudo emerge -DuNqa gcc # for gcc sudo emerge -DuNqa clang # for clang
- PacMan:
sudo pacman -S gcc sudo pacman -S clang
- Apt:
sudo apt-get install gcc sudo apt-get install clang
- Yum:
sudo yum install gcc sudo yum install clang
- Software Version Control: Git
- Portage:
sudo emerge -DuNqa git
- PacMan:
sudo pacman -S git
- Apt:
sudo apt-get install git
- Yum:
sudo yum install git
- Create a folder to hold the repositories and change to directory
- Windows
Windows + R cmd cd c:\ mkdir -p repos cd c:\repos
- Linux
mkdir ~/repos cd ~/repos
- Mac
cmd + space Terminal mkdir ~/repos cd ~/repos
- Clone the Seed of Andromeda repositories
git clone --recurse-submodules https://github.com/YOUR_GITHUB_NAME/SoACode-Public.git soa
- Change to soa direcotory
- Windows
cd c:\repos\soa
- Linux & Mac
cd ~/repos/soa
- (optional) Do this step only if you plan to fork your own Vorb or SoAGameData repos.
- Fork both the Vorb and/or GameData repos in github.
- Set origin of submodules to your forked repositories
# Assuming we're already inside the top-level directory of your SoACode-Public repository. cd Vorb git remote set-url origin https://github.com/YOUR_GITHUB_NAME/Vorb.git cd game git remote set-url origin https://github.com/YOUR_GITHUB_NAME/SoAGameData.git
- Pull latest code (from inside .../repos/soa)
git checkout develop # or your current branch git pull --recurse-submodules
- Run the build script (--help for options)
- Windows:
build.bat # or compile from within your Visual Studio environment
- Linux:
./build.sh
- Run the built executable
- Windows:
build/SoA/launch-soa-{Release|Debug}.cmd # or launch from within your Visual Studio environment
- Linux:
./build/SoA/launch-soa.sh
So, you've accidentally cloned the repository before forking it, eh? No problem. Just run the following git commands inside of the repository and everything will be as it should be!
Firstly, if you still haven't, fork the repositories you want to contribute to!
Now you have a fork we want to set origin
of each of your local repositories (which is the default remote repository to push changes to) to your corresponding forked repositories:
# Assuming we're already inside the top-level directory of your SoACode-Public repository.
git remote set-url origin https://github.com/YOUR_GITHUB_NAME/SoACode-Public.git
cd Vorb
git remote set-url origin https://github.com/YOUR_GITHUB_NAME/Vorb.git
cd game
git remote set-url origin https://github.com/YOUR_GITHUB_NAME/SoAGameData.git
If you haven't forked, either Vorb or SoAGameData as you don't intend to contribute to that repository, then you don't need to do run the commands corresponding to that repository.
That's it! It's all fixed. :)