"Nebula" is my Artemis SBS server in the cloud. Artemis, cloud, Nebula, get it?
Specifically, it's a bunch of scripts that can kick off an AWS (or Google Cloud?) server running a fresh untouched Ubuntu Linux, it will install WINE and a bunch of other pre-requisites, install and configure Artemis (can include Artemis Cosmos), run it, click "server", and be ready for your players to connect within 5 minutes. You can then browse to the server and remote-control it over the web, you can connect your own VNC client, or experts can connect using only SSH - there are some commands installed to "click buttons for you".
Contents...
Unfortunately an Artemis server requires a VM with a spec that's too big for the AWS "free tier". Your VM is going to cost you some money to run, however I've found a spec that seems to run Artemis OK[*] and supports a reasonable number of clients/players for 17c/hr. I think 50c for 3hrs of Artemis is OK, isn't it? Remember how far 50c used to go at the arcade? When you're done with it you can completely nuke it, there's no disks to keep around so no cost when NOT using the server.
Your "region" should probably be chosen according to where most of your players are located, with a bit of an eye on price. See also Varun Agrawal's AWS ping test or Jesús Federic's AWS latency test - you may want to ask all your players to try one for a few minutes and collect the results.
For price comparisons, Start at AWS's "on demand" pricing page, or the neat EC2Instances.info tool. You want 4 vCPUs, maybe 8 for big multi-ship "fleet" games (Intel, NOT ARM, AWS Graviton, or even AMD). Usually the "compute optimised" are cheapest. Nebula is best tested on c5.xlarge and c5.2xlarge. Artemis Cosmos 3 support is a bit experimental but seems to benefit from more CPU, probably 8vCPUs (c6a.2xlarge or c5.2xlarge?) or maybe even 16 vCPUs (c6a.4xlarge? c5.4xlarge?), and 15GB root volume size You should obviously check prices for yourself, I am not going to pay your bill for you, but last time I checked (2022-08-06) some appropriate prices (all vcpu=4) were:
0.196USD/hr: vcpu=4 memory=8GiB region=ap-southeast-1 instanceType=c5.xlarge 0.202USD/hr: vcpu=4 memory=8GiB region=eu-west-3 instanceType=c5.xlarge 0.214USD/hr: vcpu=4 memory=8GiB region=ap-northeast-1 instanceType=c5.xlarge 0.17USD/hr: vcpu=4 memory=8GiB region=us-east-1 instanceType=c5.xlarge 0.17USD/hr: vcpu=4 memory=8GiB region=us-east-2 instanceType=c5.xlarge 0.17USD/hr: vcpu=4 memory=8GiB region=ap-south-1 instanceType=c5.xlarge 0.228USD/hr: vcpu=4 memory=8GiB region=af-south-1 instanceType=c5.xlarge 0.202USD/hr: vcpu=4 memory=8GiB region=eu-south-1 instanceType=c5.xlarge 0.192USD/hr: vcpu=4 memory=8GiB region=ap-northeast-2 instanceType=c5.xlarge 0.204USD/hr: vcpu=4 memory=8GiB region=us-west-2-lax-1 instanceType=c5.xlarge 0.222USD/hr: vcpu=4 memory=8GiB region=ap-southeast-2 instanceType=c5.xlarge 0.192USD/hr: vcpu=4 memory=8GiB region=eu-west-1 instanceType=c5.xlarge 0.214USD/hr: vcpu=4 memory=8GiB region=ap-northeast-3 instanceType=c5.xlarge 0.186USD/hr: vcpu=4 memory=8GiB region=ca-central-1 instanceType=c5.xlarge 0.202USD/hr: vcpu=4 memory=8GiB region=eu-west-2 instanceType=c5.xlarge 0.17USD/hr: vcpu=4 memory=8GiB region=us-west-2 instanceType=c5.xlarge 0.194USD/hr: vcpu=4 memory=8GiB region=eu-central-1 instanceType=c5.xlarge 0.204USD/hr: vcpu=4 memory=8GiB region=us-gov-west-1 instanceType=c5.xlarge 0.212USD/hr: vcpu=4 memory=8GiB region=us-west-1 instanceType=c5.xlarge 0.204USD/hr: vcpu=4 memory=8GiB region=us-gov-east-1 instanceType=c5.xlarge 0.196USD/hr: vcpu=4 memory=8GiB region=ap-southeast-3 instanceType=c5.xlarge 0.182USD/hr: vcpu=4 memory=8GiB region=eu-north-1 instanceType=c5.xlarge 0.216USD/hr: vcpu=4 memory=8GiB region=ap-east-1 instanceType=c5.xlarge 0.262USD/hr: vcpu=4 memory=8GiB region=sa-east-1 instanceType=c5.xlarge 0.211USD/hr: vcpu=4 memory=8GiB region=me-south-1 instanceType=c5.xlarge
You'll need to get yourself an AWS account ("create a free account"), unless you already have one of course! It's free for now but you will need to pay (a little) when you are ready to actually run a server
You no longer need to create or import an
SSH keypair in the right region.
If you're on Linux you probably already know what SSH is and probably
already have an SSH key - you can import your id_rsa.pub
.
If you're on Windows you might want PuTTY
Secure Shell - this is a way to connect securely across the
internet to your Nebula server, but you probably don't need it any
more - you can just browse to your Nebula server (see below).
You'll want a Network Security Group in the right region. Call it "2010":
Click DONE
.
NOTE: There's no cost for any of the above SO FAR
Rookies / cadets who prefer the AWS web console...
|
Expert engineers who are using Linux and/or able to run BASH scripts and have the AWS CLI installed and configured... Download start.sh. Check
the variables at the top. You probably want to change
Then just run it: ./start.sh 281stock Make a note of the Public IP it tells you. |
Rookies / cadets who would prefer a web UI... After a minute or so you should be able to connect a web browser to the Public IP above. Just http://192.0.2.3/ or whatever (not https). You should see a log summary, which will go through approximately the following steps: YYYY-MM-DD HH:MM:SS : ENV: YYYY-MM-DD HH:MM:SS : Web UI install YYYY-MM-DD HH:MM:SS : Keeping config YYYY-MM-DD HH:MM:SS : Nebula server booting YYYY-MM-DD HH:MM:SS : SSH config... YYYY-MM-DD HH:MM:SS : APT updates and installs... YYYY-MM-DD HH:MM:SS : X11 ... YYYY-MM-DD HH:MM:SS : Downloading Artemis 271ben bits... YYYY-MM-DD HH:MM:SS : Making click utils YYYY-MM-DD HH:MM:SS : VNC setup... YYYY-MM-DD HH:MM:SS : Making click utils YYYY-MM-DD HH:MM:SS : Artemis mods and config ... YYYY-MM-DD HH:MM:SS : Nebula Server is ready! YYYY-MM-DD HH:MM:SS : DONE - stop the clock! As soon as it says "VNC setup", you should see a link to remote-control your Artemis server using your browser - you'll need to use the password you set in VNCPASS above (you DID set VNCPASS=something, right ?) and then you should see your Artemis server running! If it DOESN'T work, in particular if you see the message "Artemis failed to start properly" or if you see "Artemis.exe has crashed" in the remote-control, then you may need to restart Artemis. In the bottom-left corner, click "In case of emergency: Restart Artemis" and wait a minute or so. Worst-case, you could terminate the server and start again. See Step 6: Shutdown below, then go back to Step 3 above to start another VM |
Expert engineers should be able to connect to it using SSH (or PuTTY) within a minute, for example if your Public IP was 192.0.2.3: ssh -L5900:127.1:5900 ubuntu@192.0.2.3 # <-- use real IP here tail -1000f /var/log/cloud-init-output.log # to watch boot progress If using PuTTY, you'll want to connect to the supplied IP, user "ubuntu", and arrange for a "local port forward" of port 5900 to 127.0.0.1 5900 If it works, you'll see a lot of headers like: ############################################################ #### YYYY-MM-DD HH:MM:SS : Web UI install ############################################################... and a lot of other debugging output in between. When done, you should see something like... #### YYYY-MM-DD HH:MM:SS : Waiting 30 secs for server... #### YYYY-MM-DD HH:MM:SS : Waiting 29 secs for server... #### YYYY-MM-DD HH:MM:SS : Waiting 28 secs for server... tcp 0 0 0.0.0.0:2010 0.0.0.0:* LISTEN ############################################################ #### YYYY-MM-DD HH:MM:SS : DONE - stop the clock! ############################################################If it DOESN'T work, in particular if you don't see the "tcp 0 0 0.0.0.0:2010" line, you may want to hit control-C and restart the entire process: nebula init.sh bash |
You, and your other players, can point your Artemis clients at the Public IP address (not the one shown on-screen in the remote control).
You're going to need to choose game type, skill level, Terrain/LethalTerrain/FriendlyShips/Monsters/Anomalies etc though, and you're going to need to start the game. There are now 3 ways to do this:
vncviewer 127.0.0.1
OR
Some of the special commands available to you are:
click-SERVER
- would click the "SERVER" button, but
this has already been done for you if you saw
"tcp... 0.0.0.0:2010"
click-game-solo
for a solo game. Again, this has already been done
for you, but is available in case you wish to change the automation
click-game-pvp
click-game-coop
click-game-scripted
similarly available in case you wish
to change the automation
ManyManyMany 7
- this will set up for a Level7 DoubleFront with
Many Terrain, Many LethalTerrain, Many FriendlyShips, Many Monsters,
Many Anomalies - a combination popular on USN evening games.
NOTE: This command assumes you are currently at the default
1/Siege/None/None/None/None/None. Running this command multiple
times will just click the same buttons multiple times, leading to
unpredictable settings.
repeat
- to repeatedly run any of the other commands
below (or indeed any command) - see example below
click-level+
click-level-
to change
skill level. Remember you already start on Level 1, so to get to Level
7 you'll need to click-level+
SIX times, EG:repeat 6 click-level+
click-type+
click-type-
cycle through:click-terrain+
click-terrain-
cycle through Terrain:click-lethal+
click-lethal-
cycle through Lethal Terrain, as above
click-friendly+
click-friendly-
as above for Friendly Ships
click-monsters+
click-monsters-
as above for Monsters
click-anomalies+
click-anomalies-
as above for Anomalies
click-time+
click-time+10
click-time-
click-time-10
to set a
fixed game time, EG for a 45-minute time-limited game:repeat 4 click-time+10; repeat 5 click-time+
click-custom
to configure for a custom game - the details of
which are left as an exercise for the reader
click-start
when you have configured all the above,
and when all your players are ready, to begin the game
click-endsim
mid-game to end the simulation. This
tries to hit "Escape" and "End Simulation" on the server. The
server will hopefully be displaying your Game Results / stats, which
might not be visible unless you were using VNC or
Artemis-Puppy / logger.sh to collect stats for
you.
click-endgame
will quit that "Game Results" screen.
You should be back at the "Server Control Screen" ready to change
level / type / etc, BUT remember the game will be set up with
your previous settings, so you should be modifying your
level/type/terrain etc, you are NOT starting from scratch. In
particular, running ManyManyMany
at this point would
scramble your settings in unpredictable ways, but if you were
previously already on ManyManyMany 7
you could
click-level+
to bump it to level 8 and
click-start
to begin the next game
click-quit
to click the quit button in the
bottom-left. May need repeating 2 or 3 times to quit completely
("Back" then "Exit to windows")
load
will tell you a bit about the load of the
machine, how many connections you have, etc
Some other useful scripts:
nebula TSN-Artemis.ca.pl perl | nc 127.1 2010 | parser.pl
will
set all the names, ship types, and shuttle/fighter configurations for
the TSN Canadian
Fleet. See my main Artemis parser.pl
documentation / code
bash bin/artemis.sh
will attempt to re-run Artemis.
sudo poweroff
and start
another Nebula server from scratch?
Some regular Linux commands that may be useful:
tail -1000f /var/log/cloud-init-output.log
- look at the
last 1000 lines of the cloud-init logfile, and keep watching it
sudo poweroff
- Linux command to completely
shutdown / terminate / nuke the VM. Note that the server has been set
up to shutdown after 3 hours as a "safety net" using an "at" job:
atq
- list all of the commands that have been
configured to run "at" particular times, EG:2 Dow Mth DD HH:MM:SS YYYY a ubuntu
which is almost
certainly the auto-shutdown SHUTDOWN=3hours
atrm 1
- to remove the "at" job number 1 in the above list
From the VNC remote-control, click "In case of emergency: Power Off" in the bottom-left. This assumes you followed the advice for "Shutdown behaviour: Terminate"
If you are SSHed into the VM: sudo poweroff
- again as
long as you followed the "Shutdown behaviour: Terminate" advice
From the AWS web console, make sure you're in the right region (if you forgot, then yes, sorry, you're going to have to check every single region). Click on the VM in the list. Click "Actions", "Instance State", "Terminate".
From the AWS CLI:
aws ec2 terminate-instances --region $REGION --instance-ids $ID
Davis has made a video of the above - Thanks Davis! He takes you through using the AWS web console "Launch Instance Wizard", then use of PuTTY and VNC on Windows, and terminating via the AWS console. Some minor updates:
bash artemis.sh
is now just artemis.sh
aws ec2 run-instances
command to start the VM, with cloud-init --user-data
to
fetch and run init.sh
. As above, you can do this
manually in the AWS web console if you prefer (see Step 3
above)
~/bin/load
which will tell you a summary of load (CPU, memory, TCP connections
to 2010, etc)
click-*
shortcut commands,
ManyManyMany
, and repeat
.
These are all wrappers around xdotool
to simulate X11
mouse clicks (and occasionally keystrokes)
artemis.ini
to set up for an auto-start.
empty.png
and empty.jpg
to
replace all the skyboxes and the little mini-asteroids that show
movement. This looks a lot more boring but speeds up VNC considerably.
wine regedit /?
with no display.
This just makes WINE stop asking pointless questions about Mono and
other stuff Artemis doesn't need
click-SERVER
, every second,
for up to 1 minute, until the button actually appears in the right
place and gets clicked.
click-game-solo
TOKEN
and
CHAN
, it will announce that your server is ready for
players to join.
at
job to
shutdown the server after 3 hours (approx 50c). If you don't like
this, look at atq
and atrm 1
to remove
job number 1
create-sg.sh can configure the "2010" Network Security Group for you.
aws-pricing.pl produces the price list above. It is not guaranteed to be up-to-date or correct, I'm not responsible for any errors on your AWS bill or anything.
A number of environment variables can be set in "Step
3 Start your VM" or if you are re-running manually in step 4. The
examples show NAME=275stock
. If you're using
start.sh
from your own machine, you can set them in the
environment, or in a creds.sh
which will be read by
start.sh
. If you're using the AWS web console, you'll add
them in your "User data" between the |
and
bash
NAME=275stock
- passed by start.sh
via
init.sh
to artemis-dl.sh
to select what
Artemis version and mods you wish to run. Currently supported
options are:NAME= | Version |
---|---|
240stock or 240vanilla | 2.4.0 Vanilla (possibly the last android-compatible version?) |
260stock or 260vanilla | 2.6.0 Vanilla |
260ben | 2.6.0 with Ben's Mod 4.2.12 "2.6.0 Legacy Edition" |
263stock or 263vanilla | 2.6.3 Vanilla |
270stock or 270vanilla | 2.7.0 Vanilla |
270ben | 2.7.0 with LATEST Ben's Mod |
271stock or 271vanilla | 2.7.1 Vanilla / Stock |
271ben or 271benlatest | 2.7.1 with LATEST Ben's Mod |
271ben4212 | 2.7.1 with Ben's Mod 4.2.12 |
271ben432 | 2.7.1 with Ben's Mod 4.3.2 |
271ben434 | 2.7.1 with Ben's Mod 4.3.4 |
271ben435 | 2.7.1 with Ben's Mod 4.3.5 |
271ef or 271eastern | 2.7.1 with Eastern Front Mod |
271tsnrp or 271tsn-rp | 2.7.1 with TSN Roleplaying Mod |
271-tsn-rp-git | 2.7.1 with the latest github version of the TSN Roleplaying Mod |
271-tsn-rp-s-git | 2.7.1 with a special low-poly github version of the TSN Roleplaying Mod (currently broken, WIP) |
272stock or 272vanilla or 272beta | 2.7.2 (Beta) Vanilla |
272ben or 272benlatest | 2.7.2 with LATEST Ben's Mod (Possible torpedo bugs with artemis.ini missing speedTorpHom=3, speedTorpNuk=3, etc) |
272ben4212 / 432 / 434 / 435 | 2.7.2 with Ben's Mod 4.2.12, 4.3.2, 4.3.4, or 4.3.5 (untested) |
272ef or 272eastern | 2.7.2 with Eastern Front Mod (untested) |
272tsnrp or 272tsn-rp | 2.7.2 with TSN Roleplaying Mod (untested) |
272-tsn-rp-git | 2.7.2 with the latest github version of the TSN Roleplaying Mod (untested) |
274stock or 274vanilla | 2.7.4 Vanilla |
274ben or 274benlatest | 2.7.4 with LATEST Ben's Mod (Possible torpedo bugs with artemis.ini missing speedTorpHom=3, speedTorpNuk=3, etc?) |
274ef or 274eastern | 2.7.4 with Eastern Front Mod (untested) |
274-tsn-rp-git | 2.7.4 with the latest github version of the TSN Roleplaying Mod (untested) |
274-tsn-rp-s-git | 2.7.4 with a special low-polygon version of the above (untested) (currently broken, WIP) |
275stock or 275vanilla | 2.7.5 Vanilla |
275ben or 275benlatest | 2.7.5 with LATEST Ben's Mod (untested. Possible torpedo bugs with artemis.ini missing speedTorpHom=3, speedTorpNuk=3, etc) |
275ef or 275eastern | 2.7.5 with Eastern Front Mod version 3.1 |
275ef30 or 275eastern30 | 2.7.5 with Eastern Front Mod version 3.0 |
275-tsn-rp-git | 2.7.5 with the latest github version of the TSN Roleplaying Mod (untested) |
275-tsn-rp-s-git | 2.7.5 with a special low-polygon version of the above (untested) (currently broken, WIP) |
2799stock or 2799vanilla | 2.7.99 Vanilla |
2799ben or 2799benlatest | 2.7.99 with LATEST Ben's Mod (untested. Possible torpedo bugs with artemis.ini missing speedTorpHom=3, speedTorpNuk=3, etc) |
2799ef or 2799eastern | 2.7.99 with Eastern Front Mod version 3.0 |
280stock or 280vanilla | 2.8.0 Vanilla |
280ben or 280benlatest | 2.8.0 with LATEST Ben's Mod (untested. Possible torpedo bugs with artemis.ini missing speedTorpHom=3, speedTorpNuk=3, etc) |
280ef or 280eastern | 2.8.0 with Eastern Front Mod version 3.1 |
280-tsn-rp-git | 2.8.0 with the latest github version of the TSN Roleplaying Mod (untested) |
280-tsn-rp-s-git | 2.8.0 with a special low-polygon version of the above (currently broken, WIP) |
281stock or 281vanilla | 2.8.1, as seen at Armada 2022 (Vanilla / stock / unmodified) DEFAULT! |
281ben or 281benlatest | 2.8.1 with LATEST Ben's Mod (untested) |
281ef or 281eastern | 2.8.1 with Eastern Front Mod version 3.1 |
281tsn-rp-git | 2.8.1-beta with the latest github version of the TSN Roleplaying Mod (untested) |
cos062test or 3062PRE-REL | Artemis Cosmos 3.0.6.2 Pre-Release initial support! Needs UDP 2010, 2023 and 3100, and probably more CPU, (see notes) (not well tested) |
cos066test or 3066PRE-REL | Artemis Cosmos 3.0.6.6 Pre-Release (see notes) (not well tested) |
cos070test or 3070PRE-REL | Artemis Cosmos 3.0.7.0 Pre-Release (see notes) (not well tested) |
cos090test or 3090PRE-REL | Artemis Cosmos 3.0.9.0 "Steam Early Access" Pre-Release (see notes) (not well tested) |
cos100test | Artemis "Cosmos 3" version 1.0.0 official release! (see notes) (not well tested) |
cos101test | Artemis "Cosmos 3" version 1.0.1 official release! (see notes) (not well tested) |
Want others? | Let me know! |
MISSIONS="http://blah http://blah http://blah"
- a
space-separated list of URLs for mission-scripts to be installed.
The URLs must point to RAW XML download links, in other words if you
visit the URL in your browser you should immediately, with no other
clicks, see <mission_data version=
etc
SHIPS=script.pl
- name of a perl script that can set
your ship names. Currently supported:
EFShips.pl for Eastern Front,
TSN-CA-Ships.pl for the TSN Canadian fleet,
TSN-RP-Ships.pl for the TSN Role-playing group ships,
XimCarrierShips.pl for 8 Jump XimniCarriers,
contact me if you have a preferred fleet that you woud like me to
code up for you
EE_VER=EE-2020.08.07
or EE_VER=latest
if you would like to play
Empty Epsilon
instead of Artemis
EE_PROXY=host
or EE_PROXY=123.45.67.89
if you would like to configure as a proxy for EE
HERMES=tsn-rp.lua
- Install and run Starry's Hermes
Artemis wrapper. This allows clients to stay connected if Artemis
crashes, and can also set your ship names. Currently supported:
tsn-rp.lua for the TSN Role-Playing
group ships. Should probably not be combined with
SHIPS=
, to avoid confusion. See the note
above about allowint TCP port 2015 if you wish to connect
Astro's special comms client.
VNCPASS=something
-
passed by start.sh
via init.sh
to
vnc.sh
- the password that will be used by VNC - both
the secure SSH-tunnelled one AND the online web-based one. If left
unchanged, the web-based one can be (ab)used by any of your players,
or anyone who stumbles across it and does minimal research, so
IT IS STRONGLY RECOMMENDED YOU SET THIS TO SOMETHING UNIQUE
SHUTDOWN=3hours
There's a built-in "safety net" that
will shut your machine down if you accidentally leave it running. If
your games are longer than about 2.5 hours you may want to increase
this. Time units can be "minutes" or "hours", theoretically "days" or
"weeks" but I won't reccommend leaving Nebula servers running longer
than about 24hrs 😀
TS3SERVER_LICENSE=accept TS3SERVER_CONF=http://url-to/ts3conf.zip
- If you'd like a TeamSpeak server on the same VM, you'll need to
first run one of your own.
Read and accept the LICENSE file.
Find the "token=" in the log.
Connect to it. Make yourself an admin using that token.
Set up your channels, icons, permissions, admins, etc.
Shut down the server.
ZIP up your ts3server.sqlitedb
and files/
(the whole tree).
Make the ZIPfile available somewhere (Nick can host it if you wish).
Add 9987/udp, 10011/tcp, and 30033/tcp to your inbound AWS Security
Group (firewall) as explained above.
Add TS3SERVER_LICENSE
and TS3SERVER_CONF
to
your UserData.
REGION=us-east-1
- used only by start.sh
to specify what region you will use in AWS.
IMAGE_ID=ami-12345678
- used only by start.sh
to specify which Ubuntu image you will be starting. See the
instructions in the top of start.sh
to find the latest
SG_NAME=2010
- used only by start.sh
to specify the name of the Network Security Group, which should
allow in TCP port 22 (for your SSH access) and 2010 (for Artemis
clients)
SSHKEY=my-ssh-key
- used only by start.sh
- name of an SSH key you already uploaded to AWS
INSTANCE_TYPE=c5.xlarge
- set in, and used only by
start.sh
to specify what size VM to use. See
step 2 and the pricing table
above
TOKEN
, CHAN
and TESTCHAN
- passed by start.sh
from creds.sh
via
init.sh
to puppy.sh
and
discord.sh so your server can tell your
players when it is ready for them to connect, and announce game
results. TESTCHAN
will also get a load of progress info
during boot, a URL to the web VNC remote control, and a message
every 5 minutes to remind you it's running and tell you about server
load.
NEB_WIDTH=800 NEB_HEIGHT=600
set the Artemis.ini
gameWindowWidth
and gameWindowHeight
-
this example W/H make the VNC remote-control work on an iPad!
DISPLAY=:20
set in init.sh
, used in
x11.sh
, vnc.sh
, and
artemis.sh
(by WINE).
You're unlikely to need to change this.
LC_ALL=C
set in init.sh
, mostly to stop
warnings from a bunch of programs that complain about no locale
being set. You're unlikely to need to change this.
Artemis.exe crashes very occasionally, usually at startup, probably no more or no less often than any other/windows Artemis server to be honest 😕
I usually test by cranking everything up to level 11, "Many Many Many Many Many", making a few dozen connections from another server, and turning on the undocumented AI player (press "E" on the server). This isn't quite the same as testing with real players, the connections aren't "doing anything", but it does prove that the server can handle the same number of in-game objects, and push the packets onto the network. It gets less INPUT than a real game but I'm not sure if there's much I can do about that.
We have tested with fair-sized groups of human players too. "Load average" stats during typical USN games show the machine using about 2.5 - 3.5 of the 4 CPUs allocated to it, with no "steal time", so Artemis seems to not be bottle-necked. AWS still uses "powers of 2" CPUs, so 2 would be too few, 8 would be too many, 4 seems to be the Goldilocks "just right".
Rear Admiral Dave Trinh of the TSN 1st Light Division has referred to this as "our blazing fast Nebula server", has presented Nebula at some trans-Canada events, and is hoping to work up to a full 8-ship fleet with dozens of online players.
Starry commented on the speed, performance, and lack of lag ("even from the UK") when playing some of our test games running in AWS Ohio.
Davis at Eastern Front is testing it out, "Good News! Nosey Nick Waterman has found a way to create a server that cuts the cost of a server by A LOT. our first server was projected to cost ABOUT 60.00 a month now with his creation we are running at .15 an hour of play! I would like to thank Nosey Nick Waterman for all the developing he has done for the community's to enjoy this game in this way" [...] "Fully tested and got 1 FULL game played and only cost .25 soooooo yea".
After Nebula USN games, I used to get my Artemis-Puppy bot to post a quick survey (see puppy-poll.sh), which looks a bit like...
Artemis-Puppy
BOT
Thanks Crew! Please rate the performance of this server - it's a bit of an experiment and I'd appreciate feedback:
it LOOK like every letter has at least 1 vote per survey, but these "Fake votes" have been removed from these totals ): A 8
B 10
C 2
D 1
E 0
F 0
|
... so it looks like USUALLY the players agree these servers are "Pretty good" to "Marvellous" 😀
I've not kept a very accurate version history, but some noted changes / milestones are:
2017-12-15 | First recorded Artemis-on-WINE-on-Linux-on-AWS tests for USN |
2018-01-21 | Tested with 2 player ships and 4 fighters for nearly 1hr game |
2018-03-01 | First recorded use with the name "Nebula" |
2018-03-09 | First reporting back to Discord |
2018-03-22 | First archived copy of cloud-init-output.log |
2018-04-16 | Tested at level 11 with 3 player ships and many fighters |
2018-08-02 | First Google Cloud tests - Nebula goes multi-cloud! |
2018-11-14 | First recorded use with Eastern Front (no EF mod) |
2019-02-10 | Tested in us-east-2 for TSN Canada fleet |
2019-02-15 | Big 1hr & 45min multi-ship TSN 4LD Canada games - performance was great! |
2019-02-16 | Added mission downloads especially for nginecho and OpenSpace. Better system load reports. Clarified license / copyright |
2019-02-18 | Davis for Eastern Front made a HOWTO YouTube vid - Thanks Davis! |
2019-02-21 | Upgraded from Ubuntu 16.04 to 18.04 LTS. Ubuntu WINE is now fine (and much faster than winehq). Added support for Eastern Front mod + ships + missions. Doc overhaul |
2019-02-26 | Updated aws-pricing.pl for new URLs / formats |
2019-03-03 | Downloader improvements. Initial support for TSN-RP mods + sandbox + ships. Tidied init.sh, modularised mkclick, keepconf, missions, downloader, SSH config, others. Doc polishing. AWS ping test links |
2019-03-04 | start.sh dumps USERDATA for better debug / re-use |
2019-03-07 | Simplified / modularised ship name scripts. Further downloader improvements. Improved PublicIP detection. Support for list of MISSIONS=URLs |
2019-03-14 | TSN-RP ship names updated. New nebula@ email address. More doc updates. Updated AWS prices. Moved to /artemis/nebula URL to reflect more-than-AWS support. More consistent logging to ~/logs/ |
2019-03-17 | Introduced Web UI / VNC! Fixed VNCPASS (now much more inportant!) |
2019-03-23 | Major doc overhaul, mostly to reflect Web UI, and add this changelog! |
2019-03-31 | Added support for Starry's Hermes, SHUTDOWN=5hours, more reliable (longer) click-* commands, mini-menu for Power Off / Restart Artemis. TeamSpeak support. |
2019-04-11 | Added Artemis 2.7.2 beta (stock). Fixed a SHUTDOWN=Nhours bug. Ran TSN 4th Light Division (London, Ontario, Canada) games. |
2019-04-14 | Added Artemis 2.7.2 beta with Ben's / TSN-RP / EF mods (untested). Upgraded EF Mod to V1.1. Fixed minor html5 bugs in documentation. Fixed covering "back" button. |
2019-04-23 | Rolled 2.7.1 EF Mod back to previous (unspecified) version to workaround crash bug. |
2019-05-01 | The announcement of Nebula's first serious 8-ship test! |
2019-05-03 | Borrowed DaveT's fancy Nebula image from the above announcemt, and installed it into the boot / log screen of running Nebula servers. |
2019-05-10 | Multi-ship PvP Arena mission game |
2019-06-12 | Updated for Eastern Front mod v1.2. TSN-RP ship updated. Some minor tidying. |
2019-06-14 | Fixed an old bug where "apt" was sometimes waiting for interactive input (which will never happen), despite asking it not to. If "APT package installs (may take a minute or so)" actually took MUCH longer, this is why, sorry :-/ |
2019-06-29 | Added EC2Instances.info link, experimented with a1.xlarge (bad), t3a.xlarge (bad), t3.xlarge (works?) |
2019-07-05 | Added support for a bunch of versions of Artemis (2.7.0, 2.7.1, 2.7.2) with a bunch of versions of Ben's Mod (4.2.12, 4.3.2, 4.3.4, 4.3.5, and "latest") |
2019-07-30 | Fixed some obscure new compatibility bug between NoVNC / WebSockify |
2019-09-04 | Upgraded Teamspeak 3.6.1 to 3.9.1 - TS3 now works again instead of crashing. Added some code to start.sh to upload+use your (properly formatted) ~/.ssh/id_rsa.pub if no SSHKEY was specified |
2019-09-06 | Fixed some issues unzipping newer BensModLatest.zip |
2019-11-16 |
Added NAME=tsn-rp-git for latest version from github
|
2019-12-01 |
ADDED NAME=271tsn-rp-s-git for special low-poly server version from github.
|
2019-12-06 | Added front/left/right/read/tac/lrs/info options to mainscreen.pl |
2019-12-11 | Configs and fleet config for TSN Trans-Canada exercise. Worked around another new(ish) bug in NoVNC. |
2019-12-23 | Added support for Artemis 2.7.4 |
2019-12-24 | Lots of TCP Tuning... In our December coast-to-coast TSN-Canada 8-ship game, we had some issues with "hung connections", believed to be caused by the DSL/Cable/Mobile internet providers of the clients, but in any case we had many issues with "We lost our [Helm/Weap/Eng] console and can't get back on", and then we saw many game crashes, and had issues with TCP sockets stuck in FIN_WAT / TIME_WAIT issues that made difficult to restart the server too. Our hypothesis was that "stuck (half-closed) TCP connections" were responsible for most, probably all of these issues. It was hard to completely reproduce in later testing, but with deliberately-broken connections, we could somewhat unreliably reproduce the issues. We can't solve the issues on all the clients without asking can make the server more tolerant. It will now kill off any "stuck" TCP connections within about 12-15 seconds, and should also be much better at restarting, with a much lower delay for the FIN_WAT / TIME_WAIT issues too. Since this tuning, we have been unable to reproduce this type of crash, though obviously there are still plenty of other ways to crash Artemis 😕 We unfortunately CAN'T solve "we are locked out of helm and can't get back in", there's only so much we can do on the outside of Artemis without having access to the code on the inside 😕 |
2019-12-30 | Switched web interface background image the awesome "Nick on Engineering" image DaveT made of+for me |
2020-02-26 | Preliminary support for Artemis 2.7.5 |
2020-02-29 | Some more 2.7.5-compatibility tweaks. |
2020-03-01 | International TSN-Canada multi-ship game on 2.7.5. Rock-solid, no crashes, no noted client hanging, but certainly no client lock-outs. Some lagginess for transatlantic players fixed by reducing server update rate. Overall: FUN! |
2020-08-03 |
Experimental support for
Empty Epsilon
instead of Artemis
- try setting
EE_VER=EE-2020.04.09 with Ubuntu 18.04, or
EE_VER=EE-2020.08.07 with Ubuntu 20.04
|
2020-08-08 | Upgraded from Ubuntu 18.04 to 20.04 by default - see start.sh. Artemis seems fine under WINE, and newer beta EE works (as above). Dropped support for 16.04 - it needed a rather hacky WINE install. |
2020-08-30 | First scheduled Nebula server, where I pre-arranged in advance for a server to start for DaveT whilst I was away, and email him the credentials to remote-control it. Turns out the server started fine, but the email with the credentials bounced, for a totally trivial fixable reason - won't be a problem again. If you need to BOOK a Nebula server, speak to me, I can arrange for one to start even if I'm not around! 😀 |
2020-10-30 |
Added support for Eastern Front Mod 3.0. Made shellcheck clean - should improve security and
stability slightly.
|
2020-11-12 | Made 2.7.5 (stock/vanilla) the new default - about time! |
2021-02-11 | 8 Xim carriers, each with 6 Xim Bombers (no shuttles!) - WOW! 😀 |
2021-03-21 | Some fixes the start scripts |
2021-03-19 | Some TeamSpeak-related tweaks for TSN Canada Joint Forces Operations |
2021-03-31 |
Added Empty Epsilon
EE_VER=latest option. Some minor BASH shell fixes
(found some that were not yet shellcheck clean)
|
2021-04-23 |
Updated some examples from 271ben to
275stock
|
2021-05-01 |
Documentation updates, especially around EE_VER
and EE_PROXY . Improved debug log collection.
|
2021-08-09 | Fixed some timeouts and retries, after spotting a server trying TWENTY TIMES (slowly) to fetch a mission script that wasn't there! |
2021-11-27 | Support for Artemis 2.7.99 |
2021-12-31 | Support for Artemis 2.8.0, and updated nost nebula links to https |
2022-01-03 |
Nebula now fixes Artemis 2.8.0's torpedoTubeLoadingCoeff=1.0
in EF Mod (or Ben's Mod?) until the mod authors add the fix themselves
|
2022-01-28 | Experimental support for 2.8.0 with TSN expansion. Disabled 2XX-tsn-rp-s-git "low poly" variants as this mod can no longer be downloaded from the official source. |
2022-03-06 | Added EF Mod 3.1 |
2022-03-23 | Minor updates and doc tidying |
2022-05-05 |
Now when discord CHAN=xxx and TOKEN=yyy
are provided, game results will be sent to this channel, and
when TESTCHAN=zzz is provided, it also gets sent the
VNC remote control URL. Thanks for the idea Davis!
Also some major tidying / cleaning of start.sh ,
and all scripts all now shellcheck clean again.
|
2022-05-27 |
Some improvements to start.sh to make it more
raspberry-pi-compatible for Davis / Eastern Front's bot.
Some other general tidying of several other scripts.
|
2022-08-03 | Some doc tweaks. Missions and their logs are also now available on your Nebula server's built-in webserver - most useful for downloading mission logs (if any) |
2022-08-06 |
Fancy logo, at last! 😀 Lots of other doc tweaks. Experimental support for Artemis 2.8.1-beta, as seen at Artemis Armada 2022. You will need your own copies of the 2.8.1-beta client, then boot with NAME=281b-stock or
NAME=281b-vanilla or just NAME=281b . Also
available: NAME=281b-ben , NAME=281b-ef ,
NAME=281b-tsn and so on. Do not forget the
b in 281b because it is a beta.
|
2022-11-20 | Had some issues trying to download TeamSpeak server because it was too old. Upgraded code to find the latest instead of a specific version that will drift out-of-date. |
2023-01-21 |
Artemis Cosmos 3.0.6.2 Pre-Release initial support! Make sure your pre-prepared Network Security Group allows UDP 2010, 2023, and 3100 in addition to the usual TCP. You probably want 8 or even 16vCPUs. I am experimenting with 8vCPU INSTANCE_TYPE=t3a.2xlarge , c6a.2xlarge ,
t3.2xlarge , c6i.2xlarge ,
c5.2xlarge , or 16vCPU c6a.4xlarge or
c5.4xlarge . Let me know what works for you!You need more disk space too - increase the default Ubuntu Root Volume from the default 8GB to 15GB. Use NAME=cos062test or NAME=3062PRE-REL .Does NOT support MISSIONS , SHIPS ,
HERMES options (yet), nor the discord
TOKEN , CHAN , TESTCHAN ,
nor the new NEB_WIDTH /NEB_HEIGHT (see below)
|
2023-03-10 |
Artemis Cosmos 3.0.6.6 Pre-Release
See notes above. Use NAME=cos066test
or NAME=3066PRE-REL
|
2023-04-14 |
Tested the VNC remote-control on an iPad! Works almost perfectly, but
only after adding a new feature! Set NEB_WIDTH=800
NEB_HEIGHT=600 to set the Artemis.ini
gameWindowWidth and gameWindowHeight !
|
2023-06-10 |
Improved mod download/fixup code.
Upgraded Eastern Front NAME=280ef (newer "EF MOD SERVER 3.5").
Standardised Artemis Cosmos 3.0.X.Y pre-release download/install.
Added NAME=cos070test or NAME=3070PRE-REL
for Cosmos 3.0.7.0 PRE-RELEASE.
Lots more testing Artemis Cosmos 3.0.X.Y releases, and better
support for it, especially killing/restarting if/when it goes wrong.
Minor bugfixes in HTML / logging / banner formatting.
|
2023-06-27 |
Support for
Artemis 2.8.1, as seen at Artemis Armada 2022.
Boot with NAME=281stock NOW THE DEFAULT!
or NAME=281vanilla . Also available:
NAME=281ben , NAME=281ef ,
NAME=281tsn and so on.
|
2023-07-08 | I'm part of Thom's "inner circle", Working on some later Cosmos 3.0.X.Y releases! Note UDP port 2023 is now used - make sure to add it to your pre-prepared Network Security Group! |
2023-11-12 |
Cosmos 0.9.0 released to Steam Early Accessm and Nebula is ready!
Follow the Cosmos notes
and use NAME=cos090test
|
2023-11-14 | Some Cosmos 0.9.0 debugging for Darrin. |
2024-03-19 | Fixed Cosmos "left shift" bug by "dragging the window right a bit" |
2024-03-31 | Fixed a bug whereby Cosmos would start fine once but never restart (which was complicated, and related to Linux TTYs/PTYs, if anyone cares - some part of WINE/Cosmos/Python was expecting a real "terminal" not a log file for output) |
2024-04-04 |
NAME=cos0913test Cosmos 0.9.13 Steam release! Now needs
over 10GB, so am reccommending 15GB root volume size.
|
2024-11-15 |
NAME=cos100test Cosmos 1.0.0 OFFICIAL RELEASE!
Reccommending c6a.2xlarge or c5.2xlarge, 15GB root volume size,
see Security Group notes above.
|
2024-11-23 | Upgraded from Ubuntu 20.04 / 23.10 to 24.04 LTS (now for both Artemis 2.x and Cosmos), and updated AWS Launch Wizard instructions |
2024-12-01 | Set Large Address Aware flag on Artemis.exe (2.x) - reduces Artemis Out Of Memory crashes, especially when using large missions/mods - Thanks Starry for discovering this! |
2024-12-13 |
NAME=cos101test Cosmos 1.0.1 Official Release!
|
(See also my other Artemis tools)