The Compiler Driver (1/5)| fabiensanglard.net
Introduction| fabiensanglard.net
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
| Fabien Sanglard
How Stunt Island from IBM PC was programmed back in 1992!| Fabien Sanglard
How DOOM was implemented on PlayStation 1!| Fabien Sanglard
How Another World was implemented as a passion project on Jaguar!| Fabien Sanglard
20 years later, I have built an other PC!| Fabien Sanglard
How Another World was implemented on Game Boy Advance!| Fabien Sanglard
How Another World was implemented on Super Nintendo!| Fabien Sanglard
How Another World was implemented on Sega Genesis/Megadrive!| Fabien Sanglard
How Another World was implemented on PC DOS!| Fabien Sanglard
How Another World was implemented on Atari ST!| Fabien Sanglard
How Another World was implemented on Amiga!| Fabien Sanglard
Let's kick off the year with a series about Another World!| Fabien Sanglard
There is a playful way to study the architecture of computers of the past. Find a piece of software you know well and try to find out how it was ported to these machine you don't...| Fabien Sanglard
I took some time to study how NBA Jam arcade cabinet worked. Here is what I learned.| Fabien Sanglard
The story of how the 3dfx Voodoo 1 which ruled 3D gaming from 1996 to 1998.| Fabien Sanglard
The story of how the Rendition v1000 briefly rule the Quake world.| Fabien Sanglard
How the playstation and Nintendo 64 version of DOOM implemented fire.| Fabien Sanglard
How Andrew Kensler did it again and authored a breathtaking path tracer fitting on a postcard.| Fabien Sanglard
How the Dreamcast copy protection was defeated!| Fabien Sanglard
The Game Engine Black Book: DOOM is out!| Fabien Sanglard
The second edition of the Game Engine Black Book: Wolfenstein 3D is out.| Fabien Sanglard
It used to happen sporadicly but now it is a daily experience.| Fabien Sanglard
I am pleased to announce that the Game Engine Black Book about Wolfenstein 3D has shipped. It is 316 pages, full color and made of three parts describing the hardware of the 1991, id Software tools, and the game engine internals. You can read a preview on Google Books and buy it here: Amazon.com (.fr, .de, .co.uk, .ca,...). Google Play Books for web browsers, Android devices, and iOS devices. It took me three years to complete this project. It had its fair share of heavy winds and bumpy roads...| Fabien Sanglard
I enjoy reading a lot of source code and after 15 years in the field I feel like I have seen my fair share. Even with a full-time job, I still try to spare evenings here and there to read. I don't see myself every stopping. It is always an opportunity to learn new things to follow somebody's mind process. Every once in a while I come across a solution to a problem that is so elegant, and so creative that there is no other word but "beautiful" to describe it. Q_rsqrt, better knows as "Inverse ...| Fabien Sanglard
How was Wolfenstein 3D made and what were the secrets of its speed? How did id Software manage to turn a machine designed to display static images for word processing and spreadsheet applications into the best gaming platform in the world, capable of running games at seventy frames per seconds? If you have ever asked yourself these questions, Game Engine Black Book is for you. This is an engineering book. You will not find much prose in it (the author’s English is broken anyway.) Instead, t...| Fabien Sanglard
I have been tinkering with the vanilla source code of Wolfenstein 3D from 1992. Even though it is more than 20 years old: It still compile and here is how to do it (with plenty of screenshots).| Fabien Sanglard
I am almost done with the first volume of what I hope will become a serie called "Game Engine Black Book". Each book would take further what I tried to do with my articles: Explain simply, yet in great details, a legendary game engine. For the first one I decided to go with Wolfenstein 3D.| Fabien Sanglard
Jurassic Park: Trespasser is an unique piece of software: It is a game that has managed to reach both infamous and cult status. Released in October 1998 after a three years development cycle, it was unanimously destroyed by critics. But it did not fail by much and managed to grow an impressive mass of fans that wrote editors, released patches, reverse-engineered the assets, added features, produced new dinosaurs, levels and even started a remake. 20 years later, bloggers still write about it ...| Fabien Sanglard
Since its release in December 2005, git has taken over the software industry. In combination with GitHub it is now a powerful tool to publish and share code: From big teams (linux kernel, id Software, Epic Unreal) to single individual (Prince of Persia, Another world, Rick Dangerous), many have adopted it as their main SCM. I wanted to get a better understanding of the "stupid content tracker" and see how it was built so I spent a few weeks in my spare time reading the source code. I found it...| Fabien Sanglard
Back in the 90s, one book was ubiquitous in the world of Computer Graphics. Commonly called "The CG Bible", Computer Graphics: Principles and Practice gathered a huge part of the knowledge of the time. It was commonly referenced by the best programmers of that era in interviews and articles. By 1998, the book popularity had been acknowledged with a Front Line Award. More...| Fabien Sanglard
Over the years running this moderately popular website, I have been asked many times what is the best book about Algorithms and Data Structures. The answer is always "It depends" ! It depends on how the programmer's brain works and what kind of notation he is comfortable with. There are many flavors of mindset out there but it usually comes down to Mathematics and Illustrations...| Fabien Sanglard
If you love software, you also try to understand the hardware to the deep down. It is not an easy task : There are many great programming books but few that explains hardware very well (as Michael Abrash once wrote: the Intel Documentation is "slightly more fun to read than the phone book"). In my quest for knowledge, I found two hardware books to be outstanding: Code: The Hidden Language of Computer Hardware and Software. Computer Organization and Design. Those books are good for "current" h...| Fabien Sanglard
I recently came across Paul Heckbert's business card raytracer. For those that have never heard of it: It is a very famous challenge in the Computer Graphics field that started on May 4th, 1984 via a post on comp.graphics by Paul Heckbert ( More about this in his article "A Minimal Ray Tracer" from the book Graphics Gems IV). The goal was to produce the source code for a raytracer...that would fit on the back of a business card. Andrew Kensler's version is mesmerizing and one of the greatest ...| Fabien Sanglard
id Software developer Jan Paul Van Waveren (a.k.a Mr Elusive) is sharing some more of the knowledge gained while working on Doom 3 BFG. This part focuses highly on the choice of data-structures and how paramount cacheline are to performances.| Fabien Sanglard
id Software developer Jan Paul Van Waveren (a.k.a Mr Elusive) send me his technical notes about Doom 3 BFG. I was especially interested in the "Compute vs. Memory" section which confirms that CPU are now so fast that it is often better to calculate something than fetch it from RAM. Jan Paul was also kind enough to share a list of all the publications related to idTech4 engine (see bottom of this page). More...| Fabien Sanglard
On July 23, 2013 the source code of Second Reality was released. Like many, I was eager to look at the internals of a demo that inspired me so much over the last 20 years. I was expecting a monolithic mess of assembly but instead I found a surprisingly elaborated architecture, mixing several languages in an elegant way. The code is something like I had never seen before that perfectly represents two essential aspects of demomaking : Team work. Obfuscation. As usual I have cleaned up my notes ...| Fabien Sanglard
On Apr 17, 2012 Jordan Mechner released the source code of Prince of Persia. I immediately took at look at it!| Fabien Sanglard
On November 26, 2012 id Software released the source code of Doom 3 BFG edition (only one month after the game hit the stores). The 10 years old idTech 4 engine has been updated with some of the technology found in idTech 5 (the game engine running Rage) and it was an interesting reading session. More...| Fabien Sanglard
Since I left my job at Amazon I have spent a lot of time reading great source code. Having exhausted the insanely good idSoftware pool, the next thing to read was one of the greatest game of all time : Duke Nukem 3D and the engine powering it named "Build". It turned out to be a difficult experience: The engine delivered great value and ranked high in terms of speed, stability and memory consumption but my enthousiasm met a source code controversial in terms of organization, best practices an...| Fabien Sanglard
To be a good Software Engineer can mean different things depending on what one is trying to achieve. But if you are after any kind of performances, to use the best algorithms is not enough: you must have a solid knowledge of the specific stack your program is relying on. . I have gathered here the few books I consider to be masterpiece in order to master most stacks. Two for each level. More...| Fabien Sanglard
When I started game programming I ran into an issue common to most aspiring game developers: The naive infinite loop resulted in many problems (among then difficulties to record a game session properly) that led the game design to feature convoluted and confusing "fixes" ./> /> Since I came up with a simple solution in my last engine (SHMUP: An iOS / Android / MacOS X / Windows Shoot'em Up) I wanted to share it here:/> /> Maybe it will save a few hours to someone :) !/> /> . More...| Fabien Sanglard
Virtual Reality headsets have been consistently disappointing for several decades. Three reasons come to mind in order to explain this state of things: The hardware is expensive: The latest Sony HMZ-T1 is 799$. The hardware is not good enough: The motion sensor, screen latency and screen limited Field of View are unable to provide a feeling of immersion. The software is non-existent: No major studio has ever supported VR Headsets. But things are about to change thanks to a device that is goin...| Fabien Sanglard
On November 23, 2011 id Software maintained the tradition and released the source code of their previous engine. This time is was the turn of idTech4 which powered Prey, Quake 4 and of course Doom 3. Within hours the GitHub repository was forked more than 400 times and people started to look at the game internal mechanisms/port the engine on other platforms. I also jumped on it and promptly completed the Mac OS X Intel version which John Carmack kindly advertised. In terms of clarity and comm...| Fabien Sanglard
I received yesterday a copy of Ghost In The Wire Paperback edition. Kevin Mitnick seems to have updated all of the challenges found at the beginning of each chapters. Since they are all available on book.google.com preview I don't think it is a big deal to publish and discuss our solutions here. . More...| Fabien Sanglard
This is probably the proudest moment of my Computer Science career so far: On April 17th, 2012 the Government of Ontario released the Mobile Website I designed and implemented for the major part of 2011. Beadonor.ca allows you reinforce your decision to be an organ donor. I feel honored and privileged to have been able to contribute to such a noble cause. Many people are unaware of it but to become an organ donor is all about making sure your relatives will follow your decision when we are go...| Fabien Sanglard
March 17, 2012| fabiensanglard.net
FABIEN SANGLARD'S WEBSITE| fabiensanglard.net
Introduction| fabiensanglard.net
Jan 22th, 2014| fabiensanglard.net
FABIEN SANGLARD'S WEBSITE| fabiensanglard.net