New version

Over the past few days I have been working on many features that allow further customisation of Spaceships gameplay. These main features are the introduction of portals and effect zones, which the server can choose to place in the world.

Portals are used to teleport from one area of the map to another. The server can choose whether portals are bidirectional or only teleport/receive players. The server can even have multiple portals teleport to the same place, or have one portal have the player teleported to many different places at random. The server can also choose to rotate the player’s velocity when they leave the portal and apply a change in velocity.

Effect zones are regions in the world in which any players in these regions get an effect applied to them. These effects are the same as those that powerups provide players (except teleportation), being movement speed, reload, regeneration, bullet damage and a forcefield.

Both of these new features have been added to new server configurations that I created and put in the configs/ directory. These new configuration files are effects.ron, fast.ron, hsr.ron, instant_kill.ron, portals.ron, portals2.ron, scarcity.ron, slow.ron and spray.ron.

Screenshots

Here are some screenshots of these new server configs.

High-speed rail config (). Effect zones (). Teleportation between two portals ().

Incompatibilities

Versions 1.0.x and 1.1.x are incompatible with each other, so a client playing on v1.0.1 won’t be able to join a server on v1.1.0 and vice versa. This is a result of the change in the protocol used for gameplay.

Documentation

I wrote some more documentation for the game, about how to configure a server and the server console. This new documentation in addition to some of the previous contents of README.md is available at https://spaceships.me/docs, or you can download a local copy of the documentation at https://spaceships.me/download.

Changelog

Major changes

  • Gameplay protocol improvements. This is the underlying feature that portals and effect zones depend on. Further details are listed below.
  • Portals and effect zones implemented. I have implemented a small sample of what’s possible in the new protocol in the server code.
  • New server configs created.
  • Documentation.

Protocol changes

Since 1.0.0, the gameplay protocol has been updated with two new features.

The first feature is to allow the server to place arbitrary rectangles of arbitrary colour in the world, known as “special areas”. The purpose of these is to indicate to the user the location of portals, effect zones and anything else that might be added in a future 1.1.x version.

The second feature is that the server can arbitrarily apply effects onto players with arbitrary duration and intensity. Previously these effects were limited only to the collection of powerups.

Minor changes

  • Creation of reload command in server console to easily remove and add server configs.
  • Right-clicking (or whatever you bind it to) in the world prints the position in world and block coordinates. This is useful for writing server configs in which you need to know the coordinates of any portals, effect zones, etc you want to add.

Bug fixes

  • A player collecting two ammo crates during the same update now gets the ammo from both crates.
  • The world border is now rendered if one axis is infinite while another axis is finite. Previously it wasn’t rendered.
  • When no valid spawning positions can be found, the server code no longer panics and instead errors nicely.
  • When the game ids in the routing table of a game server change, LAN discovery information sent out is now up-to-date.
  • Many more. Making sure that every single bug is listed here is too much, so only the relevant ones are listed.

New Lemmy communities

I have created two new Lemmy communities, !help@lemmy.spaceships.me to ask for help of if you have any other questions, and !meta@lemmy.spaceships.me for discussing this Lemmy instance.