SakeTami
Never Sink
Never Sink

patreon


Behind the scenes: scheduling the pre-release time

The next Path of Exile expansion is upon us and it looks sweet.

I keep coming back for more POE every 3 months and it doesn't seem to get old to me. There's new reveals, theory-crafting, discord discussions etc. I'm always excited for it, but... 

It's also an insanely busy time. This post sheds some light on how we spend the time during the 2 weeks before release and what it takes to deliver an update to FilterBlade.

I've updated the filter for around 30 leagues now so there's quite a bit of workflow behind it.

2 Weeks Before Launch

I'm working full-time as an IT Architect and prioritizing tasks is something I have to concern myself with frequently.

Nowadays, 2 weeks before the league launch we don't know much yet. GGG doesn't provide a lot of teasers and the big reveal is still 1 week ahead. So you might be wondering, what can one do in that time?

As it turns out: Quite a bit. The actual preparation season starts earlier. Way earlier. We develop new filter and filterblade features in the weeks and months before that, so the important question is: "what do we release?".

We evaluate the state of the new features, estimate potential risks and tasks that are still in the pipeline and start finalizing our pick of features. This league for instance we're releasing the auto-updater, reworked sortable list and a whole bunch of filter features and a new style (you can see more on the timeline I posted a few days ago).

Once the decision has been made, the first week is often spent making everything combat ready.  Rigorous testing, poking people in discord, simulating error case, preparing fallbacks.

We make sure to develop all components on a different branch so that we can abort or postpone features if troubles arise. Often features interact with each other. Live updating features might have issues in the filterblade save load system and database adjustments can affect login related features.

In short this week is very technical. We usually spend several hours every day and often the full weekend to get everything ready.

1 Week Before Launch

We finally get to the "league announcement". GGG tends to do these on stream nowadays. Initially I just listen to the whole thing but afterwards we scrap together all information we have and make a basic list of requirements and adjustments for the filter. 

For instance last league could've been something like:

- Currencies now drop stacked. How do we handle these? How many of them drop? When do they start dropping like that?
- Can items drop scourged? Can we filter by scourged mods? What items can be scourged?
- What are all the scourged currencies?
- Can we filter by variable defense percentile? What's the command? How is it used?
- How do we treat all the removed cadiro items on filterblade in saves?
- How to filter all of the new endgame items?
- What are all of the new divination cards? Does the "Unset amulet" drop rare?
- How to treat all of the new flask mods? What are the important new levels for flask filtering?

Answering these questions is priority number 1. It's hard to implement anything without knowing answers like these. 

We compile the first draft of the things we "definitely know" and things we "need to know" and send the questions to GGG. Luckily at this point I have a rather direct communication to them, so I usually get some answers within 24h.

This is not one sided though. I'm doing my best to provide feedback regarding filter command syntax, documentation and examples so that the final information is polished and usable for everyone.

The problem is: these are not final. Game development can be wild and data can and usually does change and many things are not final.

6 Days Before Launch

Here we define exact todos for the upcoming days. All open questions, all things in need of finetuning and testing.

One of my favorite rules is "delay important decision until the point where you know as much as possible about the parameters". 

So with many things, such as tiering, UI and colors I usually delay the whole thing up a bit.

But: New commands need implementation in FilterBlade and FilterPolishZ (the tiering filter updating tool) even if they change later on.

With that data I build the minimal updated filter. This one contains JUST the bare minimum to run in the new league. It's not fancy or great and doesn't feature all the QOL my filter usually has, but it works and tests all of the new features.

I have access to the POE alpha server and if there's an alpha I try to test for an hour or two to see if the information provided by GGG is working. Are the filter commands working? How are edge cases handled? Can I test out some of the new features?

I usually try to not spend too much time there though to prevent spoilers, but distributing the filter among the alpha testers is an efficient way to get things done - plus it really helps them, since the old version often is broken after the update.

5 Days Before Launch

If we have some data already, we try preparing all of that data on filterblade. Tobnac creates new categories in the customizer, my tiering tool is adjusted. Haggis starts working on the loot simulator. We consider practical implications to the save&load system. New commands are refined here and interfaces generated.

For instance last league's removal of perandus was very problematic, due to it being a fairly new thing - a feature getting removed completely, not just not dropping any longer.

We sometimes also deploy a few sneaky updates onto the live filterblade version here, just to see if the new features break something or not, since the site has relatively few people here.

4 Days Before Launch

This is usually where we get the manifesto. This usually has a lot of implications on the item filter. Nerfs and buffs are tracked for the tiering system, reworked systems noted down.

We usually have a large list of todos here on trello, sometimes 20+ points. Tobnac is great with lists and helps me immensely to keep track of all the todos.

We implement all the complex features and changes. We never implement any of those on stream, I don't want to risk any distractions here. 

This is also usually the point where I also adjust old styles, modify presets etc.

This is also the point, where I start trying to get all my real-life affairs in order. I'm super asocial during the league, so I inform coworkers, ensure that things work at work as planned, do calls and try to minimize distractions for the upcoming days and league.

3 Days Before Launch

We finally get access to the semi-final filter data. This often still changes over the course of the next days, but it gives us much more security. 

This is the crunch phase. That's the point where I sit down and replace all of the temporary implementations with more permanent ones. Add quality of life. Tobnac refines the filter customizer. Add icons, comments, review code, write unit tests.

You might think that this step is technical, but it's often much more pragmatic. How do you make things that work well AND are easy to understand. For instance the last league introduced the "variable basetype defense rolls". We called that feature "perfection" because the original name sound like an intentional attempt to confuse the player.

There's often a balance to hit between clarity, editability and precision. 

There's also the patchnotes. Those usually have a lot of keys to how certain items will change in usefulness. Nerfed uniques, orb droprates, availability of items, buffed or nerfed recipes.

2 Days Before Launch

At the end of this day we want to have a working filter. The structure needs to be ready. Everything visual needs to at least have temporary implementations. All technical features need to work.

A lot of time is spent on quality assurance and finalizing implementations. I try to get as much as sleep as possible and consistently fail at this EVERY league. Usually this night I go to sleep at 4 am, but at the end of it we're prepared. 

Even if my PC would burn down here, we'd be able to release a new version, even if the tiering and colors could still use some work.

The Launch Day

You might have seen me stream on this day. You might think releasing the filter this late is reckless, but usually things keep changing and often things get adjusted even during the very last day.

You can't trust users with updates, so the release on the last day usually is the best choice.

I usually take half the day off here. After distributing the final tasks at work and taking care of as many affairs as possible, I take a shower, clean my table, relax for 30 minutes and get myself a cup of tea. 

Then I hop on stream. This is the wild part. Everything done here is usually visual or tiering, but doing this on stream adds the valuable element of understanding user feedback right away and being able to access the public opinion on popularity on certain builds.

Many things done here are a bonus, but the polish really helps the final product. Usually we do the following things on stream:

- Tier new divination cards
- Tier new known uniques
- Add visual styles for all new items
- Introduce some simple QOL features
- Review all existing uniques using the notes from last days to adjust their tiering
- Review all existing fragments/divination cards (or the ones that matter)
- Adjust buffed and nerfed item tiering
- Add the new items to the necessary tiers.
- Adjust the chancing bases.

At the same time we take down filterblade and perform any necessary migration tasks. We have a handy button to take the site on/off-line at this point and we have deployment pipelines to orchestrate updates in minute.

Before the filter is ready I quickly test it on the alpha realm, if this is possible. Just to make sure nothing is wrong. 

Necessary adjustments to presets are also done here, while filterblade is offline to the public.

This part is awesome, scary, hectic and interesting at the same time. It's also the most exhausting thing I've ever done. Only scuba diving multiple times a day exhausts me quite as much. 

Sometimes there are unexpected bugs, problems etc. Managing time and maximizing quality and doing it all on stream is a tricky art. Tobnac really helps me out during this day, but taking over many of the most technical tasks.

When the filter(blade) is ready, we run all of our dozens of scripts, generate new filter versions, styles, update the beta server, ladder, github, live server, adjust news, post on twitter, reddit, forum and... then we lurk for errors and problems

Usually this is the point where I'm so tired that I just host Zizaran and go offline. It's fun to watch 20k people using filterblade at the same time. It took many iterations and improvements to make the website scalable and cost effective to handle this kind of pressure.

Traditionally I also order Sushi. I'd say we're done here, but usually there's one or two issues that happen due to some of the 100k users migrating their saves and some exotic problem happening. Sometimes there's also some larger bugs, but we usually get all of these fixed hours before launch. If I haven't praised Tobnac enough yet, definitely should do it right now.

There's a lot to be said about figuring out what things are actually bugs and what are user errors here, but that's a story for another time.

In any case, I *sometimes* even have the time to decide on a build and finetune the filter for myself. This happens within the last 2 hours before launch.

We then gather in the discord channel and prepare to start together. In most leagues we level as a party. 

Finally it's time to lay back and no-life for the whole weekend. If there's any urgent bugs or errors we'll fix those of course, but this hasn't happened since leagues.

I hope you enjoyed this long write down.

Time to get back to programming for me. 


More Creators