Everything started when I was nine years old. France was making a big push to expose kids to computer science and my school got a set of Thompson MO5 and TO7 computers. This was my first contact! My teacher was able to get some games and one of them was Astromus:
The game was a horizontal shooter where you had to shoot at music notes. As I said, I was nine and I was mesmerized by these pixels on the screen. And then the miracle happened. My teacher told me that everything was created using code.
To demonstrate it, he was kind enough to print the code for me. Like on actual paper. And he told me that this was the blueprint for the game. He told me that if this text was entered on another computer, the game would then appear on the screen.
So I went back home with 300 pages of code made of PEEK and POKE instructions. The thing to understand here is that these instructions are used to read or write to a specific memory cell referenced by its address.
So basically, I had 300 pages of code that looked like:
POKE 53280, 0
POKE 53284, 200
POKE 53288, 14
Literally 300 pages of numbers that made no sense for a regular human being.
But I was so excited! So mind-blown by this entire new universe that was just opened before me.
I decided to use all that great energy to convince my parents to buy me a computer. I put “a” in italics here because it is key for my story.
After a while, I was able to save enough money to buy a computer. I was living in an agricultural area at that time and access to computers was pretty limited (as the year was 1985). But we finally found one: A fantastic Amstrad CPC 464 (monochrome).
It was the last time I saw the sun.
I spent the following summer writing down the code to be able to get my game. And after two months, I was able to run it.
Well, kind of.
I ran my code and held my breath. And all that I got was a message. Something like
Syntax error on line 1
This is where and when I learned that computer A does not work exactly the same as computer B. The code I got was for a Thompson MO5 and not an Amstrad CPC 464.
Luckily, for some reason, I was born very resilient. I decided that it will not be the end. So I bought two books: one to understand the Thomson code and one to learn how to develop on an Amstrad.
I then spent the next 5 years creating games for my brother and me. To get me to sleep or eat, my parents had to use the “Parental Controls” feature shipped with all houses: the electric panel.
When I was 14 a good friend of mine told me that new computers were available and I should move away from my old Amstrad. I did some research (at that time it meant I bought some magazines) and I found out that the two big players were Atari and Commodore.
Following some bad advice, I bought an Atari 520STE. I realized it was a big mistake a few weeks later when I visited a close friend who had a Commodore Amiga 500. O.M.G! That computer. It was a monster! It had all that a 14 year old nerd could dream of! It was the perfect companion I was looking for.
I sold that crappy Atari and a part of my liver to buy the new Commodore Amiga 500+.
I also got my hands on the fantastic AMOS which was an incredible high-level language that let you play with all the wonders available on the Amiga. I was not really into going outside before, but I had now reached a point where I could have masqueraded as a vampire without the need for any make-up.
I loved the time I spent on my Amiga. The games, the applications, the workbench, a really preemptive multitasking kernel… everything was genuinely awesome.
This is where I was first exposed to the world of demo making. A demo is a masterful piece of software which is created to show off your technical/artistic skills. The most brilliant developer minds were competing during multi-day contests to demonstrate their skills.
When I was 17, I finally got my first PC. It was an Intel 486 DX. It was running at 33MHz and it was shipped with a on-chip floating point unit. After having spent the last 3 years watching demos, I decided it was time for me to jump in and create my own. This is were I created my first “3D” engine. It was running on DOS 6.22 and was initially created with Pascal (but I discovered later that the language was not powerful enough for this kind of heavy task so I ported the “engine” to C using the Watcom C 32-bit compiler)
The demo named Creation can be seen here (remember it was on a computer running at 33MHz with no hardware accelerated support).
I presented the demo during the Place2Be party (held in south of France) and I won nothing. But it was a good start. I was able to ship something!
Then I kept working on the engine which finally got a name: The Z-Engine.
For the second edition of the engine, I was back on track with a new demo:
The demo named Evolution can be seen here (disclaimer: this is still ugly but I can tell you I was really proud of it). The engine was now capable of rendering textures and dynamic lighting. And everything was CPU-based as the GPU did not even exist at that time.
Then something incredible happened. 3dfx shipped the first Voodoo Graphics card. It was a blast! The very first GPU available for everyone! All this raw power!
I ported my engine to Glide which was the OpenGL-like API used to program the Voodoo cards.
In 1999, I ported the engine from Glide to Direct3D 7. The engine evolved from MS-DOS to become compatible with Windows. To celebrate the move I renamed it Nova. It was a tribute to Desty Nova, a character I loved in the fantastic Gunnm (aka Battle Angel Alita in the US) manga.
Thanks to Direct3D 7 (and then 8, 9, and 10), I was able to run the engine on an accelerated GPU (nVidia for instance or Matrox).
We used that new engine with a demo named End of Millenium that we presented at the Volcanic Party 1999. We finished in fourth place and it was quite an achievement for me!
I used this engine for several demos until 2001 when I decided to work with a real artist, Michel Rousseau. Thanks to his talent we were able to create real models and better textures.
We presented our new demo (named New Millenium) at the Slash Party (held near Bordeaux in France) and for the very first time, WE WON!
You can see it here.
This victory motivated Michel and I to fund a company named Vertice where we sold the license of the engine for various uses (Architectural, simulation, serious gaming, etc…).
I was the CEO of Vertice from 2001 to 2011. I had very good memories of that period. One of them helps me stay humble: in 2005, I saw the birth and the raise of a tiny company based in Denmark. At the beginning we were definitely not considering them as competitors. We were terribly wrong.
In 2011, I decided to change my life completely. I sold my companies (Vertice and Bewise, a consulting company specialized in Microsoft development technologies) and I went to Paris to work for… Microsoft. :)
The rights to Nova (version 2010) was a owned by Vertice so I left it behind.
I joined Microsoft to work as a Silverlight/HTML 5 evangelist. On my spare time, because this is what I really love, I created a new engine named Babylon (as a tribute to Babylon 5, the best TV show ever, where the special FX shots were made using multiple Amiga 4000 computers). Babylon was the spiritual successor to Nova and was able to read all the scenes created for Nova.
Babylon was initially developed with Silverlight 5 and was compatible with Windows and MacOS. I then ported it to C#/DirectX to let me develop some games for the Windows Store but I was kind of frustrated as I really wanted to work on an engine that could truly be cross-platform.
And in October 2013, Microsoft shipped Internet Explorer 11 and that changed everything. For the very first time, a 3D technology was available virtually everywhere. WebGL (which was now supported by Internet Explorer 11) let developers create 3D experiences that could work on all browsers, on all platforms!
I also used the engine with my friend David Rousset (who was working on HTML5 evangelism with me at Microsoft) to demonstrate what web standards can do. Together, we did quite a few talks in Europe about 3D on the web. The engine was a good excuse for us to talk about Internet Explorer and web standards in general (For instance, David added support for standards like IndexedDB or WebAudio on top of the engine).
In 2015 I accepted a position in Seattle to work on Edge evangelization. So my wife and I moved to the US and Babylon.js followed us (it was kind of my only kid at that time).
I kept working on it mostly on my spare time even though I was also allowed to spend time on it during the day as it was being used to help demonstrating 3d features of Edge.
Up until the point where other Microsoft employees (I am thinking of you, Sebastien Vandenberghe) decided to start using Babylon for some of their first-party products (SharePoint, Remix3D, Xbox Gamepads, Xbox avatars, and many more).
And then a miracle happened (again!). Microsoft decided to offer me a position where I could work on Babylon full-time. They were paying me to work on my passion project!
That offer came in May 2017, and it is how the Babylon.js team came to life.