Original Post — Direct link
19 days ago - /u/Jagex_Stu - Direct link

Credit where it's due, our lovely upload manager Mod Easty put this together, off his own back.

We can only hotfix server script into the live game (and my logic error in the Reaper's Choice interface is client script).

So this was a very clever solution on Easty's part to generate a temporary interface server-side that emulates the core function of Reaper's Choice, to ride out the rest of the week and weekend. Hurray for general-use prompts!

Another reason to love Easty and the Release Candidate team - they accepted the Reaper/Beasts boss requirements refactor I've been developing since Tuesday into RC, despite it completing WIP testing Thursday noon, which is usually past the cutoff for RC requests.

Mad props to Mod Spyro for a very intense QA session to sign it off lunchtime, and to Mod Daze and Mod Asherz who dropped their work to code review it. What a team! <3

Also, just to note - Death rolling raids/ED bosses (other than the 3rd ED boss, which is intentional), was also hotfixed this week. Thanks to Mod Cel for QAing that!

Fingers crossed the Reaper refactor passes RC testing. And apologies for the inconvenience this week!

19 days ago - /u/Jagex_Stu - Direct link

Originally posted by RSHijinx

Dude, you're the best! Have a great weekend :)

Thank you! A lovely weekend to you too. Happy Scaping! :)

19 days ago - /u/Jagex_Stu - Direct link

Originally posted by TrashPandaSpecialist

Another reason to love Easty and the Release Candidate team - they accepted the Reaper/Beasts boss requirements refactor I've been developing since Tuesday into RC, despite it completing WIP testing Thursday noon, which is usually past the cutoff for RC requests.

Can someone explain what this "Reaper/Beasts boss requirements refactor" is? As well as what "RC testing" means (inb4 Runecrafting) I'm OOTL

Sure!

So our development process is we create content in version controlled parallel streams (whether that's a whole project like the Nodon front, a biggie expansion like Menaphos, or isolated patches).

That in-development layer could be thought of as WIP (Work In Progress).

Because historically all developers worked in one dev "stream" called WIP (before we had parallel Perforce VC streams). Which was as crazy as it sounds and didn't scale particularly well as we hired more devs.

Quality Assurance testers attached to those projects test what content/tech developers create in those streams when they're functional. Historically known as "WIP testing".

That's also where we peer code review and implement feedback.

The dev adds release notes to the JIRA ticket that tracks that issue, attaches repro steps and any debugprocs or helpers they've created to assist in testing, and address any bugs or feedback raised by QA or stakeholders.

Then, once QA have confirmed the acceptance criteria for the issue have been met, they either change the JIRA status to Done (in cases where the whole project stream is going to be uploaded to RC in time for a scheduled release date) or Awaiting Copy if it's an isolated patch that could be pulled into an RC build whenever the RC team has capacity.

So, that gets us to Release Candidate testing.

Near the start of a week (shortly after making that Monday's game update happen), Mod Easty (or a similarly wizardly upload manager - Mod Helen is growing well versed in the dark arts, for example) copies changelists for the done project streams and/or patches awaiting copy in priority order into a Release Candidate stream (live + the new stuff that's a candidate for release), and resolves any merge conflicts.

Then RC QA (Release Candidate Quality Assurance) tests each of the submissions to ensure their acceptance criteria are still met after the upload manager's merged them together and are still working as intended without conflicts.

Then on Monday the upload manager sacrifices as many mammals necessary to deploy the new build to live, refresh all the RuneScape servers across the world, and propagate a weekly game update to all of our players.

There's a lot of other steps in the process - localisation, audio, news posts, login messages, livestream notifications, creative services, promotional material, etc - but that's a greatly simplified summary of the core development flow from WIP to RC to live. And we do that almost every week of every month of every year.

I'll answer your other question in a second post, because this is already dangerously huge!

19 days ago - /u/Jagex_Stu - Direct link

Originally posted by TrashPandaSpecialist

Another reason to love Easty and the Release Candidate team - they accepted the Reaper/Beasts boss requirements refactor I've been developing since Tuesday into RC, despite it completing WIP testing Thursday noon, which is usually past the cutoff for RC requests.

Can someone explain what this "Reaper/Beasts boss requirements refactor" is? As well as what "RC testing" means (inb4 Runecrafting) I'm OOTL

To answer your second question, last week I did some tech debt reduction on how boss requirements are defined for Reaper assignments and to display their requirements in the Beasts tab, while doing some player-facing QoL to consolidate how the activity tracker and Slayer counter display Reaper/Slayer task information.

Requirements for bosses had been defined in about 4 different ways over time, as the needs of individual bosses developed - some requirements were data-driven on a config defining the boss' attributes, some as embedded cases in the Beasts requirements but with those requirements not being visible to Reaper assignments, some that were both, some in a different method that overrode the data and substituted alternate requirement text, etc.

I consolidated those boss requirements into a consistent data-driven approach to minimise the steps to define the requirements for a boss and centralise their requirement data, with the aim of simplifying the process of defining these attributes when adding a boss, and reducing data duplication and inconsistency that could lead to bugs.

To cut a long story short (too late), the differences between those requirement implementations were more nuanced than I first anticipated, and they needed further finessing. While they looked redundant at first glance, they had subtly different features that I needed to replicate in the consolidated version.

Notably, several of the boss requirements were actually "soft recommendations", so I needed to add support for that to the consolidated requirement method and distinguish each case appropriately. Because Death uses those requirements you see in the Beasts tab to know if you're eligible to be assigned a particular boss. Some boss requirements are hard locks, and some are soft recommendations.

(For example, some requirements are softly additive - RotM and Kindred Spirits unlock new barrows bosses, but they aren't required to do a barrows run. You want to know on the Beasts tab whether you meet the requirement for that unlock, but you wouldn't want it to stop Death from assigning you barrows. Some are softly conditional - you need a barrows totem for Rise of the Six, but you wouldn't want not having a barrows totem to disqualify you from getting a Reaper task, because you may go buy a barrows totem afterwards. And some are hard locks - you straight up can't fight the corporeal beast until you've completed the Summer's End quest.)

So the Reaper requirements refactor I did this week entailed revising all the boss requirements to distinguish hard locks from soft locks, to regain some of the functionality from before. In the process, also fixed several small but legitimate bugs in Reaper and added various missing soft req information to the Beasts tab.

I suspect that's far more information than you probably wanted!

TL;DR Stu tried to fix the invisible bits of Reaper. Stu broke some of the visible bits of Reaper. Stu feel bad. Stu (hopefully) gonna unbroke Reaper and (hopefully) make it betterer.

19 days ago - /u/Jagex_Stu - Direct link

Originally posted by Legal_Evil

Can you make it possible to get a Durzag or Yakamaru assignment only if your raid lock is open for these bosses and only get one kill needed for the task?

From what I've made out from the Reaper code so far, technically that sounds possible. But my goal this week was to get back the functionality that'd been lost.

Beatsmaster Dirtbag and Yamaharu (musical raids when?) were intentionally excluded from Reaper (including the Reaper's Choice list), so I made sure that came back. Particularly as some players were less than impressed to be assigned raids bosses this week.

I suspect it would be one of those situations that needs its own toggle, as some players may be willing to fight group bosses, but not to get a 10 person team together to do a raid, and resent having to lose a reroll to it.

There'd probably need to be some reward tuning too, even if it's only 1 kill, given it's a longer-form objective.

18 days ago - /u/Jagex_Stu - Direct link

Originally posted by AssHat_

Way to shoutout your team! I wish my work environment was healthy enough to do that

Honestly I love my team and weirdly enough the isolation of lockdown has only brought us closer together. Jagex takes a commendably supportive and compassionate approach.

If you fancy a career change, we're hiring for content developers, plus a variety of other roles!

https://jobs.lever.co/jagex/2bae23de-a6ca-4d09-a48f-b0d81615e6a1