The Path of Exile runway is reopening for the next Well-dressed Exile Competition! With two categories and tons of prizes up for grabs, now's your chance to show the world your dazzling outfits!
The Well-dressed exile competition starts from the time of this post and ends on Monday 4th July, 4:59 AM PDT.
There will be two categories: Premium and Natural. The Premium category includes the use of Microtransactions, whereas the Natural category does not (with the exception of Skin Transfers). All you need to do is take a screenshot of your stylish character, front and back, and submit it in this thread. To reiterate, Skin Transfers are allowed in both categories.
You may participate in both categories, but we are only accepting one submission per category.
Once your image is complete, upload it to an image hosting site like imgur.com. To make the image visible in the post, paste the direct link to it in the post. Right click the image and click "Copy Image Address". Highlight the link in your post and click the "IMG" button at the top.
Please note that this is not a screenshot competition, so it's not necessary to get your character into a compelling pose or take a screenshot outside of town unless your character requires the use of auras and other effects to complete your look.
Prizes
Both the Premium and Natural categories will have their own prize pools.
Top Three
A custom forum avatar that features the winning outfit
Today we'd like to highlight a few pieces of work submitted to our Community Showcase forum by our amazingly talented community members! Check them out below!
We always love seeing your creations, so if you have any you'd like to share with the community, be sure to submit them to our Community Showcase Forum or our subreddit!
For today's news post we spoke with OmegaAxis to learn about the backstory of creating a series of Divination Cards: The Journey, The Side Quest and The Destination.
Good day/evening.
As you likely saw from the reddit post when 3.18's cards were revealed "The Destination" was the final entry into the series with the "The Journey" and "The Side Quest".
"The Journey", first released way back in Synthesis, was meant to honor a key turning point in my eldest son's life, entry into school. As with any kid, school often represents that beginning to see life outside the house, and really start to experience the greater world. The reward, a Harbinger orb, was meant to represent a key to those adventures. As we know Harbinger orbs were great during their name sake league for filling in your atlas semi-quickly and opening up the beachhead map to see that lovely portal. At the time there were no Harbinger cards as of yet either, so it also opened up that league's content to the core game along with the other cards released that league.
"The Side Quest" would later be released with Blight, and technically was supported by my wife who also plays. Timed roughly 1 year after "The Journey" was submitted, it was meant to snapshot a few occurrences going on in my son's life, notably his ability to only befriend girls from his class. In fact during his birthday he only invited girls to his pool party. This was expertly represented on the card with the artwork heavily favoring the women Masters, and poor Niko fading in the background. The original reward was the Master seeks help prophecy, which of course represents a quick distraction from your main task with master missions. With Prophecy removed it was swapped to a full stack of scouting reports which keeps with the theme of finding alternate activities.
Finally, "The Destination" is meant to represent the true goal of any one's life: belonging. In the image our young hero walks to the sunset with a Karui girl he has become sweet on, ready to start a new adventure together. Our son of course found himself in a similar situation, at the ripe old age of 6. The reward here was meant to represent a capstone item, with a healthy gamble built in. One can only hope for that perfect triple hatred Watcher's Eye with reservation efficiency and corrupted blood immunity.
All three cards' flavor text was meant to feel very Dr. Seuss inspired. It was, after all, dedicated to a kindergartner.
"Oh the places you will go, the sights you will see, the things you will meet."
"You'll never know the things you miss if you keep your eyes closed."
"You may be nothing to everybody, but you are everything to somebody."
Finally, in each card the family dog is also featured, our venerable husky. She is the oldest of all of my children, and still remains a cornerstone to the household.
The goals of each card was just to remember those slice of life moments, and provide utility to the game with the first two, and a big money gamble to the final entry.
With each iteration we were thrilled with the artwork as the artist managed to nail the intended scene from just my few lines of text.
The game has been a joy, still going strong since Domination. And soon enough I'll have my own lootbot with my son playing some cyclone or fire build.
This weekend we are running a Wings and Back Attachment Sale! You can view the full selection in the specials tab by pressing 'M' to open the store in-game. The sale runs all weekend and ends on Jun 06, 2022 6:00 PM PDT.
During the sale, we’re also offering one free Sentinel Mystery Box when you spend points! If you've already unlocked every item from the Sentinel Mystery Box, you'll get Two Twilight Mystery Boxes instead! This promotion is available on both PC and consoles.
Have a look at the what’s in the box below.
Please note: it's only possible to get the free Mystery Box(es) once from this promotion. Making additional microtransaction purchases will not grant additional mystery boxes. Purchasing a supporter pack will not grant the free Mystery Box(es) but spending points from a supporter pack can grant them.
In case you need points for this sale, we'd recommend checking out the Sentinel Supporter Packs!
It's been a while since we last did a Q&A about Path of Exile's game mechanics and we're keen to answer your questions about its intricacies! We'll collect your questions and present the answers sometime in the next few weeks.
The intention of this Q&A is to be exclusively about game mechanics rather than game design or other Path of Exile topics - for example, how specific passives interact with particular unique items, etc. It's unlikely that we'll be able to get to every question due to time constraints but we aim to answer as many as we can.
We sat down with Ben, one of our UI Programmers who fixed the "mangled text" bug that's been affecting Path of Exile for a long time. Because there was some interest in the bug itself, he was kind enough to write up a post-mortem for us. Check it out below!
After announcing we finally found a fix for the infamous "mangled text" bug players have been encountering for the past 6 years, some players expressed interest in getting a post-mortem on this age-old issue. I'd always been interested in trying my hand at a technical details post someday so here you are! The bug has been known by a few different names, referred to by things such as "jumbled", "corrupted" or "krangled" text. Internally we mostly referred to it as being "mangled" so that's what I'll be calling it.
I can tell you that the bug was introduced to the codebase April 25th of 2016 and made it into production in 2.3.0 with Prophecy League. It was introduced by some refactoring of the text engine in order to support the then-upcoming Xbox version of Path of Exile.
The Symptoms
I feel safe in saying that a majority of players encountered this bug at some point over the years, mostly showing up after longer play sessions, but some players encountered it much more often than others. It could affect any text in the game and there were two distinct effects of the bug: One where the kerning, or spacing between the individual drawn glyphs, was either too large or too small.
And another where the individual characters were being graphically represented by the wrong glyph:
Some keen-eyed players had noticed that in the second case, applying a substitution cipher could restore the original text.
Example: "Pevpf`^l D^j^db" -> "Physical Damage", ^ maps to "a".
One thing which always struck us as being odd was that capital letters would have a different (or sometimes no offset) compared to lowercase letters.
The Hunt
The earliest bug ticket for this issue was made on June 4th 2016, created from reports on the forums just after Prophecy's release. The biggest hurdle was we could never find a way to reliably reproduce the bug on our machines, only having it pop up very rarely and randomly. From what I heard we only ever got it on a programmer's machine once or twice, which is key to letting us inspect what's in memory to gather clues as to what went wrong. Until we could find reproduction steps the best we could do was some speculative fixes and hope the issue stopped getting reported. Due to lack of finding anything and it not being a show-stopping issue it got downgraded to lower importance so more time could be given to new features and other fixes.
Many developers (myself included) had made their own attempts at finding the issue over the years, all while more links to user reports would get added every other month to remind us of this puzzling issue. From the report gathering, screenshots and my own experience I could tell the following things:
It affected individual font styles (combination of typeface, size, italic/bold status), rather than particular text displays or strings.
It didn't appear to be a texture generation, corruption or atlasing issue as none of the glyphs ever seemed to be clipped or cut in half. The rare time we got the bug on a programmer's machine also confirmed this.
Logging out would not resolve the issue in most cases, only a client restart.
I noticed we never got a report for this happening on Xbox, PlayStation or MacOS, which ended up helping me narrow it down the most to a particular area of the text engine.
Around the release of Scourge I noticed the bug seemed to start getting reported a bit more often and I started experiencing the bug more in my own play sessions. I recorded most of these occurrences, collected images from players and started building a couple of hunches, but still couldn't find reproduction steps other than "play the game a bunch". A couple of weeks ago I got a bit of a gap in my tasks and decided to make another serious attempt, spending a few days diving fully into the text engine to read through and understand all its intricacies.
The Fix
While deep diving through the text engine code, I finally came upon the following function:
SCRIPT_CACHE* ShapingEngineUniscribe::GetFontScriptCache( const Resources::Font& font )
{
const auto font_resource = font.GetResource()->GetPointer();
// `font_script_caches` here is a map of `const FontResource*` to `SCRIPT_CACHE` values
auto it = font_script_caches.find( font_resource );
if( it == std::end( font_script_caches ) )
it = font_script_caches.emplace( std::make_pair( font_resource, nullptr ) ).first;
return &it->second;
}
For non-programmers: this function takes in a reference to a particular font resource and uses its location in memory as a key (lookup value) for a SCRIPT_CACHE data object, creating a new entry if it doesn't already exist. The function then returns a pointer to the SCRIPT_CACHE object, which lets the function caller modify the stored SCRIPT_CACHE instead of a copy which wouldn't have its changes persisted in the `font_script_caches` map. The SCRIPT_CACHE object here is an opaque data object used by the Windows Uniscribe library (which we only use for the Windows version of the client). The Uniscribe documentation doesn't give insight into what information is actually stored by this, just that the application must keep one of these for each "character style" used. From the effects of the text mangling bug though we can infer that it's used for kerning and mapping characters to glyph textures at least.
Upon first glance this function appears to be doing something completely reasonable, which is probably why the issue never got noticed all these years. You only spot the issue once you realise that font resources can be unloaded by our resource manager when they are no longer in use. The bug then occurs when another font (different typeface, style and/or size) happens to get loaded by the resource manager into the exact same location memory, causing the new font to reuse the old one's SCRIPT_CACHE. Once I had found this I did a couple of tests to confirm my theory that this was the issue. Forcing every font to use the same script cache immediately produced this upon starting the game:
Huzzah! Both types of symptoms on display, which was also confirmation that these effects were from the same issue and not two separate ones. From this I was then able to reproduce the bug naturally by purposefully loading and unloading as many fonts as possible, until you get a new font occupying an old one's memory location:
Now that we know the problem, there were a few ways to go about fixing this: You could move the SCRIPT_CACHE object to belong to the Resource::Font object, delete the old SCRIPT_CACHE whenever the font gets unloaded, or swap the lookup value from the memory address to be instead be based on the typeface, size and styling of the font, which is what actually makes a font unique. All these options work but each has its own pros and cons and should be weighed based on how it fits into the larger systems.
Summary
The actual cause of the bug isn't that interesting in itself, just realising that memory addresses can and do get reused, so you need to be careful if/when using pointers as keys. This bug will stick around in my memory though due to the particularly strange symptoms, being really annoying to track down and even just the notoriety of having stuck around for so long. I'll almost miss it in a way since it's one less "grand mystery" for my brain to pick at. Guess I just need to find the next mystery issue to fascinate myself with!
Thanks to everyone who has reported this and other issues over the years! Software development and debugging in particular can be strange and the smallest of things can produce really weird bugs. Detailed bug reports are always really valuable for building a picture of what could be happening and helps us reproduce the problem ourselves, which then lets us develop and test fixes instead of poking around in the dark.
We went through our Hideout Showcase forum again to highlight some of your amazing hideout designs with the rest of the community! Some of the hideouts featured make use of the new Timekeeper's and Ghost-lit Graveyard Hideouts, both exclusive to the Sentinel Supporter Packs! If you're looking for a new Hideout or need some inspiration for your next one, check them out in the showcase below!
Here's a list of the hideouts featured in the video (.hideout files are available for download in corresponding forum threads):
Today, we have a variety of both concept art and 3D art for items featured in Kirac's Vault Pass! The pass contains item skins and effects for specific unique items that unlock as you complete Atlas objectives! Check out the art below!
If you want to find out more about Kirac's Vault Pass, check out the Vault Pass page here.
Rumi's Concoction
The Devouring Diadem
Void Battery
Ashes of the Stars
Arakaali's Fang
Mageblood
If you want to find out more about Kirac's Vault Pass, check out the Vault Pass page here.
We're continuing to share backstories of Divination Cards created by our supporters. This time we spoke with Quelex about the story behind the Imperfect Memories, a Divination Card from the Siege of the Atlas expansion.
I have played games like Path of Exile since Diablo 1 came out when I was young. I've always enjoyed coming up with different ideas and testing how well they will work. I stumbled upon the website for PoE during its closed beta and thought it looked cool (especially as a person who loves Final Fantasy X's passive tree) but I didn't know anyone that played it. When the open beta came around my friend and I finally gave it a shot and we have been hooked and played every league since.
As with many other cards, the idea for the reward came first. I've always felt it was important to have special mods tied to content (like Incursion or Delve) to keep that content relevant to crafting. Synthesis league added a ton of stats and some you can't find anywhere else. I especially liked +% Attributes from jewelry as an implicit since I love playing Whispering Ice. So why not a 3 implicit synthesised jewelry so that you can try to hit at least one of those chase modifiers?
But there was a snag: You can't make a card for an item that can't drop in Standard. Synthesis was one of my favorite leagues and for over a year it looked like nothing from it would be coming back so the idea was shelved. With Echoes of The Atlas, synthesised and fractured items returned to the core game and so now the card I wanted could be made!
For the theme I wanted to connect something from my life to Synthesis. Synthesis League was a personal favorite, but it had its flaws. I thought back to how my then girlfriend (and now wife!) and I had been apart while she was at college a couple hours away. It was hard being apart but it made the times we did get to spend together on the beautiful campus memorable. Looking back it's easy to gloss over the bad parts. So I settled on the theme of nostalgia and the rest of the card came together quickly at that point. The art comes from a combination of the synthesis decay effect around the edges and a picture of a spot on the campus featuring a very assertive pilgrim goose that always wandered the campus with its duck friends in tow.
Thank you GGG for an amazing game, for adding my card, and for bringing more Synthesis content back to the game! (Synthesis 2 league when?) It's been wonderful to see other contributors bringing more opportunities for people to get synthesised items and maps so that part of the game can live on and be more accessible. And for all of those who made it to the end and have turned in a set: I'm sorry you got resists and mana regen. I'm sure you'll get an extra maximum power charge next time.
As the Archnemesis league ended on consoles last week, we'd like to announce the winners of the Siege of the Atlas Boss Kill Event for our console players! We'd like to thank everyone for participating and congratulate the winners!
PlayStation
The following players were the first to defeat The Maven, The Searing Exarch and The Eater of Worlds in the Hardcore Solo Self-found Archnemesis League on PlayStation:
#1: camuflado_cz
#2: NeuroIsCool
#3: shawn_33179
#4: Shade_AU
#5: Denton860
Bonus Prizes:
First Uber Elder Kill: Denton860
First Shaper Kill: NeuroIsCool
First Sirus Kill: camuflado_cz
Xbox
The following players were the first to defeat The Maven, The Searing Exarch and The Eater of Worlds in the Hardcore Solo Self-found Archnemesis League on Xbox:
#1: ReignerRuler
#2: ImToxic8998
Bonus Prizes:
First Uber Elder: ImToxic8998
First Shaper: ImToxic8998
First Sirus: ImToxic8998
Thanks again to everyone who participated! Don't forget, we're running another Boss Kill competition for our Sentinel expansion that's also for console players! This time, the event is being run on the Sentinel SSF league (non-HC). For more information on the competition, check out the original post here! Good luck to everyone participating!