Overview
This page contains the majority of projects I have worked on in my career. I specialise in low-level, engine, optimisation and graphics. I love understanding why computer code behaves the way it does and using that information to write to code that runs faster which ultimately results in a better user experience.
I won’t try to list every API or programming area I have worked in below (there are far too many!) so I’ll try to summarise the ones I feel are most relevant to my skills and interests:
- Primary Programming Languages: C/C++
- Important Soft Skills: Leading team to a common goal, inspiring + motivating + rewarding team, line management duties, conducting regular one-to-ones with team, mentoring duties to unlock team members full potential
- Relevant Programming Skills: Multithreading, SIMD (NEON+SSE), Optimisation, Profiling, Complex code merging, Bespoke Engines + Unreal Engine, x86-64, ARM, Clang & MSVC
- Relevant Platform Experience: PC, Xbox (XDK+GDK), PlayStation 4 & 5, Nintendo Switch, iOS, Android
- Graphics API Experience: DirectX 11 + 12, OpenGL, GNM + AGC, NVN, Vulkan
- Software / Libraries: Mono/Mono, Sharpmake, ANGLE, Perforce, Github, DirectXMath, SuperLuminal, RenderDoc, Nvidia Nsight
- Other Relevant Skills: Project due diligence + task breakdown + time estimates
- Blog: https://alexanderhoughton.co.uk/category/blog/
Unannounced AAA Port – Xbox Series X|S & PlayStation 5
2023-2024 – Xbox Series X|S & PlayStation 5
Led a team of 7 programmers with an external partner bringing a AAA engine to Xbox Series X|S and PlayStation 5.
We implemented every platform specific engine requirement and added brand new graphics API to bring both platforms to parity with PC as well as integrating the new platforms to the entire build and package pipelines. A lot of work on this project involved bringing C# support to PS5 and Xbox through the use of Mono which was an incredibly complex and challenging undertaking to get working fully.
Red Dead Redemption – Nintendo Switch & PlayStation 4
2023 – Nintendo Switch & PlayStation 4
We worked closely with our good friends at DoubleEleven on this project. Our primarily responsibility was to bring the Nintendo Switch to rendering parity with the original release and then optimise the game to get it running at a solid 30fps.
I made further contributions to the PlayStation 4 version by adding FSR2.0 support to allow for high quality anti-aliasing, upscaling & sharpening.
The Great War: Western Front – PC
2023 – PC Steam
For this project we added DirectX 12 support to Petroglyphs PC engine, upgrading it from DirectX 11. I was not involved day-to-day with this project but provided crucial support and guidance to the team working on the project.
https://store.steampowered.com/app/2109370/The_Great_War_Western_Front/
Bassmaster Fishing 2022 – Nintendo Switch
2022 – Unreal Engine 4 / Nintendo Switch
Bringing the popular fishing game to Switch for the first time. This was a good project for many of us because we had the opportunity to dig deep in to Unreal Engine. We made modifications at the engine level to automate the process of stripping LODs and automatically changing LOD levels on the fly.
Zombie Army 4: Dead War – Nintendo Switch
2021-2022 – Nintendo Switch
Many told us it was impossible to bring Zombie Army 4 (ZA4) to the Nintendo Switch but we found new and exciting ways to not only optimise the game but also improve the visuals beyond what we ever thought was possible.
I led the coding efforts on this project and worked very closely with the art team to make sure no stone went unturned in the hunt for optimisations.
Digital Foundry were so impressed with our work that myself, Arden Aspinall (Studio Head) and Reece Parrinder (Senior Artist) were interviewed by Thomas Morgan of Eurogamer: https://www.eurogamer.net/digitalfoundry-2022-zombie-army-4-the-making-of-an-incredible-switch-port
NVIDIA GTC Presentation: Lessons in Porting AAA Action Games to the Nintendo Switch
2021
In 2021 myself and our head of studio Arden Aspinall were invited by Nvidia to give a talk at the GTC conference detailing our experience of bringing games to the Nintendo Switch.
https://www.nvidia.com/en-us/on-demand/session/gtcspring21-e32649/
Evil Genius 2
2021 – PC / Xbox / PlayStation
We joined the project later in to development to aid in optimising the game for release. Evil Genius 2 is a very different game to what Rebellion and the Asura Engine has produced before so this produced some unique and interesting challenges to overcome.
Strange Brigade – Nintendo Switch
2021 – Nintendo Switch
I mentored our new graduates to get the Switch port up and running using Sniper Elite 4 as a template. The rest of the studio and myself got more involved as the project progressed to add new optimisations and bug fixes.
2020 – Google Stadia
Myself and the team spent a large period of time bringing the Rebellion back cataloge to Google’s Stadia platform. The Asura engine already had Vulkan rendering support, however it required some modification to optimise it and work around driver issues.
A large portion of the work I was involved in was adding audio playback support via Pulse Audio API and then optimising to ensure playback was uninterripted.
Sniper Elite 4 – Nintendo Switch
2020 – Nintendo Switch
Sniper Elite 4 was our most challenging port to date for very different reasons to other projects. After initially getting the Stadia version of Sniper Elite 4 working with Vulkan, we got the Switch version working with Vulkan too and very quickly realised that the CPU performance was going to be the biggest uphill battle in hitting our 30fps target.
So when Sniper Elite 4 was at visual parity with Vulkan, which happened very early on in the development process, our GPU time was hitting nearly 90ms at its worst but more frightening was the CPU time, peaking at over 70ms.
Detailed analysis of our Sniper Elite 4 port can be found in our GTC talk, featuring myself her
Zombie Army Trilogy – Nintendo Switch
2019 – Nintendo Switch
This project got up and running in record time as almost all of the tech we did for Sniper Elite 3 on Switch was easily ported into Zombie Army Trilogy but the main bulk of this project was optimising the assets and the code to get it running smoothly on the Switch. You can have so many zombies on screen at any one time with ZAT so there was a massive push on the CPU optimisation side to get it working.
I completely multithreaded almost all of the CPU rendering side of this project, making full use of NVN to have separate render systems simultaneously record to separate command buffers on different threads and stitch them all together at the end to parallelise as much work as possible.
The Dynamic Resolution Scaling system was modified to take shot lived explosions and other effects to always aim for the highest resolution. ZAT is the first project in docked mode that we allow the 3D to render at full 1080p.
Football Manager 2019 – Google Stadia
2018-2019 – Google Stadia
Getting Football Manager and the engine running and working on Google’s Stadia platform. This mainly involved writing a Vulkan implementation for the engines graphics layer BGFX.
It was a really interesting project for me, adding Vulkan support. It taught me loads about Vulkan as well as subtle differences between hardware.
Sniper Elite 3 – Nintendo Switch
2018-2019 – Nintendo Switch
A port of Rebellion’s Sniper Elite 3, originally released in 2014. All of the rendering code I wrote for BattleZone and Sniper Elite V2 was used to get this port finished in record time. Due to the increased visual fidelity of SE3 as well as the more complex AI and other gameplay features, squeezing every ounce of performance out of the Nintendo Switch was one of my main tasks for this project. I rewrote huge chunks of code and pushed as utilised the 3 available CPU cores on the Switch to get this project running buttery smooth.
- GPU Optimisations
- CPU Optimisations
- Lots of work went into multithreading the rendering systems to make better use of the Nintendo Switch’s 3 available cores.
- Tools
- Increased level export time dramatically by adding a shader caching system
BattleZone – Nintendo Switch
2018 – Nintendo Switch
A port of Rebellion’s BattleZone VR to the Nintendo Switch. Most of the renderer was based off my code from Sniper Elite V2.
- Rendering (NVN)
- Optimisations (GPU & CPU)
- Improved loading times
- Achieved 30fps target frame rate
- Audio (Base audio renderer and streaming sound system)
- Audio Optimisations
- BattleZone played up to 70 simultaneous sounds sometimes which often put a big strain on the Switch but I was able to optimise the audio code and behaviour.
Sniper Elite V2 Remastered
2017-2019 – PC / Xbox One / PlayStation 4 / Nintendo Switch
A visual upgrade for PC and port to PS4, XB1 and Nintendo Switch. Played a big roll across all platforms.
- Abstracted the existing D3D11 Renderer to make porting to different platforms easier.
- Rendering
- Implemented the PS4(Gnm) and Nintendo Switch (NVN) rendering systems from scratch to parity of DX11
- XB1 X and PS4 Pro 4K Support
- XB1 & PS4 HDR Support
- XB1 ESRAM Implementation and resource hot swapping
- XB1, Switch & PS4 Specific Optimisations
- Anamorphic lens flare
- Water caustics effect
- Photomode effects and filters
- Dynamic Resolution Scaling
- Tools
- XB1, PS4 & Nintendo Switch texture converters
- Many upgrades and bug fixes to HLSL to GLSL converter for Switch
- Audio
- Nintendo Switch base audio implementation
Rebellion were so pleased with the Anamorphic Lens Flare and Water Caustics effects I wrote that they had me implement them into their main branch for use in Strange Brigade. You’ll also find heavy use of the system in NZA4.
Rogue Trooper Redux
2016-2017 – PC / Xbox One / PlayStation 4 / Nintendo Switch
Remastering an old classic, Rogue Trooper onto PS4, XB1, PC & Nintendo Switch. Played a big role across all platforms.
- Multiplayer & Matchmaking Support (Steam, GOG, PS4 & XB1)
- Including Socket and Network Communication code.
- Audio (PS4 & Nintendo Switch)
- Including threaded Stream from disk audio files
- Video Playback (Steam/GOG) WebM format
- Rendering Tasks
- Ported many legacy D3D9 classes to D3D11
- Ported D3D9 HLSL ASM to HLSL
- Assisted with PS4 & Nintendo Switch rendering implementation
- Soft Particles
- Jointly implemented Parallax Mapping
- Jointly implemented SSAO
- Tessellation Support (Didn’t ship)
- Ported many legacy D3D9 classes to D3D11
- Implemented certain XB1 XRs and PS4 TRCs
- Tools
- Texture Conversion for PS4 & XB1
- Other Responsibilities
- Adding Bitangent and Tangent information to existing model format via export process
- Bug fixing (Gameplay, Networking, Audio, Visual)
Unreleased Unity Project 2016
2016-2017 – Android / iOS
Spent 6 months working on porting a Unity project from console & PC platforms onto mobile. The main focus of the project was making it fit into memory.
- Spent a lot of time in the C++ Hans Boehm Garbage Collector which Unity uses.
- Gained a good understand of Unity from a very low level.
Heavenstrike Rivals
2016
Worked to bring Heavenstrike Rivals to Steam for the first time. My work involved upating the UI to work with keyboard and mouse controls.
Cricket Captain 2015, 2016, 2017, 2018
2015-2018 – PC / Android / iOS
Using our in-house engine I generated quads for the crowd system and added billboarded animations for the crowd texture sheets.
Worms World Party Remastered
2015 – PC
Acted as lead programmer at TickTock Games on the project. We finished off the project for Team 17, adding achievements, controller support and upgrading the MFC front end.
- Steam Achievements
- Steam Leaderboards
- Controller Support
- Increasing the resolution of the MFC front end
- Optimising the Software Renderer
International Snooker Pro
2015 – Windows Phone 8
Solo project, porting from Android to Windows Phone 8 using Project ANGLE, which translates OpenGL ES to DirectX.
- Implemented ANGLE renderer.
- Windows Phone 8 Audio, file saving and everything else to get the project running.
Z Steel Soldiers
2015 – PC
Joined the project after initial release and worked on adding new features into the game, fixing bugs and improving performance.
- Upgraded path-finding algorithm to A* and visualised calculated path
- Gameplay & engine bug fixes