SPADS AutoHost - Page 4

SPADS AutoHost

SpringRTS Perl Autohost for Dedicated Server

Moderators: Moderators, Lobby Developers, SPADS AutoHost

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

Re: SPADS AutoHost

Post by bibim »

I have updated the SPADS configurations templates (used to build default configuration when installing SPADS) so that they now contain a few presets, for the main game modes: team, duel and FFA.

This means that new SPADS installations will now have these basic presets already defined by default.These presets use the new preset inheritance functionality so that settings declarations are factorized as much as possible, easing maintenance.

As autohost administrator, you can start from these presets and enrich them as you like to add game-specific tuning (especially for the battle presets, which may need some modoptions to be adjusted for duel mode for example).

Two remarks:
  • The convention I chose for these new presets is to use upper case preset names for "full presets" (i.e. presets defining all possible settings) and lower case preset names for "partial presets" (i.e. presets defining only a subset of the settings). This means for instance that doing "!preset duel" will keep current configuration regarding unrelated settings (like "autoBalance"), whereas doing "!preset DUEL" will reset all unrelated settings to the default value at the same time (if changed previously, "autoBalance" will be restored to default value for example). As only "full presets" can be used as defaultPreset, when you use this convention you know you have to use the upper case preset names for default presets. However this is only a convention, you can change all this and follow your own rules.
  • The new preset inheritance functionality makes it really easy to organize and declare as many presets as you want. A good practice is now to keep the "default" preset included by default when installating SPADS unchanged, and create your own new preset inheriting from the "default" preset, containing the changes you need. Then you only have to set this preset as the new default preset by adjusting the defaultPreset global settings. That way, you always have the default SPADS preset as reference in your configuration, without having to duplicate any unneeded setting declaration.
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

I have made quite some updates in SPADS recently, which were mainly done to prepare and improve the efficiency of a new plugin that I was working on: ClusterManager

This plugin is now available (as seen on the official plugins list) and I think this plugin is important enough to deserve its own post here on SPADS main thread. Basically it turns a single SPADS instance into a highly configurable manager of clusters of SPADS instances, notably capable of:
  • auto-creating/registering the required lobby bot accounts for slave instances on the fly if needed (especially if given lobby admin access)
  • continuously auto-scaling to the players' demand by creating/removing public hosts (with configurable thresholds and limits)
  • providing on-demand private hosts (password-protected battles)
More information is available in the README file, the commented configuration file and the new commands help file of the plugin.

This plugin requires SPADS 0.12.20 minimum (only in unstable release for now).
raaar
Metal Factions Developer
Posts: 1094
Joined: 20 Feb 2010, 12:17

Re: SPADS AutoHost

Post by raaar »

Very nice!

The cluster manager looks like something that'll enable game devs to set up matchmaking systems if properly integrated with the lobby.
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

Starting with version 0.12.29, SPADS now supports Python plugins (with either Python 2.6+ or Python 3.2+).

So it is no longer required to write a single line of Perl code to extend SPADS functionalities through plugins :-)

Like Perl plugins, Python plugins support hot reloads and the entire plugin API is available.

The Plugin API documentation has been updated to take Python plugins into account.

The SPADS plugin development tutorials are now also available for Python plugins here.
Mando
Posts: 18
Joined: 10 Apr 2019, 14:47

Re: SPADS AutoHost

Post by Mando »

Omg!
Mando has been notified about this.....

Wished for a full ban of perl devs from the community, but better than nothing i guess.
Poor Mando :(
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

Congrats to Beherith for deploying and using the ClusterManager plugin since a few weeks with great success for BAR :-)

Image

For the 18 instances [teh]cluster[XX] you can see on the image above, only one instance of SPADS needed to be configured and started manually. The ClusterManager plugin took care of the rest: registering/spawning/auto-updating/removing new instances of SPADS automatically according to the current player demand (here it is configured to always keep 2 free instances, that's why you see 2 empty instances, ready to be used by players).
Attachments
bar_battles_20210131.2210.png
(251.56 KiB) Not downloaded yet
User avatar
Beherith
Posts: 5145
Joined: 26 Oct 2007, 16:21

Re: SPADS AutoHost

Post by Beherith »

Its the bees knees of optimal scaling, consistency of configuration and ease of management. Thank YOU bibim'
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

The workarounds for lobby protocol limitations (team and ID numbers being limited to 16) have been improved in SPADS >= 0.12.32, which means the maximum number of teams and IDs allowed by the engine are now supported (250). Previously only the IDs numbers could go above 16, and only if the idShareMode setting was set to "off", which is no longer required. It is now possible to host 32-way FFA for example ;)

Lobby clients can only see the team and ID values modulo 16 in the GUI, but the actual values can be seen using the "!status" command.

Additionally, a new color fixing algorithm has been implemented in SPADS 0.12.34, which tries to optimize color distribution and gather similar colors by team. This new algorithm can be enabled by setting the colorSensitivity setting to "-1". Here are some examples:
Image

Finally, a new CustomTeamColors plugin is provided to use your own colors if the default ones aren't good enough for your use cases. All standard HTML/CSS color names can be used, and one can define his own colors using RGB, HSL or HSV notations.
Attachments
spads_colors.png
(495.48 KiB) Not downloaded yet
User avatar
bibim
Lobby Developer
Posts: 952
Joined: 06 Dec 2007, 11:12

Re: SPADS AutoHost

Post by bibim »

  • New major SPADS version (0.13.*) is now available in "unstable" release.
    "Major version" means it requires manual actions such as updating config files, that's why SPADS will not update automatically. Instead, it will log a message explaining how to proceed and will point you to this major update documentation. That way you can perform this update when you have time.
     
  • Major change: unitsync library interface revamping
    The main novelty of this version is the refactoring of the unitsync interface code on Linux systems. The new interface code is much more flexible and no longer requires pre-compiling wrappers. SWIG and g++ are no longer required to install SPADS on Linux and the installation procedure is greatly simplified. Even after updating system libraries or Perl binaries, it won't be required anymore to re-generate wrappers.
    Thanks to this new interface SPADS can read all map info data again, which makes it possible to bring back the protection against starting games in fixed start position type with too many players for the number of start positions available on the map for example.
     
  • Integration of previously experimental features
    This SPADS version also includes new settings to correctly support all the additional features which were progressively added since last major SPADS release (sept. 2017 !). These additional features were only available through obscure command line parameters or plugins until now. This includes for example:
    1. automatic installation and auto-update of Spring-based engines from any GitHub repository, with support of stable and testing rolling releases (see the GitHub part of the autoManagedSpringVersion setting documentation for details)
    2. automatic sharing of dynamic data between all local SPADS instances: saved map start boxes, bans, lobby certificates, user preferences, map info cache (see this post and this post for details)
    3. an even more customizable vote system, which is now configurable separately for each command if needed, and which supports configurable supermajority, aka "qualified majority" (see documentation of the voteTime, minVoteParticipation, awayVoteDelay and majorityVoteMargin settings). Detailed vote configuration can now be listed with "!list vSettings".
    4. a "sequential" unitsync mode, which prevents simultaneous calls of the unitsync library from local SPADS instances and makes it possible to share the unitsync cache (and thus speed up archive loading a lot)
    5. native support for the !resign command (the "Resign" plugin is now obsolete)
    6. a lobby client JSON-RPC API, allowing lobby clients to interact directly and programmatically with SPADS
Post Reply

Return to “SPADS AutoHost”