Last month we looked into an app called HiAlgoBoost that aimed to improve performance and responsiveness of Far Cry 3 by using software optimizations and tricks. We found that it did reliably enable playable framerates in Far Cry 3 using Intel’s HD 4000 graphics solution. This technology competes directly with DynamiX an application developed by LucidLogix that aims to improve framerates as well. We were lucky enough to get a chance to ask the creator of HiAlgoBoost, Eugene Fainstain a few questions about his app.
1) What is HiAlgoBoost?
HiAlgoBoost is a software package that augments 3D games. It makes gameplay smoother, and reduces lag. It effectively increases the rendering power of your video card (GPU), so you don’t have to buy a more expensive one. It enables playing 3D games with more refined graphics, at higher resolutions. It also enables you to enjoy the latest “AAA” games on non-gaming systems and on computers with weaker GPUs.
2) Can you describe your professional background for us?
I have done product development in several areas, but over the last decade have mainly been specializing in signal and image processing. Until recently I worked for Samsung (about 9 years in total), and was the technical lead for the team that developed their cellphone camera. Cameras with our algorithms sold over 200 million units, and our latest ISP (image signal processor) is the power behind the excellent image quality in Samsung’s Exynos-based designs – namely Galaxy S3, Galaxy Note 2, Galaxy S4 and many others.
3) What inspired you to create HiAlgoBoost?
It all actually started when I was playing “Doom” about 20 years ago (thank you John Carmack!). It was my intuition back then, that there had to be a way to increase responsiveness and FPS during the “active” phases of the game by sacrificing some quality in an intelligent way. I have tested several technologies over the years, and the result of my work is HiAlgoBoost.
4) How does HiAlgoBoost differ from solutions like LucidLogix’s DynamiX?
First of all, there aren’t any other solutions “like this” besides HiAlgo and LucidLogix. Both our technologies have something in common with the “dynamic resolution” approach suggested by Intel (http://software.intel.com/en-us/articles/dynamic-resolution-rendering-article) – but whereas LucidLogix implemented Intel’s idea “verbatim”, we went a step further:
a) With Intel’s approach, the resolution is gradually modified (depending on GPU load) to maintain acceptable FPS. With this method you are almost always looking at a “deteriorated” image, and are always aware that what you are seeing on screen may very well be sub-optimal. With our approach, when you are not moving – you can be sure that what you see is 100% the original game quality – and this is very important to many users (including myself).
b) With Intel’s approach the resolution is varied slowly – this way the game can continue to behave as usual, gradually adapting to the new framerate. With our approach, the resolution (and hence the framerate) changes very rapidly. Games were never designed to work in this manner and without our technology would get really confused – as a result you would see jerky motion and unexpected delays from frame to frame. In fact, there is currently no game that can handle varying framerates well – on the contrary – many games actually LIMIT the framerate to not let it get too high – so the motion wouldn’t appear jerky when the framerate goes back down. We came up with ways to correctly adapt to (and even utilize) those sudden spikes in framerate to improve the overall performance and provide smooth motion and control. Intel calls their concept DR -“Dynamic Resolution”. We call our technology ADR – “Agile Dynamic Resolution”.
c) Finally, with Intel’s approach you cannot lower the resolution to the levels that we do (because it would be painfully visible), and as the result our FPS increase is much more significant – up to 5x (compared to approximately up to 2x with Intel’s approach).
5) Currently, HiAlgoBoost supports two games, Skyrim and Far Cry 3. Are you planning on supporting a wider array of games in the future?
We only have two games at the moment because we are at the “ramp-up” stage. We need to figure out exactly what users need, make some money in the process and hire additional developers (we are self-funded at the moment). There are several additional games in development already (MW3, FC3:Blood Dragon, PlanetSide2 and others) and we intend to release them soon.
6) Currently HiAlgoBoost is implemented on a game-by-game basis. What’s stopping you from attacking a wider swath of the market?
Because our technology is new and pioneering – and modifies the core inner-workings of the game engine – it currently still requires some per-game adaptation. Each game engine is built a little differently, and each developer uses different tricks and optimizations. But – as we progress – we’ll accumulate all those “developer optimizations” into a unifying framework, and it will take us less and less time to adapt to each new game. Finally the technology will converge into a generic solution with many automatically supported games.
7) When we tested HiAlgoBoost we noticed that there were a few different quality modes (dynamic resolution modes) to choose from. Can you explain the differences between them?
Since our technology in a nutshell can be described as “keep high-resolution when not moving, lower resolution when moving” – what remains is to define exactly what “high-resolution” and “low resolution” mean. Hence are the different quality modes:
a) Resolution can change between 100% and 50% – this is the default mode, with minimal (mostly undetectable) quality degradation.
b) Resolution can change between 100% and 33% – this is a more aggressive mode – you get better gameplay and responsiveness, but you may notice some quality degradation when moving.
c) Resolution can change between 50% and 33% – this is what we call “the battle mode”. Resolution is always somewhat reduced, but you get optimal responsiveness. This is very useful in massive battles – when winning is more important than gazing into the distance.
d) Resolution always stays at 100% – this is what we call “the quality mode”. And although the resolution doesn’t change in this mode and there is no FPS increase – we utilize various optimizations to make the game more responsive and remove “micro-stuttering”. Please note: FPS and responsiveness (latency between user command and result on-screen) are not the same thing – we reduce latency significantly while not affecting the FPS.
8) Microstuttering has become a very important issue over the past two years. Can HiAlgoBoost do anything to reduce the impact of the phenomenon?
During the development of HiAlgoBoost we thoroughly understood this phenomenon and where it comes from, and devised ways to completely remove it. We are currently working on another product – which will be generic at launch – that will not modify the resolution, but will instead remove microstuttering, reduce latency and do other optimizations as well. The first version will only be compatible with single-GPU systems, and multi-GPU support is to follow later.
9) To my knowledge HiAlgoBoost uses a number of different methods to increase performance and produce a more playable game on a given system. Can you give me some more detail on how those methods work together to improve the user experience?
Basically, HiAlgoBoost reduces the response latency, and improves FPS when it is really needed. This is done by meticulously analyzing the game’s rendering pipeline, and heuristically figuring out the places where to add some “smart synchronization”, and where to “cut corners”. The methods we use are all pretty standard DirectX stuff (except for maybe one or two ;) – but the main advantage comes from understanding exactly what is going on in the system and in the game, and adjusting/correcting the rendering flow accordingly.
10) As it is, HiAlgoBoost seems to be a bit of a niche application. How do you plan to push your technology into the mainstream?
Indeed, HiAlgoBoost currently only supports a few games (i.e. “niche application”), but we plan to change that in the near future. We believe that the “HiAlgoBoost recipe” (i.e. “dynamic quality management”) is a rather comprehensive approach, building on the fact that quality and framerate are important at different moments during the gameplay. This approach allows existing computing capability to be used in a more efficient way – meaning either enabling smoother gameplay experience, better visuals, less overheating or a longer battery life. We plan to advance our technology to the level of being generic and adapt it to mobile devices as well, so it will be relevant to most GPU-accelerated 3D games. For high-end systems it would mean even better visuals, for laptops it would mean less heat generation and longer battery life, for Ultrabooks it would mean being able to play “AAA” games, and for mobile devices it would mean all of the above plus blowing the competitors out of the water. Hopefully all this would make HiAlgoBoost a “mainstream application” as well… :)
Using 3rd party software to improve the performance of videogames certainly isn’t a new concept. But Mr. Fainstain seems to be very dedicated to promoting the Agile Dynamic Resolution technology that he’s been working on. Using software optimizations to fight micro-stuttering and input lag is certainly a good idea. But more than that, the improvement in user experience that HiAlgoBoost delivers out-of-the-box can take a game from being an unplayable slideshow to an immersible experience. Mr. Fainstain and the team at HiAlgo have a long road ahead of them, but they’re off to a good start and their technology looks primed to have a big impact on the way we think about the visual quality of our games.