The Making of Oddworld: Stranger's Wrath HD
The inside story behind the superb PS3 remake.
The unfortunate decline of backwards compatibility on the current generation consoles has been mitigated somewhat by the rise of the HD remaster - the chance to revisit select gaming classics from years gone by, revitalised by the embarrassment of raw power on tap from the Xbox 360 and PlayStation 3. High definition resolutions, enhanced artwork, improved audio, smoother frame-rates, stereoscopic 3D support... a good HD conversion sees the original game being handled with respect in its transition to more powerful hardware, accepting that sometimes a 720p facelift alone isn't enough, and that without care and attention, can actually diminish the impact of titles designed for the low-res CRT era.
Probably the best example in recent times of HD remastering "done right" is Just Add Water's conversion of the vintage 2005 Xbox exclusive, Oddworld: Stranger's Wrath. A beloved classic from a well-regarded developer that shut-up shop somewhat prematurely, the PS3 game sees all aspects of the original classic restored and upgraded, based in no small part on the original assets, designs and concept work created by Oddworld Inhabitants themselves so long ago.
In this special Digital Foundry interview, we talk with Just Add Water CEO Stewart Gilray and technical director Steven Caslin. We chart the origins of the deal to bring back the Oddworld games, the team's approach to the HD remastering process, the assets they had available to work with in reconstructing Stranger's Wrath, and the PS3-specific technical enhancements made to the game - many of which are scheduled to be rolled back into the existing PC game in a forthcoming patch. And we also find out the trials and tribulations JAW has endured in trying to get what was originally an Xbox exclusive published on the 360...
"In the [Oddworld] games it's about big corporations taking control of the little guys and generally screwing with the indigenous species - something which can be applied to the world we live in today."
Lorne had been looking at various things, including pairing up with other US companies under the Oddworld banner to work on a larger scale project, the thinking being that Oddworld Inhabitants would create a movie based on their own project but leave the game development to another party. This didn't come to fruition, which would have been back in 2007/2008 I think. Since then, they've been working on something completely unrelated to Oddworld.
A mutual friend of Lorne and I introduced us in 2009 at GDC. After a couple of months I got an email from Lorne asking if we'd like to help with something and we spent the next seven months helping them go through archives looking for specific materials, which we only ended up finding parts of. Then in April 2010 we were asked if we could port the Xbox Stranger's Wrath to PC. After a few weeks looking at the code and reading some documentation that had been put together about the Xbox engine, we said we could do it, but only under the proviso that we could make a PS3 HD version as well.
I actually answered some questions on this the other day and it got me thinking about it even more. The biggest thing about the Oddworld stories concerns the environmental issues raised. In the games it's about big corporations taking control of the little guys and generally screwing with the indigenous species - something which can be applied to the world we live in today. I think a lot of players noticed this within the stories, even if just subconsciously. If you strip away the story, you are left with games with incredibly simple mechanics and perhaps not a lot else, but the stories build this credible world with characters you believe in.
We actually didn't really have anything to do with the Oddboxx in terms of choosing it as a project. As I understand it, Lorne announced it in late 2008/early 2009 - we only came on board to do the Stranger port from another developer in April/May 2010, as well as complete the work they'd spent 15 months doing on Munch. I think we actually had four weeks on Munch. As for doing Stranger on the PS3, as I said earlier, we were already doing the PC version, and thought it would make logical sense to do a console update. We chose the PS3 as we'd already done a couple of PS3 projects so knew the machine relatively well. Also, because it was the newest of the four games to date, it seemed the most logical to do.
"All that appears to have been done in most [HD remakes] is to get the code running at 720p, with the games released with little or no updates to the art."
[Laughs] Only that we knew we wanted to do a better job. In all seriousness, we - well, specifically me - had played a number of the HD remakes and all that appears to have been done in most of them is to get the code running at 720p, with the games released with little or no updates to the art.
For example, with Resident Evil 4, I was shocked at just how poor of an update it was - I'm still trying to figure out if any of that art had been updated to be honest. I'm of the belief that if you're going to update a title, then you've chosen that title for a specific reason. Let's overlook the financial reasons here for a moment: you pick the project, you perhaps play it on the original system, and you notice subtle changes in gamers' perceptions over the past five to ten years since the original was released... you think, "Let's tweak that, let's alter this," so you make the changes whilst doing the update. It seems that with the bulk of HD remakes that hasn't happened.
A prime example is the Team ICO collection. I loved these games when they were originally released so was really looking forward to getting them for the PS3, however I felt incredibly disappointed in a few areas. Firstly I couldn't work out why they couldn't get them working at 60FPS. Perhaps they didn't have a lot of time to optimise the code when converting it? Who knows, but the biggest thing that annoyed me is something incredibly silly. Within the Sony PS3 TRC [Technical Requirement Checklist] documents it asks developers to make sure that you use the X button to confirm and circle to go back in the West, whereas the opposite is true for Japan. The PS2 originals used X and Triangle in the West. The Team ICO games still use Triangle to go back, which for a PS3 player is alien, and would have taken BluePoint minutes to change to the required TRC item.
"Oddworld managed to push the Xbox hardware reasonably well. Their programmers used all the known tricks available and the results were impressive for a title back in 2005."
Well for the most part we have the entire Oddworld archive here: I think we've had over 1000 CDs/DVDs which we're slowly restoring to PC and building a big archive on a 15TB storage system. Within those CDs there's stuff from Abe 1 models/assets/audio/documents, through to a lot of stuff for "The Brutal Ballad of Fangus Klot" for example.
To be honest, I don't think any of the Stranger assets were in NURBS, the main player model used in the cut-scenes was a model with over 500k polys. As it stood, only a handful of the models in the game were used in cut-scenes, so the most of the re-modelling was done from the original concept sketches and either completely from scratch, or by taking the game models and adding to them.
Oddworld managed to push the Xbox hardware reasonably well. Their programmers used all the known tricks available and the results were impressive for a title back in 2005. This didn't cause any real problems on the PC version, mainly because the architecture was almost the same as the Xbox. The PS3 version was a different kettle of fish. Endian-ness was the first issue, PS3 is BIG endian, PC is LITTLE endian, so data sets had to be converted and swapped around. Secondly, any low level assembler had to be converted into C/C++, optimisations would be left till a later date. Thirdly, many MS routines worked on both PC and Xbox but this wasn't the case for PS3. These had to be isolated, wrapped and equivalent versions written.
It was vastly important. Because we made the decision early on to write a PS3 HD version we decided to use as much cross platform tech as we could to reduce time and workload. So the decision was made to use OpenGL for rendering, CG for shaders, FMod for Audio, Granny for animations, and Bink for movie playback. For the PC version we essentially wrote an Xbox emulator. This was the quickest way of getting things up and running as we needed to see visual results fast.
We spent only a few weeks wrapping all the low level DirectX calls and writing equivalent OpenGL versions. We re-wrote the low level vertex and pixel shader fragments with CG shader fragments. Again this only took a couple of weeks as there were only 100 or so shader fragments. The XACT audio system was also wrapped and emulated with FMOD, we rebuilt the XACT project in FMOD and re-mastered the audio to HD quality. All of these changes really help us on the PS3 version, mainly from having tech that worked and was tried and tested and also from been familiar with the code base thus saving us time in the long run.
"For the PC version we essentially wrote an Xbox emulator. This was the quickest way of getting things up and running as we needed to see visual results fast."
I would say 95 per cent of the code is from the original Xbox version. None of the game code has been changed in any way. We left it alone as we didn't want to change the feel of the game and introduce bugs - and why change something that feels and plays so well? At first we just ported the PC version across to the PS3. This worked well but it was obvious that some key areas needed re-writing. We spent about two months solely working on optimisations. We spent a lot of time in GPAD profiling to identify the slowest areas, then optimised the code and re-tested. This was done over and over again until we were happy with the results. It was always a trade-off between time to rewrite code and if it would achieve big gains.
One key area was the decorator system, used for drawing foliage. Instance types were batched together, using degenerate triangles and rendered in one batch. This gave us a huge speed increase over the single instance renderer that the Xbox used. Also none of the scene was sorted in the original Xbox renderer so we added sorting on the PS3. This vastly increased the z-cull performance of the RSX. Another area that needed work was the particle systems. Systems had been optimised for DirectX using push buffers but on PS3 this wouldn't work, so custom renderers were written using instancing. The gains were huge: some unoptimised systems were taking 5ms, these were reduced down to less than 0.2ms
The save thing didn't feature too much, as one of the things that Oddworld have always been aware of is allowing the player to save anywhere they wanted. As such, in the PS3 version we have a system that has fixed auto-save locations, a quicksave option that updates the autosave at that exact point and a manual save, where it will save a separate permanent save file at that location. Difficulty has definitely been an issue. We actually introduced difficulty modes to the game, as well as tweaking the "normal" mode a little in the latter part of the game, making it a bit easier at that point.
The biggest complaints I think are related to the latter part of the game, which is pretty much a first person shooter. We noticed going through the scripts etc. that the player in those parts of the game didn't have health parameters that matched what was doing on - I don't want to go into that in too much detail here as it will give away part of the story. But I will say this, we felt that those original settings took a backwards step from sections just prior to that part of the game, so we tweaked them to increase your base health and armour amounts.
Aside from the game models, we also went through the game rounding out barrels, pipes and trees and generally improving the look of stuff that wasn't up to current gen standards. We also went through and altered every foliage texture in the game, as some were incredibly low-res: drawn on a 720p screen they looked nasty, so we did new textures there. We also took a leaf out of the Crysis book, in the way they did their grass. In the original Stranger, the grass was just a flat plane - in this version grass is now an object with multiple faces, meaning it looks a lot more organic than it used to do. We thought about doing viewer facing billboards like those in Rage, but those are just too old in terms of tech.
"Difficulty has definitely been an issue. We actually introduced difficulty modes to the game, as well as tweaking the 'normal' mode a little in the latter part of the game, making it a bit easier at that point."
Whilst we didn't have access to the original source material for those cut-scenes, we did have each frame of each CG sequence rendered out as .TIF files. These were rendered out at 720x416, which is higher than the 640x370 Xbox versions. So in the first instance we had those, but we also deliberately didn't encode them as harshly as they were on the Xbox: as such there's hardly any artifacting on the movie playback, if at all.
We also re-created two of the movies from scratch and these are both native 1280x720: the main menu background and the credits movie. For the former we had to create a new matte background with the extra width. With the credits we were lucky, to a degree. We found their original CG compositing tool and scripts (Shake v2.51 by Apple) that we could get up and running again, albeit on a VM running Windows XP. I personally spent about a week trying to get those tools running correctly, even talking to some people at a company that created a plug-in for that version of Shake.
Oddworld did a great job with the engine. It streamed level data directly from the Xbox. We also had to do this on the PS3. PS3 assets were much larger, polygon counts were higher and textures were at least four times bigger. This quickly filled up PPU memory so we had to transfer textures and meshes into RSX local memory. We were also streaming audio at the same time, so making this work smoothly was a challenge to say the least. RSX performance is always a challenge - we had lots of overdraw, which was difficult to remove. After trying different things we achieved the highest gains from scene sorting to increase z-cull performance. We used the triple screen buffering feature of PSGL to help smooth out the frame rate, so if we did drop the odd frame we would go from 60FPS down to 40FPS and not 30FPS.
Yes, that's right. We didn't make full use of the SPUs so putting MLAA onto the SPUs was a no-brainer. MSAA impacts on RSX performance so that was out of the question and we had a quick look at FXAA but found this didn't give us as good results as MLAA.
"We didn't make full use of the SPUs so putting MLAA onto the SPUs was a no-brainer. MSAA impacts on RSX performance so that was out of the question."
It was very straightforward. We mostly render into textures, rather than the screen, mainly for fogging and post rendering effects. We had to make changes to the EDGE libs so that the MLAA worked on PSGL textures. We implemented a simple double buffer system so that the SPU, RSX and PPU were never waiting for each other. The SPUs were processing the last frame while the PPU and RSX were rendering the current frame. At the end of the frame we displayed the last frame and then started processing the current frame. We tried applying the MLAA at the very end of the render, which included the GUI but discovered that the MLAA added artifacts and made the GUI look dirty. This was changed so that only the 3D render received MLAA and the GUI was then overlaid.
No, we would of liked to have used the SPUs a lot more but decided quite early on we would try and push the PPU as much as we could and only if we had exhausted all avenues we would start looking at using the SPUs. In the end we managed to achieve what we set out to do, that is to run the game at 60FPS so rewriting code to make use of the SPUs would have been unnecessary, adding more complexity and pushing the release date into 2012.
Well, we spoke to three of the original programmers about some aspects, mainly asking if they could remember how the original build tools worked - even now there are still some aspects of the build process we have no clue about! One of the guys now works at Google in Munich, one works with Rad Game Tools, and another has just done some work with Lorne Lanning on his non-game related project.
"We've already announced versions of Stranger and Munch for the Vita, but with regards to Nintendo, currently I'm not interested in working with them, or on their platform."
Beyond that, I have Lorne on my Skype list and I've spent a good few hours talking with him, but in terms of what we do, it's been a lot of "whatever you think" etc. We also spoke to Raymond Swanland who did the some of the original production design, as well as designing Stranger himself. In addition to the Oddworld logos, he created the new HD logos for both Stranger and Munch.
Firstly, as we're still dealing with MS on stuff I'm not sure how much I can technically say, but here goes. We initially looked at the XBLA route - if we could get the game into 2GB. After asking us if we could do it, Microsoft sat on it for ten weeks before saying that it wasn't for them. This was via their MGS publishing route. Then we spoke to them about Games on Demand, however the two occasions that this has been discussed with them we've been told "no" for various reasons; the latest being that GoD has a fixed minimum price-point, a price-point we are below on the PS3.
They also wanted a simultaneous release on PS3 and 360, yet when we asked them in May last year about GoD, they said we hadn't sold the magic 1m units at retail which makes you qualify for the GoD service. That's only a small selection of the reasons. Annoyingly if they'd said yes in May, we would have had a simultaneous release on both platforms, and we could of sorted out the price point.
"[We] want to finish off the Oddworld Quintology, so I think it'd be fair to say that we're thinking about Squeek's Oddysee, the third in the series."
Well, we've already announced versions of Stranger and Munch for the Vita, but with regards to Nintendo, currently I'm not interested in working with them, or on their platform. Having developed a number of titles over the years for their various platforms, it's become increasingly apparent that unless you are published by Nintendo you don't tend to do very well.
They also have this crazy regard to IP and refuse to sign NDAs with indie-developer/publishers, leaving us small guys open to having our ideas stolen with no recourse. We have already looked at doing some stuff on iOS and all I can say is watch this space.
Well we're already working on Oddworld: Munch's Oddysee HD, and we're aiming for an early Q2 release on that, for PS3/Vita, with other platforms to follow. We're already starting work on our new Oddworld project, based around Abe - good ol' stich lips himself - which promises to be a fantastic project.
Well, myself, Lorne and Sherry (McKenna) want to finish off the Oddworld Quintology, so I think it'd be fair to say that we're thinking about Squeek's Oddysee, the third in the series. We also think it would be a crying shame if we did nothing with the Fangus project. But beyond that I'm saying nothing...
Stranger's Wrath HD is currently on special offer on the PlayStation Network until the end of January 2012, with Plus subscribers able to buy the game for £6.99 - a £3 saving on the usual price.