GitHub Avatar

parsehex

My specialty is making unintentionally useless things, mostly software.

Last updated less than a minute ago

airbattle-docker

This is a repo to be able to easily run a modified instance of the game AIRMASH using community-remade components. I've made changes to the components to address issues and add features that I wanted.

This uses the following repos:

Setup

Please also see the Getting Started page for the most up-to-date instructions.

  1. Install nvm and node 22
    • Windows: Download and run the latest nvm-setup.exe from nvm-windows
    • For Linux/macOS: See this page
  2. Install Node v22 by running:
nvm install 22
  1. Clone this repo + submodules, cd into it, install and run the setup script.
git clone https://github.com/parsehex/airbattle-hosting --recursive
cd airbattle-hosting
npm install
npm run setup

Expect this to take some time, but eventually you should have built copies of ab-bot, ab-frontend, and ab-server.

You can edit the sym-linked file .env.server to customize the server, or change games.json which is loaded by the frontend for the games list (for changes to take effect, run npm run build:frontend).

Electron wrapper (experimental)

There is an early version of an electron wrapper which runs the server/frontend + bots with a single command and window. This is something I've personally wanted for a while and it wouldn't be possible without Node v20+ support in ab-server which was accomplished by Nebulous-Narwhal-48 on their fork.

To try this yourself:

  1. Follow the Setup instructions.
  2. Create binaries for the server and bots:
# from within airbattle-hosting/
npm run build-bins
  1. Now run the electron app:
npm run electron

The window should open after a few seconds and now you can play the game single player with bots!

You can use the control at the top right corner to change the number of bots -- click Apply to restart the bots.

Thoughts / TODO

  • Provide definitions for server/etc options within JSON files
    • Organize by type (server, frontend, bot)
    • Include name, description, config location, key name, value type, value options
      • Value options can be a list, or an object with min/max and/or default keys
    • Load the files to display in the docs
    • Use the files to populate a CLI tool to change config options

License

Since this project is based on unlicensed code recreating or duplicating the original AIRMASH game, this project also has no license.