The blog for the bleeding-edge news in the server of Research and Development.

CSRD Update: 28 February 2017

← Blog

As if I was busy doing other things, like college.

Here's a new update with one plugin developed over a couple of weeks, and another that took just over a couple of hours. And some other plugins with updates are here, too.

Spoilers: I mentioned the big things in the last update. Act surprised.

New stuff regarding robots

  • The Robot Bots plugin got a major update, encompassing all sorts of robot things.
    • The big thing is that the plugin now allows them to use animations that they don't normally support. Robots actually look like they're swimming now, for one.
    • As a workaround to disguised Spies always looking like humans, they will be forced to disguise as a random human if there is one on the team they're disguising as.
      • I experimented with using the animation fallback trick to show the right models to the right players. It works, but unfortunately the code gets rather expensive (you have to parent at least four entities to one player for things to look right, compared to the one extra entity required for the animation fallbacks), and it's prone to breaking — the method used is the same method that can attach cosmetics to human players, and you know how Valve is with servers granting economy items people don't own.
    • Spies will now use robot voice lines on their disguise if they are disguised as one. This only really happens if all the humans are on one playing team, so it doesn't impact the workaround previously mentioned. It's just some extra polish.
  • The Bot Weapon Randomizer also got a massive dose of Blast Processing.
    • The plugin now uses a lot more caching to avoid repeated retrievals of lists that don't change often (e.g., the list of botkiller weapons). Not like there was a noticeable perf impact, but it's nice.
    • Besides robots getting a wider range of supported animations, they can now use taunt items! Bots may use one in place of their default whenever they taunt.
      • Interestingly, bots don't actually fire the taunt command, as far as I can tell. Had to do some rather interesting workarounds with player conditions to get it to work.
  • Less excitingly, the Bot Chatter response system got a refresh.
    • The system has been overhauled to load their responses from a text file. The response categories are still hardcoded in, though.
    • Robots can now parse out placeholder strings for context-aware messages.

Other bot stuff

  • The SourceTiVo Manager plugin is back! SourceTiVo will helpfully tell players on the server about people that connect and disconnect from the relay.
    • It also tells spectators that they are in the relay and not on the actual server. These messages don't show up in demo recordings.

Client feature update

  • The Round End Music plugin was replaced with a web-streaming version! This truly is the future.
    • Your existing volume preferences remain unchanged. If you never set any preference or have cranked the volume down to zero, you are still opted out of music, and will not notice anything new or missing. Song volume can still be changed using /songvolume or the "Round End Song Volume" option in the /settings menu.
    • There is no need to set download preferences for music, and they aren't even added to the download list! Which brings us down to only having a list of unchanging items.
      • It'd be pretty cool if I could hook the audio playback system to sockets and move more optional audio to the background MOTD, but that'd take a lot more work. Especially for positional audio. Maybe someday.
    • All you need to do is enable HTML MOTDs and set a volume, and you will now receive audio without having to download it before playing. Make sure you have your Steam Client WebHelper volume up, as well.
      • Don't worry, this isn't a tactic to suddenly blast you with obnoxiously loud MOTD advertisements in the future. I still hate those, and the server costs are still comically low.
    • The backing database schema has been redone to properly segment the song database from playlists. It's not something noticeable by the end-user, but this does make the playlist setup a great deal cleaner.
      • I do have to rewrite the site's song listing script for this change and maybe create some tooling for future song additions, though.
  • Updated a bunch of track information on the new song database. There's fewer tracks that are just titled "Theme" now, and a some more artists have been properly credited.
    • This should mean that new tracks are coming soon(tm).
    • Fun fact: The last new track was properly added in September 2015.

Behind the scenes

  • The server has been updated to support the new Steam Runtime requirements. Thanks, Valve!
    • This involved switching to a libc in Debian's unstable branch. Huzzah, possible breakage.
    • This is all megatool's fault, really. Once that hits stable, we should be able to just drop back into stable Debian.
  • I finally tested my backup restoration process. Successfully. Kind of. There's some kinks that need to be sorted out since the default Debian minimal install requires a non-root account (testing in a virtual machine), but all the files that I needed backed up are recoverable.
    • Files I need, as far as I know. I just added some more things to the backup list like my Gogs database, so clearly I'm not sure about what's necessary.

It should be a crime to serve plugins this raw

Almost a year ago, I had a rewrite of the Round End Music plugin planned with the intent of being cleaner to maintain (e.g., to avoid the shitfest that was synchronizing three ArrayLists that individually contained artist / title / file path).

I tested it for a long while with some connector plugins, but it never really went anywhere past the testing stages.

Since the web-streaming version is looking pretty solid (and is actually running now), there's no real purpose left for the Round End Music rewrite; might as well publish it publicly so it doesn't go to waste.

So, in proper changelog format:

So, yeah. Until next time! Shiny new backend progress is coming along; hope to push that out soon.

(Up you go!)