I, Voyager

Developers

Important links

To ask specific questions about this page, go here.

The Godot community is a superb resource for project development. Please use their Q&A, Discord Server and Forum in addition to our own Forum.

Overview

I, Voyager is a free, open-source project distributed under the permissive Apache License 2.0. Creators who use I, Voyager in their own project may give away or sell their own work. There are no royalties or fees.

Our solar system simulator runs on the free, open-source Godot Engine using (primarily) its easy-to-learn GDScript, which is similar to Python. The simulator code resides in a Godot Editor plugin ivoyager_core that can be embedded within a new or existing Godot project. The parent Godot project can be built using GDScript, C# or C++.

Browse the planetarium repository to see an example project structure with plugins. The solar system is built entirely from data tables imported using ivoyager_table_importer plugin. The parent project can modify all aspects of ivoyager_core functionality without modifying plugin code. This is done externally by modifying res://ivoyager_override.cfg and/or modifying base values in IVCoreSettings and IVCoreInitializer via script. It’s not necessary, but we recommend that you maintain the plugins as Git submodules. This makes it easy to pull updates, checkout any commit, or contribute your own improvements back to us via pull requests.

A final note on project structure: our large asset files (including images, models and asteroid binaries) are not Git-tracked and must be added manually. In a working project these reside in res://addons/ivoyager_assets (alongside ivoyager_core and ivoyager_table_importer). Assets can be downloaded from ivoyager_core releases here and for non-release development builds here.

If you are building a new game or app from scratch, you can use the project_template to get started.

Keep reading to get started contributing to our Planetarium or building your own project!

Clone project with plugins using Git

Whether you are a Git newbie or pro, I highly recommend GitKraken. It’s free for public repositories and simplifies (for me) handling submodules in multiple projects. I’m giving Git cmd-line instructions below, but each step is pretty easy to figure out using GitKraken.

Our project repositories contain submodules!

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 big green ‘Use this template’ button. This will create your new 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.)

After this, you will have a project that lacks large file assets (including images, models and asteroid binaries) which are not Git-tracked. You will need to download the ivoyager_assets directory separately and add to your addons directory (without version suffix, so it is just res://addons/ivoyager_assets). Find the latest assets download with ivoyager_core releases here, or for non-release development builds, go here.

Check our changelogs to see what Godot version we used in code development. The main changelog of interest is for ivoyager_core here. (There are separate changelogs for ivoyager_table_importer and the two parent projects here, here and here.) Usually, the most current Godot Engine will work, but exporting (for example as a Progressive Web App) tends to be a bit more finicky.

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. From your project directory, use git commands:

git submodule add https://github.com/ivoyager/ivoyager_table_importer addons/ivoyager_table_importer

git submodule add https://github.com/ivoyager/ivoyager_core addons/ivoyager_core

Build project without Git

If you don’t want to Git, you can download a project in parts:

  1. Download and extract the parent project, either the Planetarium (here) or the Project Template (here). 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 two empty directories ivoyager_table_importer and ivoyager_core, which you will replace below.
  2. Download and extract ivoyager_table_importer (here), remove version from the directory name, and add it to the addons directory (replacing the empty directory of the same name).
  3. Download and extract ivoyager_core (here), remove version from the directory name, and add it to the addons directory (replacing the empty directory of the same name).
  4. Download and extract ivoyager_assets (in the same place as ivoyager_core, above), remove version from the directory name, and add it to the addons directory.

Exporting

Note: Our recent releases (v0.0.16+) are built using Godot 4.x and can’t be exported as functional HTML5 builds! For HTLM5 export, use v0.0.15 with the most recent Godot 3.x.

Exported projects need file extensions *.ivbinary and *.cfg files to work! Add these to Resources/’Filters to export non-resource files/folders’. (For v0.0.16 and earlier, you only need *.ivbinary.)