<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
 <channel>
  <title>fabiensanglard.net</title>
<atom:link href="http://fabiensanglard.net/rss.xml" rel="self" type="application/rss+xml" />
  <link>http://fabiensanglard.net</link>
  <description>Chronicles of software wizardry.</description>
  <language>en-us</language>
  <copyright></copyright>
  <lastBuildDate>Fri, 14 Jun 2013 01:08:45 0000</lastBuildDate>
  <docs>http://www.rssfeedssubmit.com/rss-generator/</docs>
  <image>
   <url>http://fabiensanglard.net/gift_of_life/gol.png</url>
   <title>fabiensanglard.net</title>
   <link>http://fabiensanglard.net</link>
  </image>







 <item>
         <title>Prince Of Persia Code Review.</title>
         <guid>http://fabiensanglard.net/prince_of_persia/index.php</guid>
         <link>http://fabiensanglard.net/prince_of_persia/index.php</link>
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/prince_of_persia/prince_of_persia.png&quot;/&gt; &lt;br/&gt;
             &lt;br/&gt;
             
             On Apr 17, 2012 Jordan Mechner released the source code of Prince of Persia.&lt;/a&gt;
&lt;/a&gt;
Even though it is the Apple II version written in 6502 assembly language, it was a pleasant experience to dive in the code of that mythical game: As usual there were many fascinating sofware wizardries to discover.&lt;/a&gt;
&lt;/a&gt;
The Apple II apparent poor environment for game programming was actually ground to unmatched innovation and creativity : From self-modifying code, in-house bootloader, clever floppy disc format to skewing lookup tables: Prince Of Persia features engineering treasures in every modules.&lt;/a&gt;
&lt;/a&gt;
Reading the source allowed me not only to learn about the game development process of the 80s but it also renewed my appreciation for things that we take for granted today.&lt;/a&gt;
&lt;/a&gt;
As usual I took numerous notes that I have cleaned up on this page. I hope it will inspire others to read more source code and become better engineers.&lt;/a&gt;
            
            &lt;br/&gt;
              &lt;br/&gt;
             &lt;a href=&quot;http://fabiensanglard.net/prince_of_persia/index.php&quot;&gt; More...&lt;/a&gt;
             
             
         </description>
         <pubDate>Fri, 14 Jun 2013 01:08:45 0000</pubDate>
     </item>




 <item>
         <title>Doom3 BFG Code Review.</title>
         <guid>http://fabiensanglard.net/doom3_bfg/index.php</guid>
         <link>http://fabiensanglard.net/doom3_bfg/index.php</link>
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/doom3_bfg/doom3_bfg_small.jpg&quot;/&gt; &lt;br/&gt;
             &lt;br/&gt;
             
             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.&lt;br/&gt;
            
            &lt;br/&gt;
              &lt;br/&gt;
             &lt;a href=&quot;http://fabiensanglard.net/doom3_bfg/index.php&quot;&gt; More...&lt;/a&gt;
             
             
         </description>
         <pubDate>Thu, 23 May 2013 01:08:45 0000</pubDate>
     </item>











      <item>
         <title>Duke Nukem 3D Code Review.</title>
         <guid>http://fabiensanglard.net/duke3d/index.php</guid>
         <link>http://fabiensanglard.net/duke3d/index.php</link>
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/duke3d/duke3d.png&quot;/&gt; &lt;br/&gt;
             &lt;br/&gt;
             
             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".&lt;br/&gt;
&lt;br/&gt;
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 and comments/documentation. This reading session taught me a lot about code legacy and what helps a software live long.
&lt;br/&gt;
As usual I cleaned up my notes into an article. I hope it will inspire some of us to read more source code and become better engineers.&lt;br/&gt;
&lt;br/&gt;
            
            &lt;br/&gt;
              &lt;br/&gt;
             &lt;a href=&quot;http://fabiensanglard.net/duke3d/index.php&quot;&gt; More...&lt;/a&gt;
             
             
         </description>
         <pubDate>Thu, 17 Jan 2013 01:08:45 0000</pubDate>
     </item>

     
     <item>
         <title>The best Tech books.</title>
         <guid>http://fabiensanglard.net/books_recommendations/index.php</guid>
         <link>http://fabiensanglard.net/books_recommendations/index.php</link>
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/books_recommendations/books.png&quot;/&gt; &lt;br/&gt;
             &lt;br/&gt;
             
            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. . &lt;br/&gt;
              &lt;br/&gt;
             
             
             I have gathered here the few books I consider to be masterpiece in order to master most stacks. Two for each level. &lt;br/&gt;
              &lt;br/&gt;
             &lt;a href=&quot;http://fabiensanglard.net/books_recommendations/index.php&quot;&gt; More...&lt;/a&gt;
             
             
         </description>
         <pubDate>Thu, 17 Jan 2013 01:08:45 0000</pubDate>
     </item>
     
     
     
     <item>
         <title>Game timers: Issues and solutions.</title>
         <guid>http://fabiensanglard.net/timer_and_framerate/index.php</guid>
         <link>http://fabiensanglard.net/timer_and_framerate/index.php</link>
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/timer_and_framerate/time.png&quot;/&gt; &lt;br/&gt;
             &lt;br/&gt;
             
             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" ./&gt; &lt;br/&gt;
             /&gt; &lt;br/&gt;
             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:/&gt; &lt;br/&gt;
             /&gt; &lt;br/&gt;
             Maybe it will save a few hours to someone :) !/&gt; &lt;br/&gt;
             /&gt; &lt;br/&gt;
             &lt;br/&gt;
             &lt;br/&gt;
             .&lt;a href=&quot;http://fabiensanglard.net/timer_and_framerate/index.php&quot;&gt; More...&lt;/a&gt;
             
             
         </description>
         <pubDate>Tue, 25 Dec 2012 01:08:45 0000</pubDate>
     </item>
     
     
     
     
     <item>                                                                                                                                     
         <title>Oculus RIFT development</title>
         <guid>http://fabiensanglard.net/vr_headset/index.php</guid>                                                               
         <link>http://fabiensanglard.net/vr_headset/index.php</link>                                                               
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/vr_headset/vr_headset_icon.png&quot;/&gt; &lt;br/&gt; 
             &lt;br/&gt;
             
             Virtual Reality headsets have been consistently disappointing for several decades. Three reasons come to mind in order to explain this state of things:&lt;br/&gt; 
             &lt;br/&gt; 
             &lt;ul&gt; 
             &lt;li&gt; The hardware is expensive: The latest Sony HMZ-T1 is 799$.&lt;/li&gt;
             &lt;li&gt;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.&lt;/li&gt;
             &lt;li&gt;The software is non-existent: No major studio has ever supported VR Headsets.&lt;/li&gt;
             &lt;/ul&gt; 
             &lt;br/&gt; 
             But things are about to change thanks to a device that is going to be released this month via kickstarter funding: the Oculus rift.&lt;br/&gt; 
             
             
            
             
             
             &lt;br/&gt;  
             &lt;br/&gt;                                                                                                                                  
             .&lt;a href=&quot;http://fabiensanglard.net/vr_headset/index.php&quot;&gt; More...&lt;/a&gt;   
             
             
         </description>                                                                                                                               
         <pubDate>Sat, 30 Jun 2012 01:08:45 0000</pubDate>                                                                                         
     </item>      
     
     
     
     <item>                                                                                                                                     
         <title>Quake 3Source Code Review.</title>                                                                                       
         <guid>http://fabiensanglard.net/quake3/index.php</guid>                                                               
         <link>http://fabiensanglard.net/quake3/index.php</link>                                                               
         <description>
             
             &lt;img src=&quot;http://fabiensanglard.net/quake3/quake3_icon.jpg&quot;/&gt; &lt;br/&gt; 
             &lt;br/&gt;
             
             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:&lt;br/&gt; 
             &lt;br/&gt;
             idTech3 the 3D engine that powers Quake III and Quake Live. &lt;br/&gt;
             &lt;br/&gt;
             
             &lt;br/&gt;  
             &lt;br/&gt;                                                                                                                                  
             .&lt;a href=&quot;http://fabiensanglard.net/quake3/index.php&quot;&gt; More...&lt;/a&gt;   
             
             
         </description>                                                                                                                               
         <pubDate>Sat, 30 Jun 2012 01:08:45 0000</pubDate>                                                                                         
     </item>       
     
     
     
     

       <item>                                                                                                                                     
         <title>Doom3 Source Code Review.</title>                                                                                       
         <guid>http://fabiensanglard.net/doom3/index.php</guid>                                                               
         <link>http://fabiensanglard.net/doom3/index.php</link>                                                               
         <description>
         
         &lt;img src=&quot;http://fabiensanglard.net/doom3/icons/doom3_icon_desaturated.png&quot;/&gt; &lt;br/&gt; 
         
         
         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.&lt;br/&gt;
         &lt;br/&gt;
         In terms of clarity and comments this is the best code release from id Software after Doom iPhone codebase (which is more recent and hence better commented). I highly recommend everybody to read, build and experiment with it.&lt;br/&gt;
        &lt;br/&gt;
         &lt;br/&gt;
         Here are my notes regarding what I understood. As usual I have cleaned them up: I hope it will save someone a few hours and I also hope it will motivate some of us to read more code and become better programmers.&lt;br/&gt;



         
                                       
         </description>                                                                                                                               
         <pubDate>Fri, 08 Jun 2012 01:08:45 0000</pubDate>                                                                                         
     </item>  
  
  
  
  
  
     
     <item>                                                                                                                                     
         <title>CRACKING KEVIN MITNICK'S GHOST IN THE WIRE PAPERBACK EDITION.</title>                                                                                       
         <guid>http://fabiensanglard.net/Ghost_in_the_Wires_Paperback/index.php</guid>                                                               
         <link>http://fabiensanglard.net/Ghost_in_the_Wires_Paperback/index.php</link>                                                               
         <description>&lt;img src=&quot;http://fabiensanglard.net/Ghost_in_the_Wires/icon.jpg&quot;/&gt; &lt;br/&gt;       
             &lt;br/&gt;                                                                                                                                    
             
             
           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.&lt;br/&gt; 
             
             &lt;br/&gt;  
             &lt;br/&gt;                                                                                                                                  
             .&lt;a href=&quot;http://fabiensanglard.net/Ghost_in_the_Wires_Paperback/index.php&quot;&gt; More...&lt;/a&gt;                                
         </description>                                                                                                                               
         <pubDate>Wed, 09 May 2012 01:08:45 0000</pubDate>                                                                                         
     </item>  
     

     
     
     
     <item>                                                                                                                                     
         <title>Be A Donor.</title>                                                                                       
         <guid>http://fabiensanglard.net/gift_of_life/index.php</guid>                                                               
         <link>http://fabiensanglard.net/gift_of_life/index.php</link>                                                               
         <description>&lt;img src=&quot;http://fabiensanglard.net/gift_of_life/gol.png&quot;/&gt; &lt;br/&gt;       
             &lt;br/&gt;                                                                                                                                    
             
             
             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.&lt;br/&gt;  
             &lt;br/&gt; 
             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 gone. An organ donor card...and actually any piece of paper that you may generate or sign while your are alive is NOT enough to allow organ donation. Your relative will have the last word: Even if you have an organ donor card it is important to also register online in order to help your family know what your views were in this regard.&lt;br/&gt; 
             &lt;br/&gt; 
             Hopefully with this additional testimony more lives will be saved: Words can hardly express how happy I am to be a little gear in this beautiful machine. &lt;br/&gt; 
             
             &lt;br/&gt;  
             &lt;br/&gt;                                                                                                                                  
             .&lt;a href=&quot;http://fabiensanglard.net/gift_of_life/index.php&quot;&gt; More...&lt;/a&gt;                                
         </description>                                                                                                                               
         <pubDate>Sun, 22 Apr 2012 01:08:45 0000</pubDate>                                                                                         
     </item>  
     


  
  <item>                                                                                                                                     
   <title>SSD reboot your thinking.</title>                                                                                       
  <guid>http://fabiensanglard.net/ssd/index.php</guid>                                                               
  <link>http://fabiensanglard.net/ssd/index.php</link>                                                               
   <description>&lt;img src=&quot;http://fabiensanglard.net/ssd/ssd.png&quot;/&gt; &lt;br/&gt;       
&lt;br/&gt;                                                                                                                                    


  I started to look into Solid State Drives while studying "id Tech5": The 3D engine powering Rage by id Software. One of the numerous innovations is called MegaTexture (also known as "Sparse Virtual Texturing"). It is a technology that allows artists to use gigabytes of texture without worrying about running out of RAM at runtime. The engine detects what is visible and then streams the necessary texture from the storage drive up to the Video RAM where it is used for rendition.&lt;br/&gt; 
&lt;br/&gt; 
The graphic result looks pretty good running on a Hard Disk Drive but it flies when used with a Solid State Drive.&lt;br/&gt; 
&lt;br/&gt; 
Director of R&amp;D John Carmack said a few words about how SSD performances "reboot" the old dichotomy: &quot;RAM&quot; Vs &quot;Storage Drive&quot;.&lt;br/&gt;  
&lt;br/&gt; 
After much reading about TRIM support, SandForce and performances degradations I opted for an OCZ Vertex 3 and an Intel serie 520 that I promptly installed in my MacPro. Here are my impressions after one week.&lt;br/&gt; 

&lt;br/&gt;  
&lt;br/&gt;                                                                                                                                  
.&lt;a href=&quot;http://fabiensanglard.net/ssd/index.php&quot;&gt; More...&lt;/a&gt;                                
</description>                                                                                                                               
   <pubDate>Sat, 17 Mar 2012 01:08:45 0000</pubDate>                                                                                         
 </item>  
  
  
  
  
  
  
  
  
  

  <item>                                                                                                                                     
   <title>Android Shmup.</title>                                                                                       
  <guid>http://fabiensanglard.net/shmup_android/index.php</guid>                                                               
  <link>http://fabiensanglard.net/shmup_android/index.php</link>                                                               
   <description>&lt;img src=&quot;http://fabiensanglard.net/shmup_android/shmup_android.png&quot;/&gt; &lt;br/&gt;       
&lt;br/&gt;                                                                                                                                    

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 later.&lt;br/&gt;  
&lt;br/&gt;  
So I downloaded the Native Development Kit from Google and I did it myself. I completed the port this weekend and even released a free version.&lt;br/&gt;  
&lt;br/&gt;  
The codebase runs on Windows, iOS, MacOS X and Android in one click. Here it is.&lt;br/&gt;  
&lt;br/&gt;  
&lt;br/&gt;                                                                                                                                  
.&lt;a href=&quot;http://fabiensanglard.net/shmup_android/index.php&quot;&gt; More...&lt;/a&gt;                                
</description>                                                                                                                               
   <pubDate>Thu, 23 Feb 2012 01:08:45 0000</pubDate>                                                                                         
 </item>




<item>                                                                                                                                     
   <title>Another World Code Review.</title>                                                                                       
  <guid>http://fabiensanglard.net/anotherWorld_code_review/index.php</guid>                                                               
  <link>http://fabiensanglard.net/anotherWorld_code_review/index.php</link>                                                               
   <description>&lt;img src=&quot;http://fabiensanglard.net/anotherWorld_code_review/mainImage.jpg&quot;/&gt; &lt;br/&gt;       
&lt;br/&gt;                                                                                                                                    


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.&lt;br/&gt;
&lt;br/&gt;                                                                                                                                                                                                                                            
I was amazed to discover an elegant system based on a virtual machine interpreting bytecode in realtime and generating fullscreen vectorial cinematic in order to produce one of the best game of all time.&lt;br/&gt;                                 
&lt;br/&gt;                                                                                                                                                                                                                                            
All this shipping on a 1.44MB floppy disk and running within 600KB of RAM: Not bad for 1991 ! As usual I cleaned up my notes, it may save a few hours to someone.&lt;br/&gt;                                                                           
                                                                                                                                             






&lt;br/&gt;                                                                                                                                  
.&lt;a href=&quot;http://fabiensanglard.net/anotherWorld_code_review/index.php&quot;&gt; More...&lt;/a&gt;                                
</description>                                                                                                                               
   <pubDate>Sun, 27 Nov 2011 01:08:45 0000</pubDate>                                                                                         
 </item>                                                                                                                                     
  

<item>
   <title>Progressive playback: An atom story.</title>
  <guid>http://fabiensanglard.net/mobile_progressive_playback/index.php</guid>
  <link>http://fabiensanglard.net/mobile_progressive_playback/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/mobile_progressive_playback/exploded-andy-small.jpg&quot;/&gt; &lt;br/&gt;
&lt;br/&gt;

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:&lt;br/&gt;
&lt;br/&gt;
Why ?&lt;br/&gt;
&lt;br/&gt;
As usual understanding things to the deep down proved extremely worthy. &lt;br/&gt;
         &lt;br/&gt;
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/mobile_progressive_playback/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Sun, 27 Nov 2011 01:08:45 0000</pubDate>
 </item>  


<item>
   <title>How to build Doom3 on Mac OS X with XCode.</title>
  <guid>http://fabiensanglard.net/doom3_macosx/index.php</guid>
  <link>http://fabiensanglard.net/doom3_macosx/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/doom3_macosx/doom3_macosx.jpg&quot;/&gt; &lt;br/&gt;
&lt;br/&gt;
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.&lt;br/&gt;
      &lt;br/&gt;
      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 ( it is actually very broken :( !).&lt;br/&gt;
      &lt;br/&gt;
      Here are the instructions to get it to run...but if you just want to download Doom3 source code for Xcode 4:&lt;br/&gt;
      &lt;br/&gt;
      I uploaded it on github.
      
        &lt;br/&gt;
         
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/doom3_macosx/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Fri, 25 Nov 2011 01:08:45 0000</pubDate>
 </item>  
 




  
<item>
   <title>Quake 2 Source Code Review</title>
  <guid>http://fabiensanglard.net/quake2/index.php</guid>
  <link>http://fabiensanglard.net/quake2/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/quake2/quake2_icon.jpg&quot;/&gt; &lt;br/&gt;

         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 language 
         doesn't feature polymorphism was especially interesting.
         
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/quake2/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Tue, 20 Sep 2011 01:08:45 0000</pubDate>
 </item>  
 
   
  
  
<item>
   <title>Solving Ghost in The Wire codes</title>
  <guid>http://fabiensanglard.net/Ghost_in_the_Wires/index.php2</guid>
  <link>http://fabiensanglard.net/Ghost_in_the_Wires/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/Ghost_in_the_Wires/icon.jpg&quot;/&gt; &lt;br/&gt;

         100% completed: All codes from kevin mitnick book (&quot;Ghost in The Wires&quot;) have been broken.
         
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/Ghost_in_the_Wires/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Sun, 11 Sep 2011 01:08:45 0000</pubDate>
 </item>  
  
   
  
<item>
   <title>Solving Ghost in The Wire codes</title>
  <guid>http://fabiensanglard.net/Ghost_in_the_Wires/index.php</guid>
  <link>http://fabiensanglard.net/Ghost_in_the_Wires/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/Ghost_in_the_Wires/icon.jpg&quot;/&gt; &lt;br/&gt;

         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 !
         
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/Ghost_in_the_Wires/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Thu, 8 Sep 2011 01:36:45 0000</pubDate>
 </item>  
  
  
  
<item>
   <title>Hacker Monthly publication</title>
  <guid>http://fabiensanglard.net/hackerMonthly/index.php</guid>
  <link>http://fabiensanglard.net/hackerMonthly/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/hackerMonthly/hackerMonthly.jpg&quot;/&gt; &lt;br/&gt;

         Hacker Monthly July edition has published my article in which I described the internals of Doom engine.. &lt;br/&gt;
  
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/hackerMonthly/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Fri, 15 Jul 2011 01:36:45 0000</pubDate>
 </item>  



<item>
   <title>SHMUP Source Code</title>
  <guid>http://fabiensanglard.net/shmup_source_code/index.php</guid>
  <link>http://fabiensanglard.net/shmup_source_code/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/shmup_source_code/source_code.png&quot;/&gt; &lt;br/&gt;

         I have decided to release the full source code of &quot;Shmup&quot; 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.&lt;br/&gt;
	The license is GPL which mean you have to release the source code of what you produce with it. Note that the &lt;code&gt;data&lt;/code&gt; folder is provided so you can play with it but you are not free to redistribute it and I remain the owner of the content (except for the song from Future Crew that was licensed). &lt;br/&gt;
	
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/shmup_source_code/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Thu, 30 Jun 2011 01:36:45 -0600</pubDate>
 </item>  
 
   

<item>
   <title>Polygon Codec</title>
  <guid>http://fabiensanglard.net/polygon_codec/index.php</guid>
  <link>http://fabiensanglard.net/polygon_codec/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/polygon_codec/polyCodec.png&quot;/&gt; &lt;br/&gt;

          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 was a huge bottleneck.&lt;br/&gt; 
      &lt;br/&gt;
      Unwilling to settle for anything less than 60 frames per second I became obsessed with saving bandwidth and I tried different approach until an idea proved to be not so bad...but I had to dive in the four dimensionnal world of homogeneous coordinates to make it work.

&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/polygon_codec/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Sun, 26 Jun 2011 15:36:45 -0600</pubDate>
 </item>  





<item>
   <title>dEngine Source Code Released</title>
  <guid>http://fabiensanglard.net/dEngineSourceCodeRelease/index.php</guid>
  <link>http://fabiensanglard.net/dEngineSourceCodeRelease/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/dEngine/dEngine.jpg&quot;/&gt; &lt;br/&gt;
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 but now you have access to GL_OES_depth_texture so you should be able to gain so more speed.&lt;br/&gt;
&lt;br/&gt;
I consider it a good tutorial for OpenGL ES 2.0, you can read about bump-mapping and shadow-mapping with a fun example from a Doom 3 level.&lt;br/&gt;
&lt;br/&gt;
The OpenGL ES 2.0 renderer feature uber-shaders: Depending on the material currently renderered a shader is recompiled on the fly in order to avoid branching.&lt;br/&gt;
&lt;br/&gt;
Enjoy: &lt;br/&gt;
&lt;br/&gt;
.&lt;a href=&quot;http://fabiensanglard.net/dEngineSourceCodeRelease/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Thu, 28 Apr 2011 15:36:45 -0600</pubDate>
 </item>   



<item>
   <title>To generate 60fps videos on iOS</title>
  <guid>http://fabiensanglard.net/shmup_generate_videos/index.php</guid>
  <link>http://fabiensanglard.net/shmup_generate_videos/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/shmup_generate_videos/video_icon.jpg&quot;/&gt; &lt;br/&gt;
Back in winter 2009 I was working pretty hard on the 3D engine that would power my next iPhone/iPad game: &lt;a href=&quot;http://itunes.apple.com/us/app/shmup/id337663605?mt=8&quot;&gt;"SHMUP"&lt;/a&gt;. 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 I had the idea to have the engine generate its own videos. This is how I did it, maybe it will inspire someone..&lt;a href=&quot;http://fabiensanglard.net/shmup_generate_videos/&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Mon, 21 Feb 2011 15:36:45 -0600</pubDate>
 </item>   
  
<item>
   <title>To become a good C programmer</title>
  <guid>http://fabiensanglard.net/c/index.php</guid>
  <link>http://fabiensanglard.net/c/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/c/c2.jpeg&quot;/&gt; &lt;br/&gt;
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 of the page.&lt;a href=&quot;http://fabiensanglard.net/c/index.php&quot;&gt; More...&lt;/a&gt;
</description>
   <pubDate>Wed, 02 Feb 2011 15:36:45 -0600</pubDate>
 </item> 

<item>
   <title>SHMUP Lite</title>
  <guid>http://fabiensanglard.net/shmupLite/</guid>
  <link>http://fabiensanglard.net/shmupLite/</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/shmupLite/shmupLite.jpg&quot;/&gt; &lt;br/&gt;
I have decided to release a free version of &lt;a href="http://fabiensanglard.net/shmup/"&gt;"SHMUP"&lt;/a&gt;. It is called &lt;a href="http://itunes.apple.com/app/shmup-lite/id407588246?mt=8"&gt;"SHMUP Lite"&lt;/a&gt; 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.
</description>
   <pubDate>Sun, 19 Dec 2010 15:36:45 -0600</pubDate>
 </item> 

<item>
   <title>All about the fillrate.</title>
  <guid>http://fabiensanglard.net/fillrate_issues/</guid>
  <link>http://fabiensanglard.net/fillrate_issues/</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/fillrate_issues/bladeInfinity.jpg&quot;/&gt; &lt;br/&gt;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, just like Rage HD.&lt;br/&gt;
&lt;br/&gt;
The game programmer in me really wanted to understand the engine and I was especially interested to see the game being released as a universal binary running on iPhone 3GS, iPhone4 and iPad. Those three devices have different capabilities but down the line it is often about managing the fillrate.</description>
   <pubDate>Sat, 11 Dec 2010 15:36:45 -0600</pubDate>
 </item> 

<item>
   <title>Tracing the baseband.</title>
  <guid>http://fabiensanglard.net/cellphoneModem/index.php</guid>
  <link>http://fabiensanglard.net/cellphoneModem/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/cellphoneModem/androIphone.jpg&quot;/&gt; &lt;br/&gt; 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 investigating the subject..</description>
   <pubDate>Thu, 27 May 2010 12:08:27 -0600</pubDate>
 </item> 


<item>
   <title>Doom iPhone  code review.</title>
  <guid>http://fabiensanglard.net/doomIphone/index.php</guid>
  <link>http://fabiensanglard.net/doomIphone/index.php</link>
   <description>&lt;img src=&quot;http://fd.fabiensanglard.net/doomIphone/doomiPhoneEngine.jpg&quot;/&gt; &lt;br/&gt; 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.</description>
   <pubDate>Mon, 1 Feb 2010 00:33:27 -0400</pubDate>
 </item> 

<item>
   <title>Doom engine 1993 code review.</title>
  <guid>http://fabiensanglard.net/doomIphone/doomClassicRenderer.php</guid>
  <link>http://fabiensanglard.net/doomIphone/doomClassicRenderer.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/doomIphone/doomClassic.jpg&quot;/&gt; &lt;br/&gt; 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.</description>
   <pubDate>Wed, 13 Jan 2010 00:33:27 -0400</pubDate>
 </item>   
    
<item>
   <title>Don't learn Assembly on Mac OS X.</title>
  <guid>http://fabiensanglard.net/macosxassembly/index.php</guid>
  <link>http://fabiensanglard.net/macosxassembly/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/macosxassembly/macosxassembly.jpg&quot;/&gt; &lt;br/&gt; 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 books. I would rather recommend a IBM T42 with Linux Ubuntu.</description>
   <pubDate>Thu, 31 Dec 2009 00:33:27 -0400</pubDate>
 </item>  
  
<item>
   <title>Apple iPhone Tech Talk 2009 tricks and treats</title>
  <guid>http://fabiensanglard.net/appleTechTalk2009/index.php</guid>
  <link>http://fabiensanglard.net/appleTechTalk2009/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/appleTechTalk2009/appleTechTalk2009.jpg&quot;/&gt; &lt;br/&gt; 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!.</description>
   <pubDate>Thu, 03 Dec 2009 00:33:27 -0400</pubDate>
 </item>


<item>
   <title>iPhone 3D engine programming part 1</title>
  <guid>http://fabiensanglard.net/dEngine/index.php</guid>
  <link>http://fabiensanglard.net/dEngine/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/dEngine/dEngine.jpg&quot;/&gt; &lt;br/&gt; 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.</description>
   <pubDate>Mon, 19 Oct 2009 00:33:27 -0400</pubDate>
 </item>
  
 <item>
   <title>Armadillo Space T-shirt</title>
   <link>http://fabiensanglard.net/armadilloSpace/index.php</link>
   <guid>http://fabiensanglard.net/armadilloSpace/index.php</guid>
   <description>&lt;img src=&quot;http://fabiensanglard.net/armadilloSpace/armadilloSpace.jpg&quot;/&gt; &lt;br/&gt;Finally received my Armadillo Space T-Shirt and mug. I recommend them !</description>
   <pubDate>Wed, 14 Oct 2009 00:33:27 -0400</pubDate>
 </item>

<item>
   <title>Fluid speed issues!</title>
   <guid>http://fabiensanglard.net/fluide/index.php</guid>
   <link>http://fabiensanglard.net/fluide/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/fluide/fluide.jpg&quot;/&gt; &lt;br/&gt;Fluid v1.3 is too fast on 3GX iPhones ;( ! I will released a fix tonight !</description>
   <pubDate>Mon, 29 Jun 2009 00:33:27 -0400</pubDate>
 </item>

<item>
   <title>Fluid2 RELEASED ! Fluid 1 now at 3,000,000 downloads !!</title>
   <guid>http://fabiensanglard.net/fluide/index.php/.</guid>
   <link>http://fabiensanglard.net/fluide/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/fluide/fluide.jpg&quot;/&gt; &lt;br/&gt;Fluid 2 was released today with plenty of news features, check it out !</description>
   <pubDate>Tue, 9 Jun 2009 00:33:27 -0400</pubDate>
</item>

<item>
   <title>Fluid: 1,000,000 downloads !!</title>
   <guid>http://fabiensanglard.net/fluide/././index.php</guid>
   <link>http://fabiensanglard.net/fluide/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/fluide/fluide.jpg&quot;/&gt; &lt;br/&gt;Version 1.1 is a HUGE success, I've just posted revision 1.2 and started working on 1.3 and 2.0 ! Stay tuned !</description>
   <pubDate>Thu, 14 May 2009 00:33:27 -0400</pubDate>
  
</item>

<item>
   <title>Fluid v1.1 up and coming...</title>
      <guid>http://fabiensanglard.net/fluide/./././index.php</guid>
   <link>http://fabiensanglard.net/fluide/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/fluide/fluide.jpg&quot;/&gt; &lt;br/&gt;Fluid version 1.1 will be released next week. Zen music and changing background...</description>
   <pubDate>Sat, 9 May 2009 00:33:27 -0400</pubDate>
</item>
  
<item>
   <title>Wolfenstein 3D for iPhone code review</title>
   <guid>http://www.fabiensanglard.net/wolf3d/index.php</guid>
   <link>http://www.fabiensanglard.net/wolf3d/index.php</link>
   <description>&lt;img src=&quot;http://fabiensanglard.net/wolf3d/wold3Dthumb.jpg&quot;/&gt; &lt;br/&gt;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.
</description>
	<pubDate>Sat, 9 May 2009 00:33:27 -0400</pubDate>
</item>	
  
<item>
   <title>Fluide</title>
    <guid>http://fabiensanglard.net/fluide/././././index.php</guid>
   <link>http://fabiensanglard.net/fluide/index.php</link>
   <description>Fluid tech demo released on iPhone !!!</description>
   <pubDate>Wed, 15 Apr 2009 00:33:27 -0400</pubDate>
</item>	
  
<item>
   <title>BumpMapping hell</title>
   <guid>http://fabiensanglard.net/bumpMapping/index.php</guid>
   <link>http://fabiensanglard.net/bumpMapping/index.php</link>
   <description></description>
   <pubDate>Wed, 4 Mar 2009 00:33:27 -0400</pubDate>
</item>	 
  
 </channel>
</rss>
    
