Fabien Sanglard
-
Building my childhood dream PC
Published
-
Why fastDoom is fast
Published
-
Watching sunsets
Published
-
SNES: Sprites and backgrounds rendering
Published
-
How the SNES Graphics System works
Published
-
Carving the Super Nintendo Video System
Published
-
Inside the Super Nintendo cartridges
Published
-
The evolution of the Super Nintendo motherboard
Published
-
The hearts of the Super Nintendo
Published
-
How the DevTeam conquered the iPhone
Published
-
Why Android developers no longer need Windows USB drivers
Published
-
How Apple's Pro Display XDR takes Thunderbolt 3 to its limit
Published
-
The bash book to rule them all
Published
-
0x4 reasons to write and publish
Published
-
Forty years of programming
Published
-
Exploring Command-line space time
Published
-
Ode to the M1
Published
-
mDNS Primer
Published
-
Commander Keen: Adaptive Tile Scrolling
Published
-
10NES
Published
-
Good Vibrations
Published
-
Driving Compilers
Published
-
The Joy of Computer History Books
Published
-
All you may need is HTML
Published
-
Mjolnir
Published
-
A Linux evening...
Published
-
Books update
Published
-
The Book Of CP-System, paper version
Published
-
CCPS: A CPS-1 SDK
Published
-
The Book Of CP-System
Published
-
The Beautiful Diablo 2 Resurrected machine
Published
-
USB Cheat Sheet
Published
-
CPS-1: GFX system internals
Published
-
Street Fighter 2: Sound System Internals
Published
-
Street Fighter 2: Subtile accurate animation
Published
-
Street Fighter 2: Spin when you can't
Published
-
Street Fighter 2: The World Warrier
Published
-
Following Street Fighter 2 paper trails
Published
-
Observing my cellphone switch towers
Published
-
Game Engine Black Book: DOOM, Korean Edition
Published
-
The confusing world of USB
Published
-
The beautiful silent thunderbolt-3 PC
Published
-
These are called opportunities
Published
-
Game Engine Black Book: Wolfenstein 3D, Korean Edition
Published
-
WHEN 13.3 > 14
Published
-
Switching to Lenovo Carbon X1
Published
-
Discret 11, the French TV encryption of the 80's
Published
-
A tale of Ghosts'n Goblins'n Crocos
Published
-
Revisiting the postcard pathtracer
Published
-
0x10 rules
Published
-
An history of NVidia Stream Multiprocessor
Published
-
Revisiting the Businesscard Raytracer
Published
-
The Making Of Stunt Island
How Stunt Island from IBM PC was programmed back in 1992!
Published
-
The Polygons of DOOM: PSX
How DOOM was implemented on PlayStation 1!
Published
-
The Polygons of Another World: Jaguar
How Another World was implemented as a passion project on Jaguar!
Published
-
The beautiful machine
20 years later, I have built an other PC!
Published
-
The Polygons of Another World: GBA
How Another World was implemented on Game Boy Advance!
Published
-
The Polygons of Another World: SNES
How Another World was implemented on Super Nintendo!
Published
-
The Polygons of Another World: Genesis
How Another World was implemented on Sega Genesis/Megadrive!
Published
-
The Polygons of Another World: PC DOC
How Another World was implemented on PC DOS!
Published
-
The Polygons of Another World: Atari ST
How Another World was implemented on Atari ST!
Published
-
The Polygons of Another World: Amiga
How Another World was implemented on Amiga!
Published
-
The Polygons of Another World
Let's kick off the year with a series about Another World!
Published
-
Strike Commander: Interview with Frank Savage
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...
Published
-
A trip down NBA Jam graphics pipeline
I took some time to study how NBA Jam arcade cabinet worked. Here is what I learned.
Published
-
Game Engine Black Book update
The Game Engine Black Books have been updated. Free pdfs, high-quality prints, and source code are available.
Published
-
The story of the 3dfx Voodoo 1
The story of how the 3dfx Voodoo 1 which ruled 3D gaming from 1996 to 1998.
Published
-
The story of the Rendition Vérité 1000
The story of how the Rendition v1000 briefly rule the Quake world.
Published
-
How DOOM fire was made
How the playstation and Nintendo 64 version of DOOM implemented fire.
Published
-
Deciphering the postcard sized raytracer
How Andrew Kensler did it again and authored a breathtaking path tracer fitting on a postcard.
Published
-
How the Dreamcast copy protection was defeated
How the Dreamcast copy protection was defeated!
Published
-
Game Engine Black Book: DOOM
The Game Engine Black Book: DOOM is out!
Published
-
Game Engine Black Book: Wolfenstein 3D, 2nd Edition
The second edition of the Game Engine Black Book: Wolfenstein 3D is out.
Published
-
Bloated
It used to happen sporadicly but now it is a daily experience.
Published
-
Game Engine Black Book Postmortem
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…
Published
-
FizzleFade
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…
Published
-
Game Engine Black Book ReleaseDate
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…
Published
-
Let's compile like it's 1992
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).
Published
-
Game Engine Black Books
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.
Published
-
Trespasser: Jurassic Park CG Source Code Review
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…
Published
-
Git Source Code Review
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…
Published
-
The Computer Graphics Library
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…
Published
-
Algorithms and Data structures books: One size doesn't fit them all
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…
Published
-
Learning Legendary Hardware
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…
Published
-
Decyphering the Business Card Raytracer
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…
Published
-
More Doom III BFG Documentation
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.
Published
-
Doom III BFG Documentation
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…
Published
-
Second Reality Code Review
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…
Published
-
Prince Of Persia Code Review
On Apr 17, 2012 Jordan Mechner released the source code of Prince of Persia. I immediately took at look at it!
Published
-
Doom3 BFG Code Review
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…
Published
-
Reverse Engineer Strike Commander
Back in the early 90s, one company was on the bleeding edge of PC gaming: Origin Systems. Their motto was "We Create Words" and boy did they deliver: With the Ultima series, Crusader series and Wing Commander series, they consistently took gamer's breath away. One of them took four years and more than…
Published
-
Duke Nukem 3D Code Review
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…
Published
-
The best Tech books
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…
Published
-
Game timers: Issues and solutions
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…
Published
-
Oculus RIFT development
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…
Published
-
Quake 3Source Code Review
Since I had one week before my next contract I decided to finish my "cycle of id". After Doom, Doom Iphone, Quake1, Quake2, Wolfenstein iPhone and Doom3 I decided to read the last codebase I did not review yet: idTech3 the 3D engine that powers Quake III and Quake Live. . More...
Published
-
Doom3 Source Code Review
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…
Published
-
Cracking Kevin Mitnick's Ghost In Tthe Wires Paperback Edition
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…
Published
-
Be A Donor
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…
Published
-
SSD reboot your thinking
How SDD drives took my breath away...
Published
-
Android Shmup
Six months ago I released the source code of "SHMUP": a modest indie 3D shoot'em up designed for iOS. Since it did honorably on the Apple Appstore I offered anyone to port it to Android Appmarket for a 50/50 revenues split. Two developers consecutively took on the challenge only to give up a few weeks…
Published
-
Another World Code Review
I spent two weeks reading and reverse engineering further the source code of Another World (Out Of This World in North America). I based my work on Gregory Montoir's binary to C++ initial reverse engineering from the DOS executable. I was amazed to discover an elegant system based on a virtual machine…
Published
-
Progressive playback: An atom story
I have been doing a lot of work with video containers recently, especially figuring out interoperability between iOS/Android and optimizing progressive playback. In particular it seems Android devices fail to perform progressive playback on certain files while iOS and VLC succeed: Why ? As usual understanding…
Published
-
How to build Doom3 on Mac OS X with XCode
The source code of Doom3 has been released three days ago :) ! I have started to read it and I will probably write a code review if enough people are interested. According to the README.txt the source code is building well with Visual Studio 2010 but it is not building at all on Mac OS X with XCode 4.0…
Published
-
Quake 2 Source Code Review
I spent about a month in my spare time reading the source code of Quake II. It was a wonderful learning experience since one major improvement in idTech3 engine was to unify Quake 1, Quake World and QuakeGL into one beautiful code architecture. The way modularity was achieved even though the C programming…
Published
-
Solving Ghost in The Wire codes
I received today my copy of Kevin Mitnick's book: Ghost in The Wires. It is a great read so far. But even more interesting are the cyphered sentences at the beginning of each chapters. I am trying to solve all of them but if you can contribute, comment or send me an email ! . More...
Published
-
Hacker Monthly publication
Hacker Monthly July edition has published my article in which I described the internals of Doom engine.. . More...
Published
-
SHMUP Source Code
I have decided to release the full source code of "Shmup" a shoot'em up 3D engine specially designed for mobile platform and released on iOS in 2010. The game and engine are fairly inspired of Ikaruga, the legendary shmup from the 1999 DreamCast. Anything you saw in Ikaruga, this engine can do it too…
Published
-
Polygon Codec
Back in the summer of 2009 I was working on a 3D engine that would power my next game: A 3D shoot'em up a la Ikaruga. The target was the very first iPhone (now called iPhone 2G). Despite being impressive on paper (600Mhz with dedicated GPU), the hardware had several issues and the lack of dedicated VRAM…
Published
-
dEngine Source Code Released
I've decided to release the source code of the OpenGS ES 1.0/2.0 renderers I wrote in the summer of 2009 nicknamed "dEngine". It was the first renderer to feature Shadow Mapping and Bump Mapping on iPhone at the time. Note that shadow mapping was achieve by packing the depth informations in a color texture…
Published
-
To generate 60fps videos on iOS
Back in winter 2009 I was working pretty hard on the 3D engine that would power my next iPhone/iPad game: "SHMUP". To demo the work in progress required to generate videos, a task far from being trivial on a smartphone: Slow CPU/GPU, Little RAM, no TV output, no storage space, no real multitasking. Hence…
Published
-
To become a good C programmer
Every once in a while I receive an email from a fellow programmer asking me what language I used for one of my games and how I learned it. Hence, I thought it may help a few people to list here the best things to read about C. If you know of other gems, please email me or add a comment at the bottom…
Published
-
SHMUP Lite
I have decided to release a free version of "SHMUP". It is called "SHMUP Lite" and the only limitation is that you can only play the first level for free, if you want to continue further you have to go for the full version.
Published
-
All about the fillrate
I bought "Blade infinity" yesterday. The game is a lot of fun and has the ability to satisfy both people looking for instant fun and people wishing for a long game while collecting powerful items. At $5.99 it is a bargain, a must have not only for the gameplay but also for its graphical breakthrough…
Published
-
Tracing the baseband
I was reading an article on planetbeing's blog the other day and my curiosity was tipped off when he mentioned that phones don't run only one operating system but two. I decided to learn a bit how all this really works and here are my notes with the source code associated. Hopefully it will help someone…
Published
-
Doom iPhone code review
I took some time away from programming something I hope will become a really good shmup and read the source code of Doom for iPhone. I was very interested in finding out how a pixel oriented engine made the transition to openGL. Here are my notes, as usual I got a bit carried away with the drawings.
Published
-
Doom engine 1993 code review
Before studying the iPhone version, it was important for me to understand how Doom engine WAS performing rendition back in 1993. After all the OpenGL port must reuse the same data from the WAD archive. Here are my notes about Doom 1993 renderer, maybe it will help someone to dive in.
Published
-
Don't learn Assembly on Mac OS X
I had to do some low level work with Mac OS X snow-leopard using my MacBookPro CoreDuo2. I learned plenty regarding GAS for i386 and x86_64 but I would not recommend this setup to learn assembly. I think Apple's specific would discourage a beginner and impair ability to use code samples found in most…
Published
-
Apple iPhone Tech Talk 2009 tricks and treats
Today I took a day off from work to attend the iPhone Apple Tech Talk 2009 in Toronto. I learned a few cool things and though I should share it with the two lost developers that may stumble on this page. I haven't had time to test and verify all of this so as usual: Do your own testing and trust nobody…
Published
-
iPhone 3D engine programming part 1
Pumped up by the tremendous success of Fluid (4,000,000+ downloads) and Fluid 2 (50,000+ downloads), I started two month ago to write a real game for iPhone: Here is a modest report of my experience in the process.
Published
-
Armadillo Space T-shirt
Finally received my Armadillo Space T-Shirt and mug. I recommend them !
Published
-
Wolfenstein 3D for iPhone code review
For once, developers were able to read the source code of an id software product just a few days after its release. I spent a week in my spare time reading the internal of the Wolfenstein 3D for iPhone engine. It is by far the cleanest and easiest id source code release to date.
Published
-
Fluide
Fluid tech demo released on iPhone !!!
Published
-
BumpMapping hell
Published