Interstellar Armada: Galactic Ace is a free, Open Source browser-based 3D space combat simulator developed in JavaScript-WebGL by Krisztián Nagy ([email protected]).
Play now!
Though the game is far from being ready, it is possible to try out what has already been completed from it.
Web version
Just head to this page to launch the latest alpha release! Note: The perfomance greatly varies depending on the used browser. In my experience, on most configurations Chrome/Chromium provides the best experience (by far).
Snap version
If you are on Ubuntu or another Linux distribution with snap support, you can install the game from the Snap Store. This comes with the advantage that you will be able to play offline, as all the resources are included, and the game will automatically be updated to the latest version when I publish a new release.
Appimage
If you are on Linux but you don't use snaps, you can also download the appimage for the latest release. This also allows for offline play, but you will have to manually check here for updates.
Flatpak
Creating Flatpak builds is a little more complicated, because the build system I use does not support it out of the box, but I plan to add Flatpaks for future releases (from 0.6).
Windows and Max OS
If you are using these operating systems (or Android, iOS or anything else), just run the web version I linked as the first option, preferably from Chromium or Chrome. Currently I have no plans to add pre-packaged builds for these systems.
Performance
If you experience performance issues, adjust the level of graphics detail from the menu. Or if you have a powerful computer, you might want to increase the default settings. As this is an early version, the performance is subject to changes (and bugs).
For developers
I use NetBeans with its web development (+ ESLint and GLSL) plugins to develop this game. To build the game, you will need npm, Grunt and Sass.
After cloning the repository, in its main folder run
npm install
grunt build
to build the production version of the game. Then serve the game folder with
your favorite server of choice and open index.html
in the root folder to run
locally. (the game uses XMLHttpRequests, so the file cannot be opened directly
without a server)
Run grunt clean
to remove the build files.
Run grunt dev-build
to create a build for development / testing.
Run grunt watch
while developing to automatically update dev-build files as you modify the sources.
Run grunt build-with-editor
to create a production build that includes the game editor.
Editor
The game includes an editor (also written in JS, in fact it uses modules from the
game itself to load / display game data). You can open it by serving and opening
editor.html
after making a dev-build (see the previous section).
Please note that the editor is even less complete than the game, there are
things that cannot be edited with it (most notably game configuration / settings and
language files), and it has limitations for even the things it can edit (such as not being
able to delete items). It is also fairly buggy.
However, it can still be useful and more comfortable than dealing with the JSON files manually,
and can be great for understanding how the game data is structured. To apply the changes
you make in the editor, you need to download the game files to your computer and put them
in your server's serving folder (or use Electron, as explained in the next chapter), export
the files you changed with the editor (resources/classes/environments/mission), and overwrite the
original game files with the exported ones.
Electron
The game can be run using Electron. To do this, just
download a release of Electron suitable for
your computer, make a build of the game (see above), and then copy the project files over to the
appropriate folder of Electron (the app
folder, which you will have to create within the resources
folder).
The project contains the necessary files for the Electron setup, so after this it can simply be run by starting the Electron executable.
When run this way, the game has some small differences such as a Quit button in the menu to close the application and the
lack of a fullscreen button (as it will run in fullscreen by default).
The last release of Electron tested with the game: 17.1.2
Snap packaging
Run npm run build-snap
after you have created a game build to use electron-builder to package the build
together with Electron into a Snap. The package file and other build artifacts will be generated in the dist
folder.
To clean the folder up, run npm run clean-snap
.
Appimage packaging
The same goes as for snaps, just use npm run build-appimage
instead.
Latest versions tested:
Electron: 18.2.0
electron-builder: 23.0.3
License and copyright
Please see the LICENSE.txt file or the About page within the game for the details of licensing. In short, most of the source code of the game is released under the GNU GPLv3 license and most of the assets are released under the CC BY 4.0 license, but for exceptions, details and attributions please do check LICENSE.txt.
With game related questions, suggestions and feedback please contact me at [email protected].
Krisztián Nagy
30.04.2022.