SPADS AutoHost - Page 2

SPADS AutoHost

SpringRTS Perl Autohost for Dedicated Server

Moderators: Moderators, Lobby Developers, SPADS AutoHost

User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: SPADS AutoHost beta release

Post by Silentwings »

Awesome job :)
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost beta release

Post by bibim »

The preferred way to report a bug in SPADS is now the issue tracker for SPADS project on GitHub

After reading a PM I just received, I think I need to remind this: even though you are totally free to modify SPADS core code, it is better to avoid it. Indeed, if you edit SPADS core code, you need to disable auto-update so your changes aren't overwritten on next auto-update. Consequently you won't be able to benefit from next fixes/improvements unless you merge each of them manually yourself.
So if you encounter a problem, please report it and I will likely fix it myself in SPADS code. And if you need additional functionalities, you should use the plugin API to implement them through plugins instead of directly hacking SPADS core code. That way you can still benefit from the auto-updates.
User avatar
Nemo
Spring 1944 Developer
Posts: 1376
Joined: 30 Jan 2005, 19:44

Re: SPADS AutoHost beta release

Post by Nemo »

I finally peeked at the SPADS source, and woah, it's perl! good to see a perl hacker around here :)
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

Nemo wrote:I finally peeked at the SPADS source, and woah, it's perl! good to see a perl hacker around here :)
Yeah good ol' Perl, what else? 8)


As an experience to evaluate the SPADS plugin API completeness, I tried to fully integrate SPADS into the specific Springie/Zero-K infrastructure, just using plugins.

Here are the 2 resulting plugins, which allow hosting any type of Zero-K games seamlessly on SPADS autohosts:
  • SpringieExtension:
    The SpringieExtension plugin implements the lobby protocol extension used by Springie autohost and Zero-K lobby. This plugin doesn't do much by itself, it just allows SPADS admins to give specific rights to users depending on their Springie/Zero-K access levels. But this plugin also makes all Springie/Zero-K data easily accessible for other SPADS plugins, which is its main purpose.
  • ZeroK:
    This plugin uses the SpringieExtension plugin to make SPADS compatible with Springie/Zero-K infrastructure, providing most of the corresponding functionalities (Zero-K replay site, Zero-K clan management, Elo ranking/balancing, custom commanders, recommended maps, awards...).
SPADS is now quite mature. It works both on Linux and Windows, it is compatible with all Spring based games, and it has a good set of functionalities with a plugin API allowing anyone to add new features.
From now on I think my work on SPADS will be limited to minimal maintenance.
Last edited by bibim on 05 Jan 2014, 03:08, edited 2 times in total.
User avatar
Jools
XTA Developer
Posts: 2816
Joined: 23 Feb 2009, 16:29

Re: SPADS AutoHost

Post by Jools »

A big thanks for all the work you've put in so far!
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

reminder: SPADS update procedure for new Spring version is available here
dansan
Server Owner & Developer
Posts: 1203
Joined: 29 May 2010, 23:40

Re: SPADS AutoHost

Post by dansan »

I stumbled on this just now: spads has a map vote blocker - thank you so much!!
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

dansan wrote:I stumbled on this just now: spads has a map vote blocker - thank you so much!!
I think this is a plugin coded by BrainDamage, all credits go to him.

FYI, I just stopped running Spads0-5 autohosts as I don't need them anymore personally and there are enough other autohosts available anyway for current player base.
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: SPADS AutoHost

Post by Silentwings »

No problem, it's true that we are very well off for autohosts at the moment :)
Cairus
Posts: 1
Joined: 12 Mar 2014, 12:03

Re: SPADS AutoHost

Post by Cairus »

Aww man.

A 3v3 server with a rank limit was nice to have, but I guess you're right - there are simply not enough players to have normal 3v3s, let alone rank limited games :\
User avatar
Nemo
Spring 1944 Developer
Posts: 1376
Joined: 30 Jan 2005, 19:44

Re: SPADS AutoHost

Post by Nemo »

This is great software, and it makes me really happy.

I was poking around in the internals, thinking of hacking in something to catch special chat messages...then realized that you can do that through The Official Plugin API. Wooo! And that API has great documentation! Life is awesome!

Thanks bibim! I'm making cool stuff with SPADS, and it is lots of fun. super kudos for making something so solid.

edit: one hour of hacking later.

this is so excellent. what an awesome and fleshed out API for plugins. bibim++!
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

You're welcome, happy to see you enjoy working with SPADS. If you need more customization callbacks in the plugin API, don't hesitate to ask as it's quite easy to add them. And if you have made plugins which you think could be useful to other people, don't hesitate to share them ;)

Indeed I tried to make the plugin API as complete as possible, because hacking SPADS internals directly would force you to disable auto-updates (otherwise your changes would be overwritten during next update). Thus your SPADS instances would slowly become obsolete and even incompatible with other components such as SLDB (this is what happened to NOTA autohosts for example, which can't even send game results nor use TrueSkill service anymore due to lobby server changes).
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

I have made some improvements to SPADS recently, especially concerning the ban system: for example it is now possible to create skill based bans, to use comparison operators (<,<=,>,>=) in the ban rules, and to express ban durations in number of games instead of time. It concerns bans configured in the banLists.conf file, bans configured through the kickBanDuration setting, and also dynamic bans managed with !ban/!banIp/!banIps/!unban commands (check !ban command usage examples for more details).

This makes the KickBanNextGame and TrueSkillLimit plugins obsolete.

The !list command has also been improved a bit: it is now possible to list aliases using "!list aliases", and to filter settings listed in "!list settings|hSettings|bSettings|pSettings" output by providing a filter string ("!list settings balance" will only list settings containing "balance" in their name for example).
User avatar
Silentwings
Posts: 3720
Joined: 25 Oct 2008, 00:23

Re: SPADS AutoHost

Post by Silentwings »

Nice work, thanks for this!
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

Since version 0.11.32, SPADS supports multi Spring data directory specification in springDataDir global setting.

The DownloadArchives plugin has been updated in version 0.2 to support this multi Spring data directory mode and to make the download functions easily reusable by other plugins. You can update the plugin easily just by replacing the .pm file and issuing "!plugin DownloadArchives reload" (no need to restart SPADS).
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

A new module has been added to SPADS sources: SimpleEvent.pm

All SPADS instances running lately with auto-update enabled should have automatically downloaded this module. But if you have auto-update disabled or if you have SPADS installations which haven't been started lately, you might need to run the updater manually to download this module. To do so you can use following command (replace <spadsRelease> by your actual SPADS release: "stable", "testing", "unstable" or "contrib"):

Code: Select all

perl update.pl <spadsRelease> -a
(you might actually need to run this command twice: once to update the updater itself, and another time to update all components)
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

Since version 0.11.35e, SPADS uses a Perl module for the HTTP requests instead of wget. This means wget is no longer a requirement for SPADS.

Note for Windows users:
Since version 0.11.36, SPADS loads the unitsync library directly instead of using pre-compiled wrappers.
This means that SPADS is now also compatible with Strawberry Perl (in addition to ActiveState Perl).
Perl version 5.16.2 or later is recommended for both distributions.
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

SPADS is now compatible with macOS / OS X (requires SPADS 0.11.42 or later, only in "unstable" release for now).
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

  • New major SPADS version (0.12.*) will soon be is now available in "testing" release.

    I finally found some time and motivation to improve SPADS multi-engine functionality and ease SPADS installation/administration processes, so here is this new major SPADS version.

    "Major version" means it requires updating config files manually, that's why SPADS will not update automatically. Instead, it will log a message explaining how to proceed and will point you to this manual update documentation. That way you can perform this update when you want, when you have some time.
  • SPADS 0.12 comes with 2 new major functionalities:
    1. Spring version auto-management
      SPADS is now able to retrieve automatically the static Spring binaries required for autohosting, in a non-intrusive way (Spring binaries are isolated in a dedicated directory and have no impact on any other existing Spring installation). Consequently there is no need to have Spring pre-installed on the system before installing SPADS anymore, and changing the Spring version used by SPADS is as simple as updating a number in spads.conf and restarting SPADS (even if this version is not installed on the system yet).

      Additionally, SPADS is also able to stay up to date with any official Spring release: "stable", "testing" and "unstable". The "stable" Spring release is the current recommended Spring version (currently "103.0"), the "testing" Spring release is the next Spring release candidate (currently "103.0.1-1328-g882485f"), and the "unstable" Spring release is the latest develop version (currently "103.0.1-1360-g9329dc5"). When configured to use one of these 3 releases, SPADS will automatically detect when a new Spring version is available for this release and will download/use it. This can be very useful for test autohosts, which are supposed to always host the latest test or develop version of Spring.

      Finally, different versions of Spring can be used simultaneously by different instances of SPADS launched from same SPADS installation directory: there is no reason to install SPADS multiple times on a system anymore, even if you host several Spring versions.
    2. Compatibility with AnyEvent
      It is now possible to use the AnyEvent module (if available on the system) instead of SPADS internal event manager. AnyEvent is not only more efficient, it also brings a compatibility layer which makes it possible to easily integrate a lot of high-level Perl modules (such as high-performance asynchronous web servers...) directly in the plugins.
  • Other benefits of SPADS 0.12:
    • The Perl unitsync interface module is no longer hard-linked to a specific unitsync library path, so there is no need to re-generate this module anymore. This module is generated once for all during SPADS installation (or during first migration to SPADS 0.12+)
    • There is no need to have any Spring game or map available on the system before installing SPADS. The SPADS installer is able to download them when initializing a new Spring data directory.
    • SPADS settings can now contain relative paths, so it's now possible to move SPADS installations easily without editing spads.conf afterward.
    • Obsolete settings and command removed
    (detailed changelog for each SPADS component is available here)
  • Important notes:
    • If you used multi-hosting with SPADS 0.11.* (running multiple SPADS instances from a single SPADS installation directory), then you had a different value of "varDir" for each running instance of SPADS. In SPADS 0.12.*, the "varDir" directory contains dynamic data shared between all instances, so it does not need to be different. Instead it is the "instanceDir" which contains instance-specific data and which must be different for each instance. So for example, when migrating, you can put the previous value of "varDir" in "instanceDir" and restore "varDir" to the default value: "var".
    • The SPADS update procedure for new Spring version has been updated to explain how to enable/disable Spring version auto-management and how to change Spring versions with new system.
dansan
Server Owner & Developer
Posts: 1203
Joined: 29 May 2010, 23:40

Re: SPADS AutoHost

Post by dansan »

Oh WOW - this makes it super convenient to use and maintain.

Congratulations - nice release!!
Post Reply

Return to “SPADS AutoHost”