Important links
- GitHub – Our code and downloads.
- Forum – For help, feedback, discussion, and feature proposals.
- Roadmap – Our plans for the future!
- Issue Tracker (for the Core plugin) – Report bugs, astronomical inaccuracies, or other problems.
- Changelog (for the Core plugin) – See what’s changed and what we’re working on.
Also, the Godot community is a superb resource for project development.
Overview
I, Voyager is free, open-source software built on the free, open-source Godot Engine. 3rd-party images and models are either public domain (mainly NASA) or permissively licensed. See About, LICENSE, IVOYAGER_WORKS and 3RD_PARTY for copyright and licensing details. Code is mainly Godot’s GDScript and shading language. Godot supports project development in GDScript, C# and C++.
I, Voyager code repositories consist of two main “projects,” Planetarium and Project Template, and a set of Godot Editor plugins: Core, Tables, Units, and Save. The simulation is run by Core and can be modified extensively by external code and/or config files. Tables, Units, and Save are freestanding plugins that might be useful for unrelated Godot projects. The Project Template is the best place to start for creating a new space game or astronomy/educational app.
It’s best to view I, Voyager’s code documentation from within the Godot Editor, but here are some entry points for viewing code at our repositories:
- IVUniverseTemplate for scene tree construction.
- Singletons IVCoreInitializer, IVCoreSettings, IVGlobal, and IVStateManager for program init and state management.
- IVBody for the physical 3D world.
- IVOrbit for orbital mechanics.
Clone project with plugins using Git
Our project repositories use submodules! If you’re new to Git or to Git submodules, we highly recommend GitKraken. It’ll make your life easier and is free for public repositories. Below are Git cmd-line instructions, but each step is pretty easy to figure out using GitKraken.
To clone the Planetarium with its submodules in one step:
git clone --recursive git://github.com/ivoyager/planetarium.git
For the Project Template, follow the link to its repository and click the green “Use this template” button. A GitHub wizard will help you name and create a new (private or public) project repository in your GitHub account. Then clone your new repository with its submodules in one step:
git clone --recursive git://github.com/<your account>/<your repository>.git
(If using GitKraken, it will prompt you to init the submodules after you clone the parent project.)
I, Voyager assets (images, models, and large binary files) are not Git-tracked. On opening a project in the Godot Editor, the Core editor plugin will ask you if you want to download or (if needed) update assets. Just press “Download” at the prompt. Alternatively, you can obtain these manually here. These are kept in directory res://addons/ivoyager_assets along side your plugins.
Check our changelogs to see what Godot version we used in code development. The main changelog of interest is for the Core plugin here. (The other plugins and projects each have their own changelog.) Usually, the most current Godot Engine will work.
Add plugins as Git submodules to an existing project
We recommend adding our plugins as Git submodules. This way, you can easily pull updates, checkout any commit, and (importantly to us!) contribute your own improvements to our plugins via pull requests.
For the Core plugin, from your project directory use git command:
git submodule add https://github.com/ivoyager/ivoyager_core addons/ivoyager_core
Follow the same pattern as needed for other submodules (plugins).
Build project without Git
If you don’t want to Git, you will have to download the project and its plugins separately.
- Download either Planetarium or Project Template. You’ll need the “source code” under Assets. Remove the version “-x.x.x” from the project directory name. In the addons directory you’ll find several empty directories where the plugins should be.
- Download each of the plugins Core, Tables, Units, and Save (Save only needed for Project Template) and move contents into the empty plugin directories.
- Open in Godot Editor and select “Download” at the prompt to download assets (see notes above).
Exporting
Exported projects need file extensions *.ivbinary and *.cfg files to work! Add these to Resources/”Filters to export non-resource files/folders”.
