Flight Simulator has been on the cutting edge of computing for over three decades. Get your wings directly from your browser.View demo
About Flight Arcade
Flight Simulator has been on the cutting edge of computing for over three decades. Learn about bringing it to the modern web.
The first version of Flight Simulator shipped in 1980 for the Apple II and, amazingly, it was in 3D! That was a remarkable achievement. It’s even more amazing when you consider that all of the 3D was done by hand, the result of meticulous calculations and low-level pixel commands. When Bruce Atwick tackled the early versions of Flight Simulator, not only were there no 3D frameworks, but there were no frameworks at all! Those versions of the game were mostly written in assembly, just a single step away from ones and zeroes that flow through a CPU.
When we set out to reimagine Flight Simulator for the web, we couldn’t help but think about the contrast of creating 3D then and now. Modern coding seems almost luxurious as we sculpt 3D worlds in WebGL with great frameworks like Babylon.js. It lets us focus on very high level problems. In this article, we’ll share our approach to one of these fun challenges: a simple way to create realistic looking large scale terrain.
Before there was the Web Audio API, HTML5 gave us the
<audio> element. It might seem hard to remember now, but prior to the
<audio> element, our best option for sound in a browser was a plugin! The
<audio> element was, indeed, exciting but it had a pretty singular focus. It was essentially a video player without the video, good for long audio like music or a podcast, but ill-suited for the demands of gaming. We put up with (or found work arounds for): looping issues, concurrent sound limits, glitches and total lack of access to the sound data itself.
Fortunately, our patience has paid off. Where the
<audio> element may have been lacking, the Web Audio API delivers. It’s gives us unprecedented control over sound and it’s perfect for everything from gaming to sophisticated sound editing. All this with a tidy API that’s really fun to use and well supported.
Let’s be a little more specific: Web Audio gives you access to the raw waveform data of a sound and lets you manipulate, analyse, distort or otherwise modify it. It is to audio what the canvas API is to pixels. You have deep and mostly unfettered access to the sound data. It’s really powerful!