Flying Wild Hog’s CEO Michal Szustak and Lead Engine Programmer Krzysztof Narkowicz take us through the finer details of developing Shadow Warrior on PS4 and Xbox One.
Shadow Warrior’s reboot was a commercial and critical success for Flying Wild Hog. If you missed out playing the PC version, you can now experience the game this year as the developers are releasing the PS4 and Xbox One versions of Shadow Warrior. The consoles are still new and several developers, just like last generation, are finding ways to optimize their code and engines. Undoubtedly, this is no easy task, resulting into compromises and development challenges.
GamingBolt caught up with Flying Wild Hog’s CEO and Game Director Michal Szustak and Lead Engine Programmer Krzysztof Narkowicz to talk all about Shadow Warrior on PS4 and Xbox One. Check out their response below.
Rashid Sayed: When the PlayStation 4 was first announced, several games from the free to play and other genres were ported to the new console. Some of those games reportedly took only a few months to port on the PlayStation 4. What can you tell us about the porting process of Shadow Warrior on the PlayStation 4? How easy or challenging it was and how much time did you guys took for the port?
Krzysztof Narkowicz: PS4 specific code took us around 23 months. Porting the entire game took us around 8 months we needed to rewrite various parts of the engine. For example we had to upgrade all the middleware to latest versions, as old versions didn’t support new consoles. Updating Havok a middleware that is so deeply integrated into the game, was a big change for the whole engine. Additionally we added 64 bit support.
We replaced DX9 with DX11, which required to rewrite our renderer. It was also our first non PC platform and we had to abstract some platform specific code. The biggest effort was moving from 23 threads to task based architecture in order to optimally support multiple cores. We optimized the entire game in order to be able to run at 1080p and 60 fps on PS4. Last but not least we rewrote the gamepad support. Changes include better and less intrusive aim assist and easier menu navigation. To sum up PS4 is easy if you already support multiple platforms, DX11, 64 bit and if the middleware you are using is up to date.
"We extensively use Parallax Occlusion Mapping for extra geometry fidelity on decals and surfaces like trees, walls or roads. For Shadow Warrior features like planar reflections and SSAO were added allowing more interesting dynamic effects."
Rashid Sayed: Can you share tech details about the Road Hog Engine in terms of number of simultaneous light sources, Parallax Occlusion Mapping etc?
Krzysztof Narkowicz: Our renderer is based on popular Deferred Lighting. It supports a lot of dynamic light sources (each and every particle can be a light source) and every light can cast dynamic shadows. There are multiple types of lights e.g. point, spot, tube or box. Additionally lights can have negative intensity. This allows our artists to easily darken specific parts of a scene. Another thing worth mentioning is our decal system. It supports multiple kinds of decals, which can selectively affect chosen surface properties (eg. only normals or surface color).
We extensively use Parallax Occlusion Mapping for extra geometry fidelity on decals and surfaces like trees, walls or roads. For Shadow Warrior features like planar reflections and SSAO were added allowing more interesting dynamic effects. Physics simulation is an important part of the engine and it’s based on Havok. It’s used for things like particle collision response, environmental destruction or cutting enemy limbs. Furthermore we have our own system for ingame UI (similar to flash), animated billboards and similar 2D elements both for editing and rendering.
Rashid Sayed: How difficult was it porting the engine to the Xbox One?
Krzysztof Narkowicz: The hardware is very similar to PS4. Xbox One is using familiar APIs like DirectX. Adding Xbox One support after having a PS4 version up and running was an easy task.
Rashid Sayed: What are the differences between the PS4 version and PC version of Shadow Warrior? Are you guys planning to use the touch pad functionality of the PS4?
Krzysztof Narkowicz: At first we experimented with using the touch pad for melee combat. Katana attack directions were controlled by swipe direction. It turned out quite interesting, but most players had issues with using special powers (eg. healing or shockwave). It made combos hard to pull off in intense fights. That’s why designers decided to use the touch pad for special powers.
Rashid Sayed: One of the points that was heavily criticized in the PC version was the constant back tracking. I understand that can’t be fixed but have you made any changers in terms of content so that the back tracking is worth it in the PlayStation 4 and Xbox One versions?
Michal Szustak: This is true that we have some bactracking in the game. This is because we wanted to avoid an ‘onrails’ game experience so we added some mechanics that should encourage the player to wander more around levels. We understand that bactracking it’s not something FPS players are used to nowadays and we will try to improve this in the future. Lots of players who played SW claim that we managed to achieve an ‘old school’ feel. We didn’t want to change SW for consoles too much in order to keep this ‘oldschool’ feeling. On the other hand we added some new features to the game e.g. a new boss fight. We feel the game is more complete now.
"PS4 is fast and with every month, due to increasing developer knowledge and SDK updates, it will be faster. Still if by ‘high end’ you mean multiple Titans then I don’t think it can rival them. On the other hand even making a PC exclusive game you can’t target high end configurations, so it doesn’t matter in practice.."
Rashid Sayed: As someone who is developing the game on the PC and the PS4, what are your thoughts on the PS4’s unified architecture and GDD5 Memory? Do you think with optimization and driver updates, the PS4 can rival high end PCs?
Krzysztof Narkowicz: Unified memory architecture simplifies development, but personally I would prefer two separate memories. It would allow to get a better performance as CPU and GPU have different memory access patterns, which require different memory types. PS4 is fast and with every month, due to increasing developer knowledge and SDK updates, it will be faster. Still if by ‘high end’ you mean multiple Titans then I don’t think it can rival them. On the other hand even making a PC exclusive game you can’t target high end configurations, so it doesn’t matter in practice.
Rashid Sayed: The PS4 version is confirmed to be running at 1080p/60fps. What kind of challenges did you faced in achieving this?
Krzysztof Narkowicz: Mainly CPU issues, as our engine didn’t scale for more than 24 cores. This required a change of threading architecture and many parts of the engine needed a rewrite.
Rashid Sayed: What are your thoughts on the PS4’s GPU when compared to a modern one?
Krzysztof Narkowicz: It is a modern GPU. It’s based on GCN architecture, which will be here for some time.
"Shadow Warrior is a fast paced game, so it was very important to have 60 fps. Also we didn’t want to cut any graphic features, so we decided to use 900p with 60fps."
Rashid Sayed: You guys have already released DLC for the PC version. Are there any plans to bring it to the PS4 and Xbox One version?
Krzysztof Narkowicz: Mentioned DLC and some extra content will be included in both console versions.
Rashid Sayed: Do you have the release date set for the next gen versions?
Michal Szustak: Q3 2014
Rashid Sayed: What are your thoughts on AMD Mantle? Do you plan to release a Mantle update for Shadow Warrior on PC?
Krzysztof Narkowicz: It’s something that many PC developers awaited for a long time, but unfortunately its usage is limited as it’s GCN only. This means that you can design a game for anything that’s possible on DirectX 11. On the other hand it will open up some hardware and rendering API details for non console developers. Additionally it started some interesting changes eg. DirectX 12. Concluding it was a great move by AMD even if Mantle won’t become the mainstream API.
Rashid Sayed: Let’s talk about the Xbox One version. Is the game going to run at 1080p and 60fps on Microsoft’s next gen system?
Krzysztof Narkowicz: Shadow Warrior is a fast paced game, so it was very important to have 60 fps. Also we didn’t want to cut any graphic features, so we decided to use 900p with 60fps.
Rashid Sayed: The eSRAM is a known culprit that limits asset heavy games to run in full HD resolution on the Xbox One. How did you approach this situation while developing the Xbox One version?
Krzysztof Narkowicz: On Xbox 360 eDRAM usage was required for every rendering pass, so it was crucial to fit there. That’s also why many games had strange subHD resolutions like 1280×672. With Xbox One it’s a bit different. eSRAM works like an optional additional cache. It just accelerates selected memory operations and there isn’t some hard limit like on Xbox 360.
Of course people are scaling down resolution, because the more stuff fits in eSRAM the better performance. We manually manage eSRAM during every rendering pass, moving data between eSRAM and DRAM from time to time. Every time trying to fully utilize available eSRAM for bandwidth heavy operations.
Rashid Sayed: From a development perspective, what kind of benefits do you think DX 12 will bring to games development on Xbox One?
Krzysztof Narkowicz: It’s targeted at lowering draw call overhead on PC. Which isn’t such a big issue on Xbox One, as some low level access is already available there. On the other hand having one API across multiple platforms decreases development time.