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]).
It follows in the traditions of old classics like the FreeSpace series with a mission based gameplay and adds slightly more realism with a Newtonian mechanics based movement system. It has a desktop focused design, but can be played on mobile devices as well as it supports touchscreen input (next to mouse, keyboard, joystick and gamepad). It also has a mission editor and an online mission sharing service included.
Though the game is not yet fully complete, it is already in a well playable state and its current development version is released in an "early access" fashion.
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).
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.
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.
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).
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.
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).
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.
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 or a build-with-editor (see the previous section).
It is also accessible from the game itself under Single player / My missions.
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.
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
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
.
The same goes as for snaps, just use npm run build-appimage
instead.
Latest versions tested:
Electron: 26.1.0
electron-builder: 24.6.3
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
02.09.2023.