• Michael Ivanov

AAA games in a web browser utopia.

Updated: Jun 12


Doom wallpaper,courtesy of https://wallpaperaccess.com/classic-doom


"Playing AAA games in a web browser" - once such an idea was a thing. Many startups, hobbyists as well as enterprise level game engines tried to get into web domain, without much luck. For example, both Unity and Unreal Engine provide[d] initial export option for HTML5. Unity still supports it with some limitations. Unreal removed HTML export support from the official releases. In fact, looking back to late 2000s, when casual gaming started being massively popular, the only solution that brought online games to wide adoption was Macromedia (later Adobe) Flash Player. Companies like Zynga (FarmVille) made a fortune out of Flash based games. Numerous attempts were made to get AAA games into Flash, especially after it unlocked GPU based graphics rasterization. Back then I was a hardcore Flash 3D dev and I remember well how companies and enthusiasts broke their heads around memory consumption, download times and performance issues. When it comes to getting AAA content into web browsers, in the year 2021 we still see no real advancements in that area.

Why has it failed (or hasn't evolved)?

  1. Well, business wise, there are exactly ZERO reasons for an average gamer wish to play AAA games in a browser: Mobile and console platforms are extremely good and generally accessible and most of the AAA games are played there.

  2. Cloud game streaming services are available for those who lack minimal required hardware setup.See NVIDIA GeForce Now. Though, this use case cannot be considered main stream, given that even average, non-Apple, PC rig, with Intel on-board GPU(which actually started getting better), can still run video games just okay without the need to download the content to disk.

From the technological point of view, here are the nearly unsolvable problems any AAA -> Web porting solution/tech is going to meet:

  1. Modern AAA games consume a lot of RAM.For instance, minimum RAM requirement for Doom Eternal is 8 GB. Web browsers limit RAM consumption for web apps. Thanks to the recent WebAssembly* ( will get to it next) implementations in Chrome and Emscripten**, you can now use up to 4GB of memory in WebAssembly applications. Let me briefly explain what WebAssembly and Emscipten is, before we move forward.WebAssembly is "relatively" (no,with the modern tech pace it is not new,but still it is hardly used in real world scenarios) new tech which allows native apps (games) written in C/C++ cross-compiled to a sort of highly optimized JavaScript instructions understandable by Js VM, which execute much faster than normal JavaScript. This tech is used via Emscripten (the tool chain to perform the cross-compilation) by game engines for HTML export. Emscripten works well with small and simple native code sources. I read that one of the reasons Unreal Engine discontinued HTML support was inability to cross-compile engine’s code without complications. Back to memory consumption. As I said: Max RAM size of 4GB is extremely insufficient for absolutely most of the modern AAA games.

  2. Performance is average due to a lack of "Close to the Metal" factor. WebAssembly powered AAA game still performs way slower than a game running on a native byte code. Period.

  3. Game files size. To play AAA game in the browser the traditional way, one has to download all the related files, similar to when you open a website, the browser starts downloading all the front-end (UI graphics assets/HTML/Js files) stuff to your PC. The thing is, while the web page size is typically measured in several megabytes at most (yeah, I remember the times a web page weighted just several Kilobytes), then in case of AAA game content, you will have to download 50-100 Gb of game data. Even with the fast internet connection it takes time. I know what you think about as an alternative. It is coming next.

  4. "Screw downloads! We will video stream our games!". Not so fast. As someone who had been there (my previous startup developed interactive apps video based streaming solution), here are hard facts you should be aware of: The streaming latency is never stable. Yes, even if Musk's StarLink becomes tomorrow available to everyone, it won't change the fact that no real-time data transmission latency over the internet is constant. That means, even on a high-speed network connection you are going to experience casual graphics quality degradation due to video packets delivery delays/failures, as well as input response delays during game play. No serious gamer is ready for this. A lot of people, in many countries, even technologically “advanced” ones (Israel is on of those countries where a home consumer internet quality is bad), don’t have internet infrastructure and service providers to allow this kind of experience.

To summarize: causal 2D and even 3D games fit perfectly well into a web browser sandbox. Modern web technologies come with hundreds of game development libraries and frameworks such as Three.js, Babylon.js which provide all the necessary features and tools to develop web-based games. Video (AAA) gaming market keeps thriving and getting better performance along with higher realism due to latest advances in hardware and rendering technology. It can’t keep up like that way with web browser related limitations.

0 views0 comments