![]() ![]() InfoQ: You mentioned that D3 is a very demanding game to run in a browser. So, by the end of 2018, I decided to port Doom 3 to the Web and ultimately convinced myself that WebAssembly is a technology to seriously consider for the next 10 years. ![]() As multithreading is not yet ready on the Web (mostly due to Spectre/Meltdown security vulnerabilities), this single-threaded feature has been a mandatory requirement from the very beginning of my projects. Or, put differently, while nowadays most engines are designed for multiple CPU core systems, Doom 3 is one of the last “high-end” games designed to run on a single CPU core system. I found the Doom 3 game to be an ideal candidate for this: it is a real-world large C++ program, a former successful AAA video game, with open-sourced code (and known to be of very good quality), and at the time the game was released - back in 2004 - it was really bleeding-edge technology in terms of game engine and graphics, known to put a lot of Desktop systems down to their knees.Īdditionally, the game also has a very nice characteristic that has been been a critical point in my decision to focus on this game specifically: the id Tech 4 engine is probably one of the most advanced game engines that can be run on a single thread of execution. So, in order to convince myself that WebAssembly could fulfill its promises, I decided to move things to the next level and port a real program. But, in practical terms, apart from some small nice benchmarks and sample demonstrations, there have been very few real-world use cases publicly studied and shown. Gabriel Cuvillier: Since the general availability of WebAssembly MVP in major browsers two years ago, I have the feeling that a hype cycle has been started around the technology: a lot of praises are being said, nice presentations and talks are being done everywhere, and so on. InfoQ: What drove you to port DOOM3 to browsers with WebAssembly? The game was a critical and commercial success, with more than 3.5 million copies of the game sold. Doom 3 utilizes the id Tech 4 game engine, released under the GNU General Public License in 2011. ![]() InfoQ interviewed Cuvillier on the technical challenges encountered, and the lessons to be learned for developers thinking about porting desktop applications with WebAssembly.ĭoom 3 is a horror first-person shooter video game originally released for Microsoft Windows in 2004. The 7-week full-time effort illustrated both the present performance potential and the missing parts for WebAssembly today to seamlessly run heavy-weight desktop applications and games. In order to survive, not only do you have to make it through the first 27 blood-splattered levels of Doom, you also have to get through nine more incredibly tough expert levels in the all-new episode "Thy Flesh Consumed.Gabriel Cuvillier, senior software engineer at Continuation Labs, ported the iconic Doom 3 game to browsers with WebAssembly. Your mission is to locate more substantial firepower, blow your way through an onslaught of undead marines and mutant demons from hell, and navigate yourself off a radioactive moon base. You're a space marine armed with a mere pistol. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |