New version
I have now released Spaceships v1.4.1 after more than a month of development. Unlike the previous few releases of Spaceships which included capture-the-flag, sound effects and many graphics improvements, this version doesn’t include any flashy features, with gameplay being completely unchanged since v1.4.0.
This version instead implements a very important feature: An online server list.
Since Spaceships v1.0.0, if you want to join a game that’s hosted on the local network, from the title screen you just click “Play”, “Local” and then click the “Search LAN” button to which the game shows up and you can click “Play”. However if you wanted to play an online game, you need to manually enter the address in a different part of the UI.
This was a huge usability problem that Spaceships v1.4.1 has just fixed. Now you can browse a list of online servers just as conveniently as you can browse locally hosted servers, by instead clicking “Online” and then “Search” in the playing screen.
Gameplay in Spaceships versions 1.4.0 and 1.4.1 are compatible both ways, but not LAN discovery. If you’re playing on version 1.4.1 and a server using a previous version is locally hosted, that server won’t show up in LAN discovery (though you can still play by manually entering the address). The same is true vice versa. This is because the LAN discovery protocol was changed to use the same protocol as online server discovery.
Online servers
For the first time I am hosting some publicly available online game servers. The two game servers I’m hosting are Survival (configs/survival.ron
) and Capture the Flag (configs/ctf.ron
).
Here is a video showing the new online server list, which includes these two games.
Publication
Version 1.4.1 also includes the ability for anyone to publish game servers that they host, so that they’re included on the online server list. You can also create your own independent online server list since Spaceships is completely libre (free as in freedom), with no server-side parts withheld from the user.
See the documentation for instructions on how to do this.
Changelog
Major changes
- Online server list.
- Publishing to online servers.
Minor changes
- LAN discovery protocol updated, now consistent with online discovery.
- Now makes it incompatible with previous versions.
- Distinguishing between players and spectators in the player count.
- LAN discovery GUI simplified, including the removal of buttons that are most likely completely useless.
- Updated game server config schema, renaming
max_players
tomax_clients
andlan_discovery
todiscovery
. - Privacy settings configuring who can join or discover each game server.
- Improved the default security of game servers, blocking connections coming from the internet (for most network configurations this will have no change) by defaulting to the
local
privacy setting. - Created
privacy
command. - Modified
add
command to allow overriding the default privacy setting.
- Improved the default security of game servers, blocking connections coming from the internet (for most network configurations this will have no change) by defaulting to the
- Simplified LAN discovery config through command line arguments, now it configures whether it’s enabled or disabled.
- This was largely replaced with the more advanced privacy configuration.
- Showing waiting cursor while waiting for the game to start, as well as during local and online discovery.
- Restricting servers to just one game id rather than multiple (for simplicity).
- Removed
route
command, replacing it withrename
due to this game id change.
Unnoticeable changes
- Removed undocumented performance logging.
- Calling
abort
on sometokio
JoinHandle
s before they are dropped. - Rate limiting on SERP (Spaceships Extensible Request Protocol) requests.
- Now including SERP status in connection logs when some requests have failed.
- Game server ids, names and descriptions are now limited to being 64, 64 and 512 bytes respectively.
- Compiling release builds without trace level logs.
Bug fixes
- Fixed bug where more players than the maximum can join if some start as spectators and then play the game. Now it’s enforced based on the total number of clients, living up to the new name.
- Fixed bug when the crosshair (or pointer if spectating) cursor sometimes isn’t shown initially when playing a game. This can be on a high latency connection if the player moves their mouse onto some text before the game starts (which changes the cursor while in the GUI).
- Textures are now no longer upside down.