Friday 29 March 2019

Dragon Age(d): 10 Years Later

A decade after the first Mass Effect was released, I went back to the series to see how it held up. In the same vein, it's been almost 10 years since we first got to step into the Dragon Age setting (yes, Thedas) and I've just completed a full (all available quests in a single run) end-to-end replay of each major campaign in the series (Origins, Awakening, 2, Inquisition). Two months well spent.

Extremely broadly, Origins [~45 hours] and the full expansion Awakening [~20 hours] brought BioWare back towards their Infinity Engine early prime, right down to the interface on PC (which allows for an overhead camera for tactical decisions) and real-time with pause combat, all while retaining the more modern cinematic presentation and focus on character relationships (the prototypes for which started in Baldur's Gate and have become increasingly prominent in the more recent BioWare oeuvre).

The rushed full sequel, Dragon Age 2 [~35 hours], completely drops the tactical perspective (and PC-only interface) while retaining most of the mechanics and narrative focus. It doesn't feel great to click through 720p console UIs on a 4K PC and the budget constraints are everywhere, but it's a reasonably tight RPG due to the limited scope (not as compact as Awakening but also not feeling like an expansion) - the updated engine may be the same tech under the hood but the new UI does give it a clean feel, as does the forced closer camera and renderer tweaks. DA2 introduced many quality of life tweaks (a button to run to & auto-collect loot is huge) that make going back to Origins and Awakening a bit of an ask, much like going back to Mass Effect 1, but also it's hard to not applaud how much the first game got extremely right.

Finally, Inquisition [over 100 hours] went big (budget) and tried to please everyone: constructing the largest campaign by some margin (and unfortunately unlocking a lot of the MMO-y fetch quests early on, which turned off some completionist players); a tactical view returns while moving towards more of an action combat style (somewhat negating the value of the perspective, which also can no longer be used to play the rest of the game); generally more MMO-y sensibilities for side quests and map layout abound; gearing all party members came back (missing in DA2); but goodbye spending attribute points when levelling up. The new rendering engine (Frostbite) was also a radical departure and in 2019, I can't say I'm totally convinced the massively higher requirements (per pixel rendered) justifies the visual upgrade (clearly a more modern approach to materials and shaders, but plagued with aliasing issues you can't brute-force around yet at 4K & the new tech had teething issues with animations, which you can also see striking Andromeda several years later).

Start at the beginning...

Jumping into Dragon Age Origins, it's not doing badly for a game from 2009 (that probably only had a mid-tier budget for EA at the time - especially as a game that started out development before the BioWare acquisition). No one was trying to make this within a crowd-funded budget, even if CRPGs aren't known for bleeding edge visuals. The one thing that you do have to live with is that the PC interface was never intended for 4K screens, certainly not for beyond-4K internal resolutions which clean up any light shader aliasing.

The classic Infinity Engine games it harkens back to have all had their re-releases in more recent years that have basically fixed up their interfaces to work at higher resolutions but Origins is new enough to not get that work and also didn't have the best modding options so it doesn't have the fan-made UI overhaul of a Bethesda game. There is a mod to change the font sizes, which also boosts some of the UI boxes to take up the full screen and basically makes it something you can live with but it's not the best experience. Like Mass Effect 1, it feels ripe for a remake (Resident Evil 2 style) that retains the character and progression while rethinking some design decisions and updating the narrative details towards modern expectations.

It initially felt strange to play a "modernised" attempt at "Baldur's Gate, but without the D&D license", now we've had so many teams making explicitly retro RPGs (eg Pillars of Eternity) that are takes on those Infinity Engine games. There have always been other WRPG series, like (Divine) Divinity, that never totally left the classic mould, but Origins feels like it comes from a less certain time where BioWare knew they wanted to modernise a classic design but weren't quite sure what that meant. 2009 was before a consensus formed on what modern audiences wanted from their retro-compatible WRPG while in 2019 you can't throw a stone without hitting a crowdfunded RPG directly evoking those classic games.

Despite offering the classic perspective that removes the roof and offers great tactical control in battle, I quickly locked to the closer 3rd person view to enjoy the skyboxes and character details anywhere outside the most hectic of battles. It's not the up close shooter that Mass Effect always was, but there is the extra layer of immersion when the camera gets down towards character eye level. The basic programmable team AI, ranking abilities and setting preconditions to activate, actually did just enough to allow me to mainly play my character and let them get on with it (again, reducing reliance on the overhead view that I'd originally used to play the entire game). One of the more amusing defaults (which sticks throughout the series) is keyboard turning - WASD doesn't include strafe options unless you rebind it. For a series that increasingly aimed for fluidity with a controller, it feels extremely dated to default to the old MMO standard that was widely derided even back when WoW launched in 2004.

But outside of the perspective, everything feels just like the classic BioWare WRPGs from a previous era. Yes, cynically this can be viewed as trying to make a new D&D setting without the license (the same way Mass Effect builds a sci-fi setting without the Star Wars license) but the world is rich enough to support it. You travel an overworld map engaging in random battles between the detailed (fake magical middle ages) rural & urban quest hubs and the more combat heavy dungeons. As you play, you collect companions and, in the modern style, decide who to party with and eventually do affinity quests with. Banter is on tap no matter who you bring along and sometimes new dialogue options unlock due to who you bring along on a quest. The scale is epic and nations may rise or fall based on your decisions while most of the actual quests retain a very human scale (even surrounded by demons and the rest of the fantasy accoutrements).

I really appreciated how much was added with a whole new cast of companions within the shorter Awakening campaign - fleshing out concepts and themes from the main campaign while still being a meaty narrative itself. After Origins concludes with the definitive defeat of the Big Bad, there could have been a hole in the expansion but it's filled well; even if BioWare then completely drops the ball and have to plagiarise their own work during DA2's DLC to set up a new main antagonist for Inquisition (it's not like BioWare don't resurrect characters you can optionally kill elsewhere in the series). The other Origins DLC chapters are far more slight, adding [companion] backstory (some with heavy location reuse) and an ultimately disposable capping story in 1 to 2 hour micro-campaign chunks. Even these least satisfying blocks were something I enjoyed though - at no point does the storytelling feel like it lands totally flat.

However, replaying it now, the Person of Mass Destruction trope feels so so tired; not helped by it being a core theme for the entire series. It was always tired, but it's not getting any better with age (mine or the game's). We can do better than a marginalised and brutalised subgroup who are actually as dangerous as the dominant group claims and so it's morally gray if they really do have to be exterminated (or lobotomised) the second they become "too dangerous". Considering the real world oppression of people considered sub-human with super-human strength etc "justifying" violence then we should expect more from these stories - this was a brand new setting, it could have been about anything. And Dragon Age loves to play within this trope, often being pretty inconsistent on how it plays things like Blood Mages in what seems like an attempt to let the player character choose a morality but often it just leads to NPC dialogue and choices that paint a deeply inconsistent tone and characterisation (even when the player tries to pick a consistent stance).

I'm not expecting Dragon Age 4 to come out and completely deconstruct the trope but it would be nice to step a bit away from the Templars vs Mages focus that is never far from the core of the series. In spots Origins and Awakening are probably actually the best the series is on this front, often because of how self-contained many of the chapters feel and how you play part of an outsider cult. I started out as a mage for this playthrough (one of the several opening origin acts that give the subtitle) and was pleasantly surprised whenever it got referenced back through the main campaign. Clearly that's a lot of work, making many playable origin stories and then hooking them all into the main narrative, but it's possibly less work than is required in the sequels to hook in player choice events in the previous games. Throughout those origins and the wider game, there's some very smart reuse of locations; which brings us on to...

Travelling to Kirkwall (not in Orkney)

Of all the Dragon Age campaigns, this feels like the one most in need of a critical reappraisal in 2019. Although by no means panned on release, DA2 did not get the same gushing praise that met the rest of the series and so is remembered as the weak middle chapter. There was a player backlash (to the production values? to the total focus on characters? to devs talking "diversity" in interviews?) and corresponding oscillation of DA2 super-fans pushing back but my recollection of 2011 was mainly of a muted reception and jokes about how the entire game took place in a single location with one (cave) dungeon because it was developed behind EA's back (in case it's unclear, part of the joke is how ridiculous that would be).

Coming directly from Origins and Awakening (we'll consider that long enough to be its own thing rather than "DLC" - much longer than the hour or so for each of the Origins DLC offerings and maybe half the length of Dragon Age 2) then it's extremely apparent that DA2 was pushed out the door not much more than a year after production started (that one isn't a joke). As I've commented on Mass Effect, BioWare can sometimes do a touch too much copy & paste with distinctive (and theoretically unique in the fiction of the game world) art assets but the constraints for making DA2 really push that into a whole new realm. As the devs have since said in interviews, asset reuse isn't the problem, it's the lack of smart reuse that quickly becomes apparent as you get deeper into DA2.

Reuse is meant to clone meshes or props, not lock a player into repeatedly walking the same 20m loop and telling them they're on an epic journey - if you don't look carefully then lots of trees do kinda look the same but near-exact reuse at a floorplan scale is immediately uncanny to most players. It's an area where procgen or tileable block construction in the tools pipeline (eg Sucker Punch using hex tiles to rapidly assemble the inFamous map) can quickly help you bake variety into your floorplans (even without going full rogue-like procgen and randomising the elements for each user - just a tool for rapidly creating many similar but distinct floorplans); the absence of it is immediately obvious and disappointing. When you're going through cave after cave between narrative payloads then a varied skybox or surroundings helps offer something beyond the mechanics of combat to the player (just ask Bungie).

The use of a single city with day/night and several acts (progressing various things over several years, not unlike how some of the Origins areas are reused, especially showing partially destroyed variants) is great; I have always been a fan of attempting Warren Spector's idea of a One City Block RPG. But when the story calls for dozens of different caves and other areas, if you've only built two very distinctive cave layouts that have a few doorways that can be closed off to change the walking lines, it's too distinctive to work. Reuse happens everywhere else too, creating additional floors to areas that just copy floorplans which wouldn't layer on top of each other at all. There are probably fewer dungeon maps in the entire of DA2 than there are just random encounter maps in Origins, which is an easy thing to ding the game for and many reviewers did. Going back, I'm less annoyed by it (expectations are everything, I knew it was coming for a replay) but it's such an unforced and obvious error (of budget or planning).

The three acts tie DA2 together better than Origins, which generally lacked the feeling of structure that even Mass Effect achieved (around a similar broadly linear narrative structure with a meaty central chunk where several locations could be handled in any order + side-quests for flavour which also created the feeling of non-linear choice). Once again, the production schedule unfortunately robs some of the feeling that this was a choice rather than just not being able to get any more done to make it feel sprawling. Things like the random side-quest drops that have no narrative hook and generic "thanks for returning this" barks when handed in feel like they could and should have been expanded to a proper dialogue or cut as busywork. I'm not convinced by the acquisition of invisible armour perks for the single item of clothing every companion wears (with a couple of new outfit unlocks for plot progression) in a game that's still very much about checking the loot that drops from combat and finding chests. Especially as this time through I knew I should just grab the armour sets for Hawke, so there was absolutely no dressing up or finding cute clothing combinations to be had.

The back-to-back nature of my playthrough meant I moved from not really liking Anders but enjoying Justice in Awakening to just straight up not really caring for new Anders. It's a shame that I still don't really appreciate the arc of such a core character to this story but there will always be a companion or two whose motives and arc isn't all you want of it. I think there are better ways of doing the righteous terrorist/freedom fighter but I'm not sure I could do better while still weighed down with the Person of Mass Destruction trope. My joy at being propelled through the events of the story with most of the characters outweighed what reservations I had around certain plot devices or tropes, which isn't to say I never cringed at a scene or few.

Some of the writing around romances feels of an era we're trying to escape (especially setting up a binary of either completely naive or very promiscuous). Ultimately it gets immature-attempting-maturity in spots, much like when the Mass Effect writing falls down. A lack of outfit changes doesn't help when characters go into melee combat with little more armour than a Dead or Alive character. The entire "hardened" romance chains, gifts to buy affection, etc (which continue here barely changed from Origins) comes over as from an era before serious criticism had really pushed progressive teams to try to tighten up their attempts at what that messages to players. Some choices are still up in the air: should all romanceable characters be implicitly bisexual (DA2) or risk the Mass Effect 2 issue (where the Paramour romance options demanded a straight protagonist) by defining sexualities more concretely for party members (and having limited bandwidth to write full romance dialogue chains). I can't say I preferred where Inquisition went the other way, but I would like at least some range of queer representation and for all characters who are attracted to either Hawke to be more clearly bisexual during a single playthrough. There sure are a lot of bisexual men in this series who give little indication of that unless you play two complete playthrough with different genders.

I don't actually remember liking DA2 back in 2011 nearly as much as I did on this replay. Maybe that's playing Origins and Awakening with the closer camera so not being a shocking change or about better expectations for what DA2 was trying to do with a smaller scope than Origins. But it's real good. My issues with Mass Effect 2 around forgetting the impending universe-ending events and doing a smaller character piece are less of an issue here (that said, both ending are still kinda a mess in spots). Thanks to how Origins resolved, there's space for a new protagonist to have a more reactive story based around a cast of characters over time in a single city state (where the Mass Effect series didn't have that change with a single protagonist for the original trilogy despite being just as happy to actually kill off the protagonist!) and DA2 really pulls that off in 2019. It's not unparalleled storytelling but it's pretty good where I found it.

After 3000 words, we're going to take a break before wrapping this up. In part two of this blog series, it's time to dive into by far the longest Dragon Age campaign to date. The Inquisition, teased throughout the framing of DA2's story, takes centre stage...

Finally, if you've been enjoying this blog for a while, why not help me justify spending over 200 hours replaying old games recently and writing up my thoughts by *jangling tip jar* becoming a patron.

Friday 15 March 2019

Good Enough Meets Extremely Fast

I've been playing a lot of games in the last month that are getting on for a decade old. Some of that is for a longer post (series of posts? my notes, not yet having finished the final Dragon Age game, are 3500 words) but I wanted to do something shorter about how these games (that exported their artist assets expecting most users to play them at 720p) stand up rather well on modern systems. There may be a touch of riffing on this recent blog post too.

Almost exactly a year ago I was asking similar questions to that linked post, but about the asset fidelity arms race and the last decade of progress measured in pure asset comparisons (that is, taking eg a 2011 game and comparing it to today by rendering both assets with roughly equivalent to today's real-time renderers). Playing through this series of games from 2008 to 2011 in quick succession was a great visualisation of how those old assets hold up in 2019 with 4K60 output.

None of the screenshots that I'm embedding here are doing anything fancy like injecting alternative shaders or swapping out the stock assets with higher poly community mods or more detailed textures. Dragon Age 2 has the "High Resolution Texture Pack" (advertised as for GPUs with a massive 1GB of VRAM) which is an optional official download on Origin but I'm pretty sure that was released on the same day at the base game (and is official anyway). Everything was captured looking for a ~60fps experience so it's not a DeadEndThrills approach of turning everything up to 11 even if it broke the framerate and then capturing and downsampling purely for the photography. These are faithful captures of the internal framebuffer for the game as played.

If you click through to the screenshots in this post, you'll notice some unusual resolutions involved because today DSR/VSR (super-sampling at the driver level - exposing fake higher resolutions to any game and then downsampling for output to the actual screen) is an absolutely stock technique. Something like a modern GTX1070 (my card will turn 3 years old next quarter - so not even that modern) has more than enough power to turn on any existing AA technique (MSAA hadn't totally died to deferred renderers in this era; FXAA etc had started to be imported from the consoles) and then also boost beyond 4K to help control some of the shader aliasing. The shaders aren't that complex so there is plenty of performance to play with and often no one is getting fancy with HDR to really explode everything (compared to games around 2015, which seem like they're going to be a dark period of high shader complexity but not great management of artefacts & defects in edge cases; not to mention not having good enough temporal anti-aliasing yet while most everyone had migrated to deferred where MSAA isn't viable).

Despite expecting most users to see these decade-old games on much lower resolution screens, the push around this era was for good enough textures for up-close inspection. What you get when the textures are good enough up close is that you've now got some decently detailed textures even for 4K output at medium-distance. I'm not going to say all of these games are perfect, as you do clearly get some muddy visuals even in the mid-ground in some places (especially stuff like a large flat repeating floor texture etc). But it holds up surprisingly well and even the primitive dynamic shadows are often so primitive as to be easy enough to ignore (if you can't brute force it via poking at config files and demanding the GPU just throws a GB at huge shadow maps). The several years of continued development from where Half-Life 2 (including Episode 2 refresh) had left us in terms of getting a reasonably coherent result while juggling multiple different systems (this is before a unified PBR push) is often impressive. You can nitpick the results, just as you can often point to comically low polygon density you'd not see today (outside of maybe indie games and even those often push their polygon budget quite well), but it's only a few spots rather than the entire scene looking out of place on a modern system.

While clearly miles from photo-realism, there is enough detail to know what everything is meant to be and for things like a poster or sign to get close to being the actual poster or sign without lashes of artefacts or having to use a special rendering technique to achieve it (here I'm thinking of how well Doom 3 did the in-world UI stuff back in 2004 being the exception even today). There is nowhere near the level of detritus you would see in a real world, but there is enough to make it look lived in. Those props look close enough to what they're meant to represent that we're not in the situation of years previous where it was a muddy texture and often a mess of polygons that you had to work at to understand once looking at them at a far higher resolution than was originally intended. There are enough assets that there is cruft on a desk rather than only the props required for the interactions and one fake bottle to avoid the artifice totally collapsing once interactable objects started to get glowing highlights or arrows above them.

Also the lack of PBR in this era for things like human(oid) characters means the artists seemed to be more free to push the more cartoon-y stylish approach (before you defaulted to starting out with a skin shader with sub-surface scattering and worked from there) which certainly helps avoiding the uncanny valley. Some of the animation systems from this era are clearly reaching towards a fluidity the tech did not make easy and the animators were not given the budget to hand-tweak them to perfection from whatever performance capture they may have started with. I'd say it does show an "emotive gap" from looking at the puppetry onscreen trying to convey subtle emotions via expressions but often not quite getting there - but even today this doesn't seem like a totally solved issue and I find the difference from studio to studio is far more significant than simply looking at the progression of technology. Around this era of games then we've got stand-out stuff from Naughty Dog showing you could do that stuff really well with the technology back then.

I am still energised by rendering questions. The introduction of real-time ray tracing is such an exciting time to be thinking about the next generation of engine designs (and even just what the new console generation will bring in terms of a baseline performance we can expect many many millions of users to have reasonably affordable access to). Even the more invisible things like a continuing focus on code quality and reliability engineering, with several studios talking about how they're looking at using Rust to really enforce higher coding standards (banning some patterns of design as too risky, which the Rust borrow checker enforces at compile time) in their work.

How do I feel going back a decade and enjoying all these games that still look good enough today (thanks to the extremely fast GPUs we've got)? Well it makes me think about what we're working on today and the hardware we'll be able to use to replay it in another decade. What slight visual deficiencies we'll be able to brute force around; just how detailed things might look on 8K TV panels with amazing contrast/brightness options (and maybe some of that Deep Learning algorithms tweaking the game output to enhance it without the horrible results from previous generations of "TV enhancements" to the input signal) or with VR headsets that sit us inside recreated 3D spaces and give us effectively even higher pixel counts (via head movements allowing us to be truly surrounded in a scene and 4K VR panels).

Games have longer shelf lives than ever before and can continue to grow even long after we've stopped actively working to develop them. We should probably think about making sure all our sliders can be unlocked to go up to 12 so that players in ten years can continue to poke the settings up as they get the hardware to run it.